X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=EnjoyableApplicationDelegate.m;h=8afbb5bd5ab16afccebf3ace687a544697ed9705;hp=23324d3c76a854db9a8a33b167fd0fe3b97e1639;hb=1315dd378437c84891c795c9927ff40d42d74cb3;hpb=d0f4d54bb9eb66cbd19fa4dabb56fc09f42bd22d diff --git a/EnjoyableApplicationDelegate.m b/EnjoyableApplicationDelegate.m index 23324d3..8afbb5b 100644 --- a/EnjoyableApplicationDelegate.m +++ b/EnjoyableApplicationDelegate.m @@ -28,6 +28,11 @@ selector:@selector(mappingDidChange:) name:NJEventMappingChanged object:nil]; + [NSNotificationCenter.defaultCenter + addObserver:self + selector:@selector(mappingListDidChange:) + name:NJEventMappingListChanged + object:nil]; [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(eventTranslationActivated:) @@ -39,11 +44,8 @@ name:NJEventTranslationDeactivated object:nil]; - mappingsMenuIndex = dockMenuBase.numberOfItems; - while (![dockMenuBase itemAtIndex:mappingsMenuIndex - 1].isSeparatorItem) - --mappingsMenuIndex; + while (![dockMenuBase itemAtIndex:mappingsMenuIndex++].tag); - [drawer open]; self.outputController.enabled = NO; [self.inputController setup]; [self.mappingsController load]; @@ -51,39 +53,33 @@ - (void)applicationWillTerminate:(NSNotification *)aNotification { [NSUserDefaults.standardUserDefaults synchronize]; + [NSNotificationCenter.defaultCenter removeObserver:self]; } - (void)eventTranslationActivated:(NSNotification *)note { - activeButton.image = [NSImage imageNamed:@"NSStopProgressFreestandingTemplate"]; - activeMenuItem.state = [note.object translatingEvents]; [NSWorkspace.sharedWorkspace.notificationCenter - addObserver:self - selector:@selector(didSwitchApplication:) - name:NSWorkspaceDidActivateApplicationNotification - object:nil]; + addObserver:self + selector:@selector(didSwitchApplication:) + name:NSWorkspaceDidActivateApplicationNotification + object:nil]; NSLog(@"Listening for application changes."); } - (void)eventTranslationDeactivated:(NSNotification *)note { - activeButton.image = [NSImage imageNamed:@"NSGoRightTemplate"]; - activeMenuItem.state = [note.object translatingEvents]; [NSWorkspace.sharedWorkspace.notificationCenter - removeObserver:self - name:NSWorkspaceDidActivateApplicationNotification - object:nil]; + removeObserver:self + name:NSWorkspaceDidActivateApplicationNotification + object:nil]; NSLog(@"Ignoring application changes."); } -- (IBAction)toggleActivity:(id)sender { - self.inputController.translatingEvents = !self.inputController.translatingEvents; -} - -- (void)mappingsChanged { +- (void)mappingListDidChange:(NSNotification *)note { + NSArray *mappings = note.object; NSInteger removeFrom = mappingsMenuIndex; while (dockMenuBase.numberOfItems > removeFrom) [dockMenuBase removeItemAtIndex:dockMenuBase.numberOfItems - 1]; int added = 0; - for (NJMapping *mapping in self.mappingsController.mappings) { + for (NJMapping *mapping in mappings) { NSString *keyEquiv = ++added < 10 ? @(added).stringValue : @""; [dockMenuBase addItemWithTitle:mapping.name action:@selector(chooseMapping:) @@ -102,7 +98,7 @@ - (void)chooseMapping:(id)sender { NSInteger idx = [dockMenuBase indexOfItem:sender] - mappingsMenuIndex; - NJMapping *chosen = self.mappingsController.mappings[idx]; + NJMapping *chosen = self.mappingsController[idx]; [_mappingsController activateMapping:chosen]; }