diff -r 3cb2587f8891 -r a4e0ef98a8b4 ui/win32/toolkit.c --- a/ui/win32/toolkit.c Tue Mar 25 14:17:00 2025 +0100 +++ b/ui/win32/toolkit.c Tue Mar 25 15:06:50 2025 +0100 @@ -27,7 +27,59 @@ */ #include "toolkit.h" +#include "Windows.h" + +#include "../common/properties.h" #include <stdio.h> #include <stdlib.h> +static const 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; + +void ui_init(const char *appname, int argc, char **argv) { + application_name = appname; +} + +const char* ui_appname() { + return application_name; +} + +void ui_onstartup(ui_callback f, void *userdata) { + startup_func = f; + startup_data = userdata; +} + +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); + } + + // event loop + MSG msg; + while (GetMessage(&msg, NULL, 0, 0)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + if(exit_func) { + exit_func(NULL, exit_data); + } + uic_store_app_properties(); +}