summaryrefslogtreecommitdiff
path: root/cocoa/TreeView.m
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-02-02 13:07:32 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-02-02 13:07:32 +0000
commit9ca01635181e2d98f2dc1d661f55b0b7b1f46720 (patch)
treea528f3a7236906f36aa0c2242f606295bb5e9f1b /cocoa/TreeView.m
parent618eb9d30ab41d9a216f5fae7ec6d1f9bcbbf737 (diff)
downloadnetsurf-9ca01635181e2d98f2dc1d661f55b0b7b1f46720.tar.gz
netsurf-9ca01635181e2d98f2dc1d661f55b0b7b1f46720.tar.bz2
Handling keyboard events in tree view.
svn path=/trunk/netsurf/; revision=11602
Diffstat (limited to 'cocoa/TreeView.m')
-rw-r--r--cocoa/TreeView.m121
1 files changed, 121 insertions, 0 deletions
diff --git a/cocoa/TreeView.m b/cocoa/TreeView.m
index 1a6f83323..ec6f1d526 100644
--- a/cocoa/TreeView.m
+++ b/cocoa/TreeView.m
@@ -20,6 +20,7 @@
#import "cocoa/Tree.h"
#import "desktop/plotters.h"
+#import "desktop/textinput.h"
@interface TreeView () <TreeDelegate>
@end
@@ -38,6 +39,11 @@
return YES;
}
+- (BOOL) acceptsFirstResponder;
+{
+ return YES;
+}
+
- (void) dealloc;
{
[self setTree: nil];
@@ -98,6 +104,121 @@
}
}
+//MARK: Keyboard events
+
+- (void) keyDown: (NSEvent *)theEvent;
+{
+ [self interpretKeyEvents: [NSArray arrayWithObject: theEvent]];
+}
+
+- (void) insertText: (id)string;
+{
+ for (NSUInteger i = 0, length = [string length]; i < length; i++) {
+ unichar ch = [string characterAtIndex: i];
+ [tree keyPress: ch];
+ }
+}
+
+- (void) moveLeft: (id)sender;
+{
+ [tree keyPress: KEY_LEFT];
+}
+
+- (void) moveRight: (id)sender;
+{
+ [tree keyPress: KEY_RIGHT];
+}
+
+- (void) moveUp: (id)sender;
+{
+ [tree keyPress: KEY_UP];
+}
+
+- (void) moveDown: (id)sender;
+{
+ [tree keyPress: KEY_DOWN];
+}
+
+- (void) deleteBackward: (id)sender;
+{
+ [tree keyPress: KEY_DELETE_LEFT];
+}
+
+- (void) deleteForward: (id)sender;
+{
+ [tree keyPress: KEY_DELETE_RIGHT];
+}
+
+- (void) cancelOperation: (id)sender;
+{
+ [tree keyPress: KEY_ESCAPE];
+}
+
+- (void) scrollPageUp: (id)sender;
+{
+ [tree keyPress: KEY_PAGE_UP];
+}
+
+- (void) scrollPageDown: (id)sender;
+{
+ [tree keyPress: KEY_PAGE_DOWN];
+}
+
+- (void) insertTab: (id)sender;
+{
+ [tree keyPress: KEY_TAB];
+}
+
+- (void) insertBacktab: (id)sender;
+{
+ [tree keyPress: KEY_SHIFT_TAB];
+}
+
+- (void) moveToBeginningOfLine: (id)sender;
+{
+ [tree keyPress: KEY_LINE_START];
+}
+
+- (void) moveToEndOfLine: (id)sender;
+{
+ [tree keyPress: KEY_LINE_END];
+}
+
+- (void) moveToBeginningOfDocument: (id)sender;
+{
+ [tree keyPress: KEY_TEXT_START];
+}
+
+- (void) moveToEndOfDocument: (id)sender;
+{
+ [tree keyPress: KEY_TEXT_END];
+}
+
+- (void) insertNewline: (id)sender;
+{
+ [tree keyPress: KEY_NL];
+}
+
+- (void) selectAll: (id)sender;
+{
+ [tree keyPress: KEY_SELECT_ALL];
+}
+
+- (void) copy: (id) sender;
+{
+ [tree keyPress: KEY_COPY_SELECTION];
+}
+
+- (void) cut: (id) sender;
+{
+ [tree keyPress: KEY_CUT_SELECTION];
+}
+
+- (void) paste: (id) sender;
+{
+ [tree keyPress: KEY_PASTE];
+}
+
//MARK: -
//MARK: Tree delegate methods