[[[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];
case 0: // none
return NULL;
case 1: // key
- if([keyInput hasKey]) {
+ if(keyInput.hasKey) {
TargetKeyboard* k = [[TargetKeyboard alloc] init];
[k setVk: [keyInput vk]];
[k setDescr: [keyInput descr]];
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];
if ([mouseBtnSelect selectedSegment] == 0) {
}
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];
[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
- [radioButtons setState:1 atRow: 4 column: 0];
+ [radioButtons setState:1 atRow: 3 column: 0];
+ [mouseDirSelect setSelectedSegment: [(TargetMouseMove *)target dir]];
}
else if ([target isKindOfClass: [TargetMouseBtn class]]) {
- [radioButtons setState: 1 atRow: 5 column: 0];
+ [radioButtons setState: 1 atRow: 4 column: 0];
if ([(TargetMouseBtn *)target which] == kCGMouseButtonLeft)
[mouseBtnSelect setSelectedSegment: 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];