4 days ago
implement first toolkit functions (WIN32)
application/main.c | file | annotate | diff | comparison | revisions | |
ui/common/properties.c | file | annotate | diff | comparison | revisions | |
ui/win32/toolkit.c | file | annotate | diff | comparison | revisions |
--- a/application/main.c Tue Mar 25 14:17:00 2025 +0100 +++ b/application/main.c Tue Mar 25 15:06:50 2025 +0100 @@ -773,8 +773,18 @@ #ifdef UI_WIN32 +void application_startup(UiEvent *event, void *data) { + +} + int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { + ui_init("app1", 0, NULL); + ui_onstartup(application_startup, NULL); + + ui_main(); + return 0; } #endif +
--- a/ui/common/properties.c Tue Mar 25 14:17:00 2025 +0100 +++ b/ui/common/properties.c Tue Mar 25 15:06:50 2025 +0100 @@ -116,7 +116,7 @@ static int ui_mkdir(char *path) { #ifdef _WIN32 - return mkdir(path); + return _mkdir(path); #else return mkdir(path, S_IRWXU); #endif
--- 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(); +}