X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=NJMappingsController.m;h=f1e068ee23ef35fdaf6f2b1de59f7b10ac8d2336;hp=e01cb911db5c4ed6ab8656c0496df386eee6abe6;hb=e23012ee44e26e9fd2bd43340a3fd806b084fa47;hpb=dcedf147ddcb6c21768cea94a2f06b93007d2a82 diff --git a/NJMappingsController.m b/NJMappingsController.m index e01cb91..f1e068e 100644 --- a/NJMappingsController.m +++ b/NJMappingsController.m @@ -7,7 +7,7 @@ #import "NJMappingsController.h" -#import "ApplicationController.h" +#import "EnjoyableApplicationDelegate.h" #import "NJMapping.h" #import "NJMappingsController.h" #import "NJOutput.h" @@ -36,6 +36,19 @@ return nil; } +- (NJMapping *)objectAtIndexedSubscript:(NSUInteger)idx { + return idx < _mappings.count ? _mappings[idx] : nil; +} + +- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state + objects:(__unsafe_unretained id [])buffer + count:(NSUInteger)len { + return [_mappings countByEnumeratingWithState:state + objects:buffer + count:len]; +} + + - (void)activateMappingForProcess:(NSString *)processName { NJMapping *oldMapping = manualMapping; NJMapping *newMapping = self[processName]; @@ -54,6 +67,7 @@ _currentMapping = mapping; [removeButton setEnabled:_mappings[0] != mapping]; [outputController loadCurrent]; + popoverActivate.title = _currentMapping.name; [NSNotificationCenter.defaultCenter postNotificationName:NJEventMappingChanged object:_currentMapping]; [tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:[_mappings indexOfObject:mapping]] byExtendingSelection:NO]; @@ -62,7 +76,7 @@ - (IBAction)addPressed:(id)sender { NJMapping *newMapping = [[NJMapping alloc] initWithName:@"Untitled"]; [_mappings addObject:newMapping]; - [(ApplicationController *)NSApplication.sharedApplication.delegate mappingsChanged]; + [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; [tableView reloadData]; [tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:_mappings.count - 1] byExtendingSelection:NO]; [tableView editColumn:0 row:_mappings.count - 1 withEvent:nil select:YES]; @@ -75,7 +89,7 @@ [_mappings removeObjectAtIndex:tableView.selectedRow]; [tableView reloadData]; - [(ApplicationController *)NSApplication.sharedApplication.delegate mappingsChanged]; + [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; [self activateMapping:_mappings[0]]; [self save]; } @@ -86,13 +100,17 @@ } - (id)tableView:(NSTableView *)view objectValueForTableColumn:(NSTableColumn *)column row:(NSInteger)index { - return [_mappings[index] name]; + return self[index].name; } -- (void)tableView:(NSTableView *)view setObjectValue:(NSString *)obj forTableColumn:(NSTableColumn *)col row:(NSInteger)index { - [(NJMapping *)_mappings[index] setName:obj]; +- (void)tableView:(NSTableView *)view + setObjectValue:(NSString *)obj + forTableColumn:(NSTableColumn *)col + row:(NSInteger)index { + self[index].name = obj; + [self save]; [tableView reloadData]; - [(ApplicationController *)NSApplication.sharedApplication.delegate mappingsChanged]; + [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; } - (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { @@ -147,7 +165,7 @@ current = 0; _mappings = newMappings; [tableView reloadData]; - [(ApplicationController *)NSApplication.sharedApplication.delegate mappingsChanged]; + [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; [self activateMapping:_mappings[current]]; } } @@ -234,7 +252,7 @@ } [self save]; - [(ApplicationController *)NSApplication.sharedApplication.delegate mappingsChanged]; + [(EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate mappingsChanged]; [self activateMapping:mapping]; [outputController loadCurrent]; @@ -284,4 +302,16 @@ }]; } +- (IBAction)mappingPressed:(id)sender { + [popover showRelativeToRect:popoverActivate.bounds ofView:popoverActivate preferredEdge:NSMinXEdge]; +} + +- (void)popoverWillShow:(NSNotification *)notification { + popoverActivate.state = NSOnState; +} + +- (void)popoverWillClose:(NSNotification *)notification { + popoverActivate.state = NSOffState; +} + @end