[[[NSApplication sharedApplication] mainWindow] makeFirstResponder: sender];
[self commit];
}
+-(IBAction)mdirChanged:(id)sender {
+ [radioButtons setState: 1 atRow: 3 column: 0];
+ [[[NSApplication sharedApplication] mainWindow] makeFirstResponder: sender];
+ [self commit];
+}
+-(IBAction)mbtnChanged:(id)sender {
+ [radioButtons setState: 1 atRow: 4 column: 0];
+ [[[NSApplication sharedApplication] mainWindow] makeFirstResponder: sender];
+ [self commit];
+}
+-(IBAction)sdirChanged:(id)sender {
+ [radioButtons setState: 1 atRow: 5 column: 0];
+ [[[NSApplication sharedApplication] mainWindow] makeFirstResponder: sender];
+ [self commit];
+}
-(Target*) state {
case 2:
{
TargetConfig* c = [[TargetConfig alloc] init];
- [c setConfig: [[configsController configs] objectAtIndex: [configPopup indexOfSelectedItem]]];
+ [c setConfig: [configsController configs][[configPopup indexOfSelectedItem]]];
return c;
}
case 3: {
- // mouse X
+ // mouse X/Y
TargetMouseMove *mm = [[TargetMouseMove alloc] init];
- [mm setDir: 0];
+ [mm setDir: [mouseDirSelect selectedSegment]];
return mm;
}
case 4: {
- // mouse Y
- TargetMouseMove *mm = [[TargetMouseMove alloc] init];
- [mm setDir: 1];
- return mm;
- }
- case 5: {
// mouse button
TargetMouseBtn *mb = [[TargetMouseBtn alloc] init];
- [mb setWhich: [mouseBtnRadio selectedCol]];
+ if ([mouseBtnSelect selectedSegment] == 0) {
+ [mb setWhich: kCGMouseButtonLeft];
+ }
+ else {
+ [mb setWhich: kCGMouseButtonRight];
+ }
return mb;
}
+ case 5: {
+ // scroll
+ TargetMouseScroll *ms = [[TargetMouseScroll alloc] init];
+ if ([scrollDirSelect selectedSegment] == 0) {
+ [ms setHowMuch: -1];
+ }
+ else {
+ [ms setHowMuch: 1];
+ }
+ return ms;
+ }
+ case 6: {
+ // toggle mouse scope
+ TargetToggleMouseScope *tms = [[TargetToggleMouseScope alloc] init];
+ return tms;
+ }
}
return NULL;
}
-(void) reset {
[keyInput clear];
[radioButtons setState: 1 atRow: 0 column: 0];
+ [mouseDirSelect setSelectedSegment: 0];
+ [mouseBtnSelect setSelectedSegment: 0];
+ [scrollDirSelect setSelectedSegment: 0];
[self refreshConfigsPreservingSelection: NO];
}
[radioButtons setEnabled: enabled];
[keyInput setEnabled: enabled];
[configPopup setEnabled: enabled];
+ [mouseDirSelect setEnabled: enabled];
+ [mouseBtnSelect setEnabled: enabled];
+ [scrollDirSelect setEnabled: enabled];
}
-(BOOL) enabled {
return [radioButtons isEnabled];
} else if([target isKindOfClass: [TargetConfig class]]) {
[radioButtons setState:1 atRow: 2 column: 0];
[configPopup selectItemAtIndex: [[configsController configs] indexOfObject: [(TargetConfig*)target config]]];
- } else if ([target isKindOfClass: [TargetMouseMove class]]) {
- if ([(TargetMouseMove *)target dir] == 0)
- [radioButtons setState:1 atRow: 3 column: 0];
+ }
+ else if ([target isKindOfClass: [TargetMouseMove class]]) {
+ [radioButtons setState:1 atRow: 3 column: 0];
+ [mouseDirSelect setSelectedSegment: [(TargetMouseMove *)target dir]];
+ }
+ else if ([target isKindOfClass: [TargetMouseBtn class]]) {
+ [radioButtons setState: 1 atRow: 4 column: 0];
+ if ([(TargetMouseBtn *)target which] == kCGMouseButtonLeft)
+ [mouseBtnSelect setSelectedSegment: 0];
else
- [radioButtons setState:1 atRow: 4 column: 0];
- } else {
+ [mouseBtnSelect setSelectedSegment: 1];
+ }
+ else if ([target isKindOfClass: [TargetMouseScroll class]]) {
+ [radioButtons setState: 1 atRow: 5 column: 0];
+ if ([(TargetMouseScroll *)target howMuch] < 0)
+ [scrollDirSelect setSelectedSegment: 0];
+ else
+ [scrollDirSelect setSelectedSegment: 1];
+ }
+ else if ([target isKindOfClass: [TargetToggleMouseScope class]]) {
+ [radioButtons setState: 1 atRow: 6 column: 0];
+ } else {
[NSException raise:@"Unknown target subclass" format:@"Unknown target subclass"];
}
}
NSArray* configs = [configsController configs];
[configPopup removeAllItems];
for(int i=0; i<[configs count]; i++) {
- [configPopup addItemWithTitle: [[configs objectAtIndex:i]name]];
+ [configPopup addItemWithTitle: [configs[i]name]];
}
if(preserve)
[configPopup selectItemAtIndex:initialIndex];