// Enjoy
//
// Created by Yifeng Huang on 7/26/12.
-// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "TargetMouseMove.h"
-#import "JoystickController.h"
+#import "NJInputController.h"
@implementation TargetMouseMove {
int sign;
return YES;
}
-@synthesize axis;
-
+ (NSString *)serializationCode {
return @"mmove";
}
- (NSDictionary *)serialize {
- return @{ @"type": @"mmove", @"axis": @(self.axis) };
+ return @{ @"type": @"mmove", @"axis": @(_axis) };
}
+ (Target *)targetDeserialize:(NSDictionary *)serialization
return target;
}
-- (BOOL)update:(JoystickController *)jc {
+- (BOOL)update:(NJInputController *)jc {
if (fabsf(self.magnitude) < 0.01) {
sign = 0;
return NO; // dead zone
}
- // If the action crossed over High/Low, this target is done.
+ // If the input crossed over High/Low, this target is done.
if (!sign)
sign = self.magnitude < 0 ? -1 : 1;
else if (sign / self.magnitude < 0) {
return NO;
}
- NSRect screenRect = [[NSScreen mainScreen] frame];
- NSInteger height = screenRect.size.height;
+ CGFloat height = NSScreen.mainScreen.frame.size.height;
// TODO
float speed = 4.f;
- if ([jc frontWindowOnly])
+ if (jc.frontWindowOnly)
speed = 12.f;
float dx = 0.f, dy = 0.f;
- if (axis == 0)
+ if (_axis == 0)
dx = self.magnitude * speed;
else
dy = self.magnitude * speed;
CGPointMake(mouseLoc.x, height - mouseLoc.y),
0);
CGEventSetType(move, kCGEventMouseMoved);
- CGEventSetIntegerValueField(move, kCGMouseEventDeltaX, dx);
- CGEventSetIntegerValueField(move, kCGMouseEventDeltaY, dy);
+ CGEventSetIntegerValueField(move, kCGMouseEventDeltaX, (int)dx);
+ CGEventSetIntegerValueField(move, kCGMouseEventDeltaY, (int)dy);
- if ([jc frontWindowOnly]) {
+ if (jc.frontWindowOnly) {
ProcessSerialNumber psn;
GetFrontProcess(&psn);
CGEventPostToPSN(&psn, move);