33 CPPageDownKeyCode = 34;
34 CPLeftArrowKeyCode = 37;
35 CPUpArrowKeyCode = 38;
36 CPRightArrowKeyCode = 39;
37 CPDownArrowKeyCode = 40;
38 CPDeleteForwardKeyCode = 46;
56 - (BOOL)acceptsFirstResponder
66 - (BOOL)becomeFirstResponder
75 - (BOOL)resignFirstResponder
87 _nextResponder = aResponder;
95 return _nextResponder;
102 - (void)interpretKeyEvents:(CPArray)events
105 count = [events count];
107 for (; index < count; ++index)
109 var
event = events[index],
110 modifierFlags = [event modifierFlags],
111 character = [event charactersIgnoringModifiers],
116 for (var s = 0, scount = selectorNames.length; s < scount; s++)
118 var selector = selectorNames[s];
122 [
self doCommandBySelector:CPSelectorFromString(selector)];
126 [
self insertText:[event characters]];
134 - (void)mouseDown:(
CPEvent)anEvent
136 [_nextResponder performSelector:_cmd withObject:anEvent];
143 - (void)rightMouseDown:(
CPEvent)anEvent
145 [_nextResponder performSelector:_cmd withObject:anEvent];
153 - (void)mouseDragged:(
CPEvent)anEvent
155 [_nextResponder performSelector:_cmd withObject:anEvent];
162 - (void)mouseUp:(
CPEvent)anEvent
164 [_nextResponder performSelector:_cmd withObject:anEvent];
171 - (void)rightMouseUp:(
CPEvent)anEvent
173 [_nextResponder performSelector:_cmd withObject:anEvent];
180 - (void)mouseMoved:(
CPEvent)anEvent
182 [_nextResponder performSelector:_cmd withObject:anEvent];
185 - (void)mouseEntered:(
CPEvent)anEvent
187 [_nextResponder performSelector:_cmd withObject:anEvent];
194 - (void)mouseExited:(
CPEvent)anEvent
196 [_nextResponder performSelector:_cmd withObject:anEvent];
203 - (void)scrollWheel:(
CPEvent)anEvent
205 [_nextResponder performSelector:_cmd withObject:anEvent];
212 - (void)keyDown:(
CPEvent)anEvent
214 [_nextResponder performSelector:_cmd withObject:anEvent];
223 [_nextResponder performSelector:_cmd withObject:anEvent];
230 - (void)flagsChanged:(
CPEvent)anEvent
232 [_nextResponder performSelector:_cmd withObject:anEvent];
248 - (BOOL)performKeyEquivalent:(
CPEvent)anEvent
258 - (void)insertLineBreak:(
id)aSender
260 [
self insertNewline:aSender];
267 - (void)insertNewline:(
id)aSender
269 [[
self nextResponder] insertNewline:aSender];
272 - (void)insertTab:(
id)sender
276 - (void)insertBackTab:(
id)sender
284 - (void)insertText:(
CPString)aString
294 - (void)doCommandBySelector:(
SEL)aSelector
296 if ([
self respondsToSelector:aSelector])
297 [
self performSelector:aSelector];
299 [_nextResponder doCommandBySelector:aSelector];
309 - (BOOL)tryToPerform:(
SEL)aSelector with:(
id)anObject
311 if ([
self respondsToSelector:aSelector])
313 [
self performSelector:aSelector withObject:anObject];
318 return [_nextResponder tryToPerform:aSelector with:anObject];
323 - (void)setMenu:(
CPMenu)aMenu
339 return [_nextResponder performSelector:_cmd];
347 - (void)noResponderFor:(
SEL)anEventSelector
353 var CPResponderNextResponderKey =
@"CPResponderNextResponderKey",
354 CPResponderMenuKey =
@"CPResponderMenuKey";
356 @implementation CPResponder (CPCoding) <CPCoding>
363 - (id)initWithCoder:(
CPCoder)aCoder
369 [
self setNextResponder:[aCoder decodeObjectForKey:CPResponderNextResponderKey]];
370 [
self setMenu:[aCoder decodeObjectForKey:CPResponderMenuKey]];
380 - (void)encodeWithCoder:(
CPCoder)aCoder
383 if (_nextResponder !== nil)
384 [aCoder encodeConditionalObject:_nextResponder forKey:CPResponderNextResponderKey];
386 [aCoder encodeObject:_menu forKey:CPResponderMenuKey];