ui/motif/toolkit.c

changeset 134
69e8e0936858
parent 122
e82b01d17a78
child 157
0b33b9396851
--- a/ui/motif/toolkit.c	Sun Jan 22 11:16:21 2017 +0100
+++ b/ui/motif/toolkit.c	Sun Jan 22 11:48:50 2017 +0100
@@ -43,6 +43,13 @@
 static Widget active_window;
 static char *application_name;
 
+static ui_callback   startup_func;
+static void          *startup_data;
+static ui_callback   open_func;
+void                 *open_data;
+static ui_callback   exit_func;
+void                 *exit_data;
+
 static ui_callback appclose_fnc;
 static void *appclose_udata;
 
@@ -134,19 +141,28 @@
     return display;
 }
 
-void ui_exitfunc(ui_callback f, void *udata) {
-    appclose_fnc = f;
-    appclose_udata = udata;
+void ui_onstartup(ui_callback f, void *userdata) {
+    startup_func = f;
+    startup_data = userdata;
 }
 
-void ui_openfilefunc(ui_callback f, void *userdata) {
-    // OS X only
+void ui_onopen(ui_callback f, void *userdata) {
+    open_func = f;
+    open_data = userdata;
+}
+
+void ui_onexit(ui_callback f, void *userdata) {
+    exit_func = f;
+    exit_data = userdata;
 }
 
 void ui_main() {
+    if(startup_func) {
+        startup_func(NULL, startup_data);
+    }
     XtAppMainLoop(app);
-    if(appclose_fnc) {
-        appclose_fnc(NULL, appclose_udata);
+    if(exit_func) {
+        exit_func(NULL, exit_data);
     }
     uic_store_app_properties();
 }

mercurial