@synthesize which;
-(NSString*) stringify {
- return [[NSString alloc] initWithFormat: @"mbtn~%d", which];
+ return [[NSString alloc] initWithFormat: @"mbtn~%u", which];
}
+(TargetMouseBtn*) unstringifyImpl: (NSArray*) comps {
NSParameterAssert([comps count] == 2);
TargetMouseBtn* target = [[TargetMouseBtn alloc] init];
- [target setWhich: [[comps objectAtIndex:1] integerValue]];
+ [target setWhich: [comps[1] integerValue]];
return target;
}
--(void) trigger {
+-(void) trigger: (JoystickController *)jc {
+ NSRect screenRect = [[NSScreen mainScreen] frame];
+ NSInteger height = screenRect.size.height;
NSPoint mouseLoc = [NSEvent mouseLocation];
CGEventType eventType = (which == kCGMouseButtonLeft) ? kCGEventLeftMouseDown : kCGEventRightMouseDown;
CGEventRef click = CGEventCreateMouseEvent(NULL,
eventType,
- CGPointMake(mouseLoc.x, mouseLoc.y),
+ CGPointMake(mouseLoc.x, height - mouseLoc.y),
which);
CGEventPost(kCGHIDEventTap, click);
CFRelease(click);
}
--(void) untrigger {
+-(void) untrigger: (JoystickController *)jc {
+ NSRect screenRect = [[NSScreen mainScreen] frame];
+ NSInteger height = screenRect.size.height;
NSPoint mouseLoc = [NSEvent mouseLocation];
CGEventType eventType = (which == kCGMouseButtonLeft) ? kCGEventLeftMouseUp : kCGEventRightMouseUp;
CGEventRef click = CGEventCreateMouseEvent(NULL,
eventType,
- CGPointMake(mouseLoc.x, mouseLoc.y),
+ CGPointMake(mouseLoc.x, height - mouseLoc.y),
which);
CGEventPost(kCGHIDEventTap, click);
CFRelease(click);