selector:@selector(mappingListDidChange:)
name:NJEventMappingListChanged
object:nil];
+ [NSNotificationCenter.defaultCenter
+ addObserver:self
+ selector:@selector(mappingDidChange:)
+ name:NJEventMappingChanged
+ object:nil];
}
return self;
}
if (row != 2) {
[mappingPopup selectItemAtIndex:-1];
[mappingPopup resignIfFirstResponder];
- } else if (!mappingPopup.selectedItem)
- [mappingPopup selectItemAtIndex:0];
+ unknownMapping.hidden = YES;
+ }
if (row != 3) {
mouseDirSelect.selectedSegment = -1;
- (void)mappingChosen:(id)sender {
[radioButtons selectCellAtRow:2 column:0];
[mappingPopup.window makeFirstResponder:mappingPopup];
+ unknownMapping.hidden = YES;
[self commit];
}
[radioButtons selectCellAtRow:5 column:0];
[sender.window makeFirstResponder:sender];
if (sender.state == NSOnState) {
- scrollSpeedSlider.floatValue = (scrollSpeedSlider.maxValue - scrollSpeedSlider.minValue) / 2;
- [scrollSpeedSlider setEnabled:YES];
+ scrollSpeedSlider.floatValue =
+ scrollSpeedSlider.minValue + (scrollSpeedSlider.maxValue - scrollSpeedSlider.minValue) / 2;
+ scrollSpeedSlider.enabled = YES;
} else {
scrollSpeedSlider.floatValue = scrollSpeedSlider.minValue;
- [scrollSpeedSlider setEnabled:NO];
+ scrollSpeedSlider.enabled = NO;
}
[self commit];
}
case 1:
if (keyInput.hasKeyCode) {
NJOutputKeyPress *k = [[NJOutputKeyPress alloc] init];
- k.vk = keyInput.keyCode;
+ k.keyCode = keyInput.keyCode;
return k;
} else {
return nil;
}
- (BOOL)enabled {
- return [radioButtons isEnabled];
+ return radioButtons.isEnabled;
}
- (void)setEnabled:(BOOL)enabled {
- [radioButtons setEnabled:enabled];
- [keyInput setEnabled:enabled];
- [mappingPopup setEnabled:enabled];
- [mouseDirSelect setEnabled:enabled];
- [mouseSpeedSlider setEnabled:enabled];
- [mouseBtnSelect setEnabled:enabled];
- [scrollDirSelect setEnabled:enabled];
- [smoothCheck setEnabled:enabled];
- [scrollSpeedSlider setEnabled:enabled && smoothCheck.isEnabled];
+ radioButtons.enabled = enabled;
+ keyInput.enabled = enabled;
+ mappingPopup.enabled = enabled;
+ mouseDirSelect.enabled = enabled;
+ mouseSpeedSlider.enabled = enabled;
+ mouseBtnSelect.enabled = enabled;
+ scrollDirSelect.enabled = enabled;
+ smoothCheck.enabled = enabled;
+ scrollSpeedSlider.enabled = enabled && smoothCheck.state;
+ if (!enabled)
+ unknownMapping.hidden = YES;
}
- (void)loadOutput:(NJOutput *)output forInput:(NJInput *)input {
} else {
self.enabled = YES;
NSString *inpFullName = input.name;
- for (id <NJInputPathElement> cur = input.base; cur; cur = cur.base) {
- inpFullName = [[NSString alloc] initWithFormat:@"%@ > %@", cur.name, inpFullName];
+ for (NJInputPathElement *cur = input.parent; cur; cur = cur.parent) {
+ inpFullName = [[NSString alloc] initWithFormat:@"%@ ▸ %@", cur.name, inpFullName];
}
title.stringValue = inpFullName;
}
if ([output isKindOfClass:NJOutputKeyPress.class]) {
[radioButtons selectCellAtRow:1 column:0];
- keyInput.keyCode = [(NJOutputKeyPress*)output vk];
+ keyInput.keyCode = [(NJOutputKeyPress*)output keyCode];
} else if ([output isKindOfClass:NJOutputMapping.class]) {
[radioButtons selectCellAtRow:2 column:0];
NSMenuItem *item = [mappingPopup itemWithRepresentedObject:[(NJOutputMapping *)output mapping]];
[mappingPopup selectItem:item];
- if (!item)
- [radioButtons selectCellAtRow:self.enabled ? 0 : -1 column:0];
+ unknownMapping.hidden = !!item;
+ unknownMapping.title = [(NJOutputMapping *)output mappingName];
}
else if ([output isKindOfClass:NJOutputMouseMove.class]) {
[radioButtons selectCellAtRow:3 column:0];
[scrollDirSelect selectSegmentWithTag:direction];
scrollSpeedSlider.floatValue = speed;
smoothCheck.state = smooth ? NSOnState : NSOffState;
- [scrollSpeedSlider setEnabled:smooth];
+ scrollSpeedSlider.enabled = smooth;
} else {
[radioButtons selectCellAtRow:self.enabled ? 0 : -1 column:0];
}
}
- (void)mappingListDidChange:(NSNotification *)note {
- NSArray *mappings = note.object;
+ NSArray *mappings = note.userInfo[NJMappingListKey];
NJMapping *current = mappingPopup.selectedItem.representedObject;
[mappingPopup.menu removeAllItems];
for (NJMapping *mapping in mappings) {
[mappingPopup selectItemWithRepresentedObject:current];
}
+- (void)mappingDidChange:(NSNotification *)note {
+ [self loadCurrent];
+}
+
@end