Clean up TargetController formatting and public API.
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Thu, 28 Feb 2013 15:16:29 +0000 (16:16 +0100)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Thu, 28 Feb 2013 15:16:29 +0000 (16:16 +0100)
TargetController.h
TargetController.m

index 4606784169589d4572830b71f30f6c2f1bdc0806..7e24cc460d1effbb444d420e15ec44b7d110adfd 100644 (file)
 @class TargetMouseMove;
 
 @interface TargetController : NSObject {
-       IBOutlet KeyInputTextView* keyInput;
-       IBOutlet NSMatrix* radioButtons;
-    IBOutlet NSSegmentedControl* mouseDirSelect;
-    IBOutlet NSSegmentedControl* mouseBtnSelect;
-    IBOutlet NSSegmentedControl* scrollDirSelect;
-       IBOutlet NSTextField* title;
-       IBOutlet NSPopUpButton* configPopup;
-       IBOutlet ConfigsController* configsController;
-       IBOutlet JoystickController* joystickController;
-       id currentJsaction;
+    IBOutlet KeyInputTextView *keyInput;
+    IBOutlet NSMatrix *radioButtons;
+    IBOutlet NSSegmentedControl *mouseDirSelect;
+    IBOutlet NSSegmentedControl *mouseBtnSelect;
+    IBOutlet NSSegmentedControl *scrollDirSelect;
+    IBOutlet NSTextField *title;
+    IBOutlet NSPopUpButton *configPopup;
+    IBOutlet ConfigsController *configsController;
+    IBOutlet JoystickController *joystickController;
 }
 
--(void) keyChanged;
--(void) load;
--(void) commit;
--(void) reset;
--(void) refreshConfigsPreservingSelection: (BOOL) preserve;
--(IBAction)configChosen:(id)sender;
--(IBAction)radioChanged:(id)sender;
--(IBAction)mdirChanged:(id)sender;
--(IBAction)mbtnChanged:(id)sender;
--(IBAction)sdirChanged:(id)sender;
--(void) focusKey;
-
 @property (assign) BOOL enabled;
 
+- (void)keyChanged;
+- (void)load;
+- (void)reset;
+- (void)refreshConfigsPreservingSelection:(BOOL)preserve;
+- (IBAction)configChosen:(id)sender;
+- (IBAction)radioChanged:(id)sender;
+- (IBAction)mdirChanged:(id)sender;
+- (IBAction)mbtnChanged:(id)sender;
+- (IBAction)sdirChanged:(id)sender;
+- (void)focusKey;
+
 @end
index 0119980ed97bbbae44d70a98e586f778b164ccdf..b5c57b46cf03299929fb56d9a475f7ca72639570 100644 (file)
 
 @implementation TargetController
 
-- (void)keyChanged {
-       [radioButtons setState:1 atRow:1 column:0 ];
-       [self commit];
-}
-
 - (IBAction)radioChanged:(id)sender {
     NSInteger row, col;
     [radioButtons getRow:&row column:&col ofCell:sender];
-       [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
-
+    [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
+    
     if (row != 1)
         keyInput.vk = -1;
-
+    
     if (row != 2)
         [configPopup selectItemAtIndex:-1];
     else if (!configPopup.selectedItem)
         [configPopup selectItemAtIndex:0];
-
+    
     if (row != 3)
         mouseDirSelect.selectedSegment = -1;
     else if (mouseDirSelect.selectedSegment == -1)
         mouseDirSelect.selectedSegment = 0;
-
+    
     if (row != 4)
         mouseBtnSelect.selectedSegment = -1;
     else if (mouseBtnSelect.selectedSegment == -1)
     else if (scrollDirSelect.selectedSegment == -1)
         scrollDirSelect.selectedSegment = 0;
     
-       [self commit];
+    [self commit];
+}
+
+- (void)keyChanged {
+    [radioButtons setState:1 atRow:1 column:0];
+    [self commit];
+}
+
+- (void)configChosen:(id)sender {
+    [radioButtons setState:1 atRow:2 column:0];
+    [self commit];
 }
 
-- (IBAction)mdirChanged:(id)sender {
+- (void)mdirChanged:(id)sender {
     [radioButtons setState:1 atRow:3 column:0];
-       [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
-       [self commit];
+    [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
+    [self commit];
 }
 
-- (IBAction)mbtnChanged:(id)sender {
+- (void)mbtnChanged:(id)sender {
     [radioButtons setState:1 atRow:4 column:0];
-       [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
-       [self commit];
+    [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
+    [self commit];
 }
 
-- (IBAction)sdirChanged:(id)sender {
+- (void)sdirChanged:(id)sender {
     [radioButtons setState:1 atRow:5 column:0];
-       [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
-       [self commit];
+    [[NSApplication sharedApplication].mainWindow makeFirstResponder:sender];
+    [self commit];
+}
+
+- (Target *)currentTarget {
+    return configsController.currentConfig[joystickController.selectedAction];
 }
 
 - (Target *)makeTarget {
-       switch (radioButtons.selectedRow) {
-               case 0:
-                       return nil;
-               case 1:
-                       if (keyInput.hasKey) {
-                               TargetKeyboard* k = [[TargetKeyboard alloc] init];
+    switch (radioButtons.selectedRow) {
+        case 0:
+            return nil;
+        case 1:
+            if (keyInput.hasKey) {
+                TargetKeyboard *k = [[TargetKeyboard alloc] init];
                 k.vk = keyInput.vk;
-                               return k;
-                       } else {
+                return k;
+            } else {
                 return nil;
             }
-                       break;
-               case 2: {
-                       TargetConfig *c = [[TargetConfig alloc] init];
+            break;
+        case 2: {
+            TargetConfig *c = [[TargetConfig alloc] init];
             if (!configPopup.selectedItem)
                 [configPopup selectItemAtIndex:0];
             c.config = configsController.configs[configPopup.indexOfSelectedItem];
-                       return c;
-               }
+            return c;
+        }
         case 3: {
             TargetMouseMove *mm = [[TargetMouseMove alloc] init];
             mm.dir = mouseDirSelect.selectedSegment;
         }
         default:
             return nil;
-       }
-}
-
--(void)configChosen:(id)sender {
-       [radioButtons setState:1 atRow:2 column:0];
-       [self commit];
+    }
 }
 
 - (void)commit {
 }
 
 - (void)reset {
-       [keyInput clear];
-       [radioButtons setState:1 atRow:0 column:0];
-       [self refreshConfigsPreservingSelection:NO];
+    [keyInput clear];
+    [radioButtons setState:1 atRow:0 column:0];
+    [self refreshConfigsPreservingSelection:NO];
 }
 
 - (BOOL)enabled {
-       return [radioButtons isEnabled];
+    return [radioButtons isEnabled];
 }
 
 - (void)setEnabled:(BOOL)enabled {
-       [radioButtons setEnabled:enabled];
-       [keyInput setEnabled:enabled];
-       [configPopup setEnabled:enabled];
+    [radioButtons setEnabled:enabled];
+    [keyInput setEnabled:enabled];
+    [configPopup setEnabled:enabled];
     [mouseDirSelect setEnabled:enabled];
     [mouseBtnSelect setEnabled:enabled];
     [scrollDirSelect setEnabled:enabled];
 }
--(void) load {
-       id jsaction = joystickController.selectedAction;
-       currentJsaction = jsaction;
-       if(!jsaction) {
+
+- (void)load {
+    JSAction *act = joystickController.selectedAction;
+    if (!act) {
         self.enabled = NO;
         title.stringValue = @"";
-               return;
-       } else {
+        return;
+    } else {
         self.enabled = YES;
-       }
-       Target *target = configsController.currentConfig[jsaction];
-       
-       id act = jsaction;
-       NSString* actFullName = [act name];
-       while([act base]) {
-               act = [act base];
-               actFullName = [[NSString alloc] initWithFormat:@"%@ > %@", [act name], actFullName];
-       }
+    }
+    
+    Target *target = [self currentTarget];
+    NSString *actFullName = act.name;
+    for (JSAction *cur = act.base; cur; cur = cur.base) {
+        actFullName = [[NSString alloc] initWithFormat:@"%@ > %@", cur.name, actFullName];
+    }
     title.stringValue = [[NSString alloc] initWithFormat:@"%@ > %@", configsController.currentConfig.name, actFullName];
-       
-       if(!target) {
-               [radioButtons setState:1 atRow:0 column:0];
-       } else if([target isKindOfClass:[TargetKeyboard class]]) {
-               [radioButtons setState:1 atRow:1 column:0];
+    
+    if ([target isKindOfClass:[TargetKeyboard class]]) {
+        [radioButtons setState:1 atRow:1 column:0];
         keyInput.vk = [(TargetKeyboard*)target vk];
-       } else if([target isKindOfClass:[TargetConfig class]]) {
-               [radioButtons setState:1 atRow:2 column:0];
-               [configPopup selectItemAtIndex:[configsController.configs
+    } 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]]) {
         [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];
         mouseBtnSelect.selectedSegment = [(TargetMouseBtn *)target which] == kCGMouseButtonLeft ? 0 : 1;
     else if ([target isKindOfClass:[TargetToggleMouseScope class]]) {
         [radioButtons setState:1 atRow:6 column:0];
     } else {
-        NSLog(@"Unknown target type %@.", target.description);
-       }
+        [radioButtons setState:1 atRow:0 column:0];
+    }
 }
 
--(void) focusKey {
-    Target *currentTarget = configsController.currentConfig[currentJsaction];
+- (void)focusKey {
+    Target *currentTarget = [self currentTarget];
     if (!currentTarget || [currentTarget isKindOfClass:[TargetKeyboard class]])
         [[[NSApplication sharedApplication] mainWindow] makeFirstResponder:keyInput];
     else
 }
 
 - (void)refreshConfigsPreservingSelection:(BOOL)preserve  {
-       int initialIndex = [configPopup indexOfSelectedItem];
-       [configPopup removeAllItems];
-       for (Config *config in configsController.configs)
-               [configPopup addItemWithTitle:config.name];
+    int initialIndex = [configPopup indexOfSelectedItem];
+    [configPopup removeAllItems];
+    for (Config *config in configsController.configs)
+        [configPopup addItemWithTitle:config.name];
     [configPopup selectItemAtIndex:preserve ? initialIndex : -1];
 }