X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=TargetMouseBtn.m;h=172f7406f1a1d0d3c1a56d53b2a37d2fed5b9f6c;hp=5137f2be5cf4001f92ff1494c683090ff2f5de34;hb=724979785b445dcba8a9861c2531ae0308bdf40a;hpb=530009447c5bbd360ac5023979cffc6d32a28df3 diff --git a/TargetMouseBtn.m b/TargetMouseBtn.m index 5137f2b..172f740 100644 --- a/TargetMouseBtn.m +++ b/TargetMouseBtn.m @@ -13,33 +13,37 @@ @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);