ui/cocoa/toolkit.m

changeset 10
6f263196f916
parent 7
431dde3c5fbe
child 14
e2fd132ab781
--- a/ui/cocoa/toolkit.m	Wed Mar 26 15:53:43 2014 +0100
+++ b/ui/cocoa/toolkit.m	Fri Mar 28 20:03:01 2014 +0100
@@ -36,6 +36,7 @@
 
 #import "toolkit.h"
 #import "window.h"
+#import "menu.h"
 #import "toolbar.h"
 
 
@@ -53,6 +54,7 @@
     
     
     uic_docmgr_init();
+    ui_menu_init();
     ui_toolbar_init();
     // load item stock
     // ui_init_stock();
@@ -118,4 +120,32 @@
     return true;
 }
 
+- (BOOL)handleStateEvent:(id)sender {
+    NSWindow *activeWindow = [NSApp keyWindow];
+    NSMenuItem *item = (NSMenuItem*)sender;
+    int state = [item state] ? NSOffState : NSOnState;
+    
+    UiEvent event;
+    event.intval = state;
+    if([activeWindow class] == [UiCocoaWindow class]) {
+        event.obj = [(UiCocoaWindow*)activeWindow object];
+        event.window = event.obj->window;
+        event.document = event.obj->document;
+        // update state in window data
+        UiMenuItem *wmi = [(UiCocoaWindow*)activeWindow getMenuItem: sender];
+        wmi->state = state;
+    } else {
+        event.window = NULL;
+        event.document = NULL;
+    }
+    if(callback) {
+        callback(&event, data);
+    }
+    [item setState: state];
+    
+    return true;
+}
+
 @end
+
+

mercurial