X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=KeyInputTextView.m;h=91a2a3453d797d1f2a1494469e16cddbf2166f43;hp=288d903fa156bde99ff12c9c1f1c830e4c746cee;hb=1bb3f553caac2b6b74380bd20ddc4bb1ff22abb2;hpb=561317beecbe4dd445b0c3cb067326828ea5566a diff --git a/KeyInputTextView.m b/KeyInputTextView.m index 288d903..91a2a34 100644 --- a/KeyInputTextView.m +++ b/KeyInputTextView.m @@ -7,13 +7,13 @@ #import "KeyInputTextView.h" +#import "TargetController.h" + @implementation KeyInputTextView { int vk; BOOL enabled; } -@synthesize descr; - - (id)initWithFrame:(NSRect)frameRect { if ((self = [super initWithFrame:frameRect])) { self.alignment = NSCenterTextAlignment; @@ -25,13 +25,15 @@ - (void)clear { self.vk = -1; + [targetController keyChanged]; + [self resignIfFirstResponder]; } - (BOOL)hasKey { return self.vk >= 0; } -- (NSString *)stringForKeyCode:(int)keycode { ++ (NSString *)stringForKeyCode:(int)keycode { switch(keycode) { case -1: return @""; case 0x7a: return @"F1"; @@ -155,7 +157,7 @@ } - (BOOL)acceptsFirstResponder { - return enabled; + return self.enabled; } - (BOOL)becomeFirstResponder { @@ -168,16 +170,9 @@ return [super resignFirstResponder]; } -- (void)setBackgroundColor:(NSColor *)color { - [super setBackgroundColor:color]; -} - - (void)setVk:(int)key { vk = key; - descr = [self stringForKeyCode:key]; - [self setStringValue:descr]; - if (self.hasKey) - [targetController keyChanged]; + [self setStringValue:[KeyInputTextView stringForKeyCode:key]]; } - (int)vk { @@ -187,20 +182,27 @@ - (void)keyDown:(NSEvent *)evt { if (!evt.isARepeat) { self.vk = evt.keyCode; - [[self window] makeFirstResponder:nil]; + [targetController keyChanged]; + [self resignIfFirstResponder]; } } +- (void)mouseDown:(NSEvent *)theEvent { + [targetController keyChanged]; + [self.window makeFirstResponder:self]; +} + - (void)flagsChanged:(NSEvent *)evt { self.vk = evt.keyCode; - [[self window] makeFirstResponder:nil]; + [targetController keyChanged]; + [self resignIfFirstResponder]; } - (void)setEnabled:(BOOL)newEnabled { enabled = newEnabled; - if (!enabled && window.firstResponder == self) - [window makeFirstResponder:nil]; + if (!enabled) + [self resignIfFirstResponder]; } - (BOOL)enabled {