ui/wpf/menu.c

changeset 82
0cdb8089a29f
parent 81
5eb765a7a793
child 89
9a7e4a335b2b
--- a/ui/wpf/menu.c	Sun Jan 25 15:01:04 2015 +0100
+++ b/ui/wpf/menu.c	Tue Jan 27 09:59:32 2015 +0100
@@ -37,13 +37,36 @@
 }
 
 void ui_submenu(char *label) {
-    
+    UIsubmenu(label);
 }
 
 void ui_submenu_end() {
-    
+    UIsubmenu_end();
 }
 
 void ui_menuitem(char *label, ui_callback f, void *userdata) {
-    UImenuitem(label, f, userdata);
+    ui_callback cb = NULL;
+    void *e = NULL;
+    if (f) {
+        UiEventData *event = malloc(sizeof(UiEventData));
+        event->obj = NULL;
+        event->user_data = userdata;
+        event->callback = f;
+        event->value = 0;
+        cb = (ui_callback)ui_menu_callback;
+        e = event;
+    }
+    
+    UImenuitem(label, cb, e);
 }
+
+
+void ui_menu_callback(UiObject *obj, UiEventData *e) {
+    UiEvent event;
+    event.obj = obj;
+    event.window = obj->window;
+    event.intval = 0;
+    event.eventdata = NULL;
+    event.document = obj->ctx->document;
+    e->callback(&event, e->user_data);
+}

mercurial