5 // Created by Yifeng Huang on 7/27/12.
6 // Copyright (c) 2012 __MyCompanyName__. All rights reserved.
9 #import "TargetMouseBtn.h"
11 @implementation TargetMouseBtn
15 -(NSString*) stringify {
16 return [[NSString alloc] initWithFormat: @"mbtn~%u", which];
19 +(TargetMouseBtn*) unstringifyImpl: (NSArray*) comps {
20 NSParameterAssert([comps count] == 2);
21 TargetMouseBtn* target = [[TargetMouseBtn alloc] init];
22 [target setWhich: [comps[1] integerValue]];
26 -(void) trigger: (JoystickController *)jc {
27 NSRect screenRect = [[NSScreen mainScreen] frame];
28 NSInteger height = screenRect.size.height;
29 NSPoint mouseLoc = [NSEvent mouseLocation];
30 CGEventType eventType = (which == kCGMouseButtonLeft) ? kCGEventLeftMouseDown : kCGEventRightMouseDown;
31 CGEventRef click = CGEventCreateMouseEvent(NULL,
33 CGPointMake(mouseLoc.x, height - mouseLoc.y),
35 CGEventPost(kCGHIDEventTap, click);
39 -(void) untrigger: (JoystickController *)jc {
40 NSRect screenRect = [[NSScreen mainScreen] frame];
41 NSInteger height = screenRect.size.height;
42 NSPoint mouseLoc = [NSEvent mouseLocation];
43 CGEventType eventType = (which == kCGMouseButtonLeft) ? kCGEventLeftMouseUp : kCGEventRightMouseUp;
44 CGEventRef click = CGEventCreateMouseEvent(NULL,
46 CGPointMake(mouseLoc.x, height - mouseLoc.y),
48 CGEventPost(kCGHIDEventTap, click);