diff -r 6dd780cbc8c6 -r 69e8e0936858 ui/motif/toolkit.c --- 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(); }