X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FNJOutputController.m;h=cbb48f7e1cab1a145ef98825de82ecd5ec470cbc;hp=bcafe0d3a96f207feb1b5207a636ed0593db8863;hb=9d7f100f57dded88fa998a86715a919ca471c3db;hpb=0064c1fbff36795885a9724081af2a17d83c20a3 diff --git a/Classes/NJOutputController.m b/Classes/NJOutputController.m index bcafe0d..cbb48f7 100644 --- a/Classes/NJOutputController.m +++ b/Classes/NJOutputController.m @@ -59,7 +59,7 @@ if (mouseDirSelect.selectedSegment == -1) mouseDirSelect.selectedSegment = 0; if (!mouseSpeedSlider.floatValue) - mouseSpeedSlider.floatValue = 4; + mouseSpeedSlider.floatValue = 10; } if (row != 4) { @@ -71,16 +71,13 @@ if (row != 5) { scrollDirSelect.selectedSegment = -1; scrollSpeedSlider.floatValue = scrollSpeedSlider.minValue; + smoothCheck.state = NSOffState; [scrollDirSelect resignIfFirstResponder]; + [scrollSpeedSlider resignIfFirstResponder]; + [smoothCheck resignIfFirstResponder]; } else { if (scrollDirSelect.selectedSegment == -1) scrollDirSelect.selectedSegment = 0; - if (scrollDirSelect.selectedSegment < 2 - && !scrollSpeedSlider.floatValue) - scrollSpeedSlider.floatValue = 15.f; - else if (scrollDirSelect.selectedSegment >= 2 - && scrollSpeedSlider.floatValue) - scrollSpeedSlider.floatValue = scrollSpeedSlider.minValue; } } @@ -136,10 +133,19 @@ - (void)scrollSpeedChanged:(NSSlider *)sender { [radioButtons selectCellAtRow:5 column:0]; [sender.window makeFirstResponder:sender]; - if (!sender.floatValue && scrollDirSelect.selectedSegment < 2) - scrollDirSelect.selectedSegment += 2; - else if (sender.floatValue && scrollDirSelect.selectedSegment >= 2) - scrollDirSelect.selectedSegment -= 2; + [self commit]; +} + +- (IBAction)scrollTypeChanged:(NSButton *)sender { + [radioButtons selectCellAtRow:5 column:0]; + [sender.window makeFirstResponder:sender]; + if (sender.state == NSOnState) { + scrollSpeedSlider.floatValue = (scrollSpeedSlider.maxValue - scrollSpeedSlider.minValue) / 2; + [scrollSpeedSlider setEnabled:YES]; + } else { + scrollSpeedSlider.floatValue = scrollSpeedSlider.minValue; + [scrollSpeedSlider setEnabled:NO]; + } [self commit]; } @@ -173,15 +179,14 @@ } case 4: { NJOutputMouseButton *mb = [[NJOutputMouseButton alloc] init]; - mb.button = mouseBtnSelect.selectedSegment == 0 ? kCGMouseButtonLeft : kCGMouseButtonRight; + mb.button = [mouseBtnSelect.cell tagForSegment:mouseBtnSelect.selectedSegment]; return mb; } case 5: { NJOutputMouseScroll *ms = [[NJOutputMouseScroll alloc] init]; - ms.direction = (scrollDirSelect.selectedSegment & 1) ? 1 : -1; - ms.speed = scrollDirSelect.selectedSegment < 2 - ? scrollSpeedSlider.floatValue - : 0.f; + ms.direction = [scrollDirSelect.cell tagForSegment:scrollDirSelect.selectedSegment]; + ms.speed = scrollSpeedSlider.floatValue; + ms.smooth = smoothCheck.state == NSOnState; return ms; } default: @@ -207,7 +212,8 @@ [mouseSpeedSlider setEnabled:enabled]; [mouseBtnSelect setEnabled:enabled]; [scrollDirSelect setEnabled:enabled]; - [scrollSpeedSlider setEnabled:enabled]; + [smoothCheck setEnabled:enabled]; + [scrollSpeedSlider setEnabled:enabled && smoothCheck.isEnabled]; } - (void)loadOutput:(NJOutput *)output forInput:(NJInput *)input { @@ -240,14 +246,17 @@ } else if ([output isKindOfClass:NJOutputMouseButton.class]) { [radioButtons selectCellAtRow:4 column:0]; - mouseBtnSelect.selectedSegment = [(NJOutputMouseButton *)output button] == kCGMouseButtonLeft ? 0 : 1; + [mouseBtnSelect selectSegmentWithTag:[(NJOutputMouseButton *)output button]]; } else if ([output isKindOfClass:NJOutputMouseScroll.class]) { [radioButtons selectCellAtRow:5 column:0]; int direction = [(NJOutputMouseScroll *)output direction]; float speed = [(NJOutputMouseScroll *)output speed]; - scrollDirSelect.selectedSegment = (direction > 0) + !speed * 2; + BOOL smooth = [(NJOutputMouseScroll *)output smooth]; + [scrollDirSelect selectSegmentWithTag:direction]; scrollSpeedSlider.floatValue = speed; + smoothCheck.state = smooth ? NSOnState : NSOffState; + [scrollSpeedSlider setEnabled:smooth]; } else { [radioButtons selectCellAtRow:self.enabled ? 0 : -1 column:0]; }