summaryrefslogtreecommitdiff
path: root/cocoa/BrowserView.m
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-01-14 17:50:11 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-01-14 17:50:11 +0000
commit7bd51ba0ba97a56bdee4cefecf3c1db68c53b0b8 (patch)
tree2849302b40c19636309761996ae2ef60a843c2a2 /cocoa/BrowserView.m
parent30d9439781bc7429c414438b6ca140f90fd45223 (diff)
downloadnetsurf-7bd51ba0ba97a56bdee4cefecf3c1db68c53b0b8.tar.gz
netsurf-7bd51ba0ba97a56bdee4cefecf3c1db68c53b0b8.tar.bz2
Implementing selection and clipboard functions.
svn path=/trunk/netsurf/; revision=11319
Diffstat (limited to 'cocoa/BrowserView.m')
-rw-r--r--cocoa/BrowserView.m41
1 files changed, 41 insertions, 0 deletions
diff --git a/cocoa/BrowserView.m b/cocoa/BrowserView.m
index e2112cf95..d95fc81e7 100644
--- a/cocoa/BrowserView.m
+++ b/cocoa/BrowserView.m
@@ -23,6 +23,7 @@
#import "desktop/plotters.h"
#import "desktop/textinput.h"
#import "desktop/options.h"
+#import "desktop/selection.h"
@implementation BrowserView
@@ -275,6 +276,26 @@ static browser_mouse_state cocoa_mouse_flags_for_event( NSEvent *evt )
browser_window_key_press( browser, KEY_NL );
}
+- (void) selectAll: (id)sender;
+{
+ browser_window_key_press( browser, KEY_SELECT_ALL );
+}
+
+- (void) copy: (id) sender;
+{
+ browser_window_key_press( browser, KEY_COPY_SELECTION );
+}
+
+- (void) cut: (id) sender;
+{
+ browser_window_key_press( browser, KEY_CUT_SELECTION );
+}
+
+- (void) paste: (id) sender;
+{
+ browser_window_key_press( browser, KEY_PASTE );
+}
+
- (void) setFrame: (NSRect)frameRect;
{
[super setFrame: frameRect];
@@ -337,6 +358,26 @@ static browser_mouse_state cocoa_mouse_flags_for_event( NSEvent *evt )
return YES;
}
+
+- (BOOL) validateUserInterfaceItem: (id) item;
+{
+ SEL action = [item action];
+
+ if (action == @selector(copy:)) {
+ return selection_defined( browser->sel );
+ }
+
+ if (action == @selector(cut:)) {
+ return selection_defined( browser->sel ) && browser->caret_callback != NULL;
+ }
+
+ if (action == @selector(paste:)) {
+ return browser->paste_callback != NULL;
+ }
+
+ return YES;
+}
+
- (BOOL) acceptsFirstResponder;
{
return YES;