--- 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 + +