mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-11-13 02:08:55 +00:00
Don't test keyCodes directly in CPResponder now that we have proper key equivalent characters.
This commit is contained in:
1 parent
c28222e04d
commit
1c35bd22f8
2 files changed
+31
-34
No files matched your search
+30
-34
@@ -22,7 +22,6 @@
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
|
||||
|
||||
CPDeleteKeyCode = 8;
|
||||
CPTabKeyCode = 9;
|
||||
CPReturnKeyCode = 13;
|
||||
@@ -39,7 +38,7 @@ CPDeleteForwardKeyCode = 46;
|
||||
/*!
|
||||
@ingroup appkit
|
||||
@class CPResponder
|
||||
|
||||
|
||||
Subclasses of CPResonder can be part of the responder chain.
|
||||
*/
|
||||
@implementation CPResponder : CPObject
|
||||
@@ -107,39 +106,36 @@ CPDeleteForwardKeyCode = 46;
|
||||
{
|
||||
var event = events[index];
|
||||
|
||||
switch([event keyCode])
|
||||
switch([[event characters] characterAtIndex:0])
|
||||
{
|
||||
case CPPageUpKeyCode: [self doCommandBySelector:@selector(pageUp:)];
|
||||
break;
|
||||
case CPPageDownKeyCode: [self doCommandBySelector:@selector(pageDown:)];
|
||||
break;
|
||||
case CPLeftArrowKeyCode: [self doCommandBySelector:@selector(moveLeft:)];
|
||||
break;
|
||||
case CPRightArrowKeyCode: [self doCommandBySelector:@selector(moveRight:)];
|
||||
break;
|
||||
case CPUpArrowKeyCode: [self doCommandBySelector:@selector(moveUp:)];
|
||||
break;
|
||||
case CPDownArrowKeyCode: [self doCommandBySelector:@selector(moveDown:)];
|
||||
break;
|
||||
case CPDeleteKeyCode: [self doCommandBySelector:@selector(deleteBackward:)];
|
||||
break;
|
||||
case CPReturnKeyCode:
|
||||
case 3: [self doCommandBySelector:@selector(insertLineBreak:)];
|
||||
break;
|
||||
|
||||
case CPEscapeKeyCode: [self doCommandBySelector:@selector(cancel:)];
|
||||
break;
|
||||
case CPPageUpFunctionKey: [self doCommandBySelector:@selector(pageUp:)];
|
||||
break;
|
||||
case CPPageDownFunctionKey: [self doCommandBySelector:@selector(pageDown:)];
|
||||
break;
|
||||
case CPLeftArrowFunctionKey: [self doCommandBySelector:@selector(moveLeft:)];
|
||||
break;
|
||||
case CPRightArrowFunctionKey: [self doCommandBySelector:@selector(moveRight:)];
|
||||
break;
|
||||
case CPUpArrowFunctionKey: [self doCommandBySelector:@selector(moveUp:)];
|
||||
break;
|
||||
case CPDownArrowFunctionKey: [self doCommandBySelector:@selector(moveDown:)];
|
||||
break;
|
||||
case CPDeleteCharacter: [self doCommandBySelector:@selector(deleteBackward:)];
|
||||
break;
|
||||
case CPCarriageReturnCharacter:
|
||||
case CPNewlineCharacter: [self doCommandBySelector:@selector(insertLineBreak:)];
|
||||
break;
|
||||
|
||||
case CPTabKeyCode: var shift = [event modifierFlags] & CPShiftKeyMask;
|
||||
case CPEscapeFunctionKey: [self doCommandBySelector:@selector(cancel:)];
|
||||
break;
|
||||
|
||||
if (!shift)
|
||||
[self doCommandBySelector:@selector(insertTab:)];
|
||||
else
|
||||
[self doCommandBySelector:@selector(insertBackTab:)];
|
||||
case CPTabCharacter: if (!([event modifierFlags] & CPShiftKeyMask))
|
||||
[self doCommandBySelector:@selector(insertTab:)];
|
||||
else
|
||||
[self doCommandBySelector:@selector(insertBackTab:)];
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
default: [self insertText:[event characters]];
|
||||
default: [self insertText:[event characters]];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -316,7 +312,7 @@ CPDeleteForwardKeyCode = 46;
|
||||
if([self respondsToSelector:aSelector])
|
||||
{
|
||||
[self performSelector:aSelector withObject:anObject];
|
||||
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
@@ -367,10 +363,10 @@ var CPResponderNextResponderKey = @"CPResponderNextResponderKey";
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
|
||||
if (self)
|
||||
_nextResponder = [aCoder decodeObjectForKey:CPResponderNextResponderKey];
|
||||
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
CPKeyCodes.DOWN, CPDownArrowFunctionKey, @selector(moveDown:),
|
||||
CPKeyCodes.BACKSPACE, CPDeleteCharacter, @selector(deleteBackward:),
|
||||
CPKeyCodes.ENTER, CPCarriageReturnCharacter, @selector(insertLineBreak:),
|
||||
0, CPNewlineCharacter, @selector(insertLineBreak:),
|
||||
CPKeyCodes.ESC, CPEscapeFunctionKey, @selector(cancel:),
|
||||
CPKeyCodes.TAB, CPTabCharacter, @selector(insertTab:)
|
||||
];
|
||||
|
||||
Reference in new issue
Block a user