BOOL enabled;
}
-@synthesize descr;
-
- (id)initWithFrame:(NSRect)frameRect {
if ((self = [super initWithFrame:frameRect])) {
self.alignment = NSCenterTextAlignment;
- (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";
}
- (BOOL)acceptsFirstResponder {
- return enabled;
+ return self.enabled;
}
- (BOOL)becomeFirstResponder {
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 {
- (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 {