# HG changeset patch # User Olaf Wintermann # Date 1780833078 -7200 # Node ID ec28b0c22af04ef28941dc79c76692fd37710fde # Parent 469929a55765e09f92c95c7d1efc105b5df0c726 add app newwindow callback diff -r 469929a55765 -r ec28b0c22af0 ui/common/app.c --- a/ui/common/app.c Sun Jun 07 13:17:15 2026 +0200 +++ b/ui/common/app.c Sun Jun 07 13:51:18 2026 +0200 @@ -30,6 +30,8 @@ static ui_callback startup_func; static void *startup_data; +static ui_callback newwindow_func; +static void *newwindow_data; static ui_callback open_func; void *open_data; static ui_callback exit_func; @@ -41,6 +43,11 @@ startup_data = userdata; } +void ui_onnewwindow(ui_callback f, void *userdata) { + newwindow_func = f; + newwindow_data = userdata; +} + void ui_onopen(ui_callback f, void *userdata) { open_func = f; open_data = userdata; @@ -58,6 +65,12 @@ } } +void uic_application_newwindow(UiEvent *event) { + if(newwindow_func) { + newwindow_func(event, newwindow_data); + } +} + void uic_application_open(UiEvent *event) { if(open_func) { open_func(event, open_data); @@ -69,3 +82,7 @@ exit_func(event, exit_data); } } + +void ui_newwindow(void) { + uic_application_newwindow(NULL); +} diff -r 469929a55765 -r ec28b0c22af0 ui/common/app.h --- a/ui/common/app.h Sun Jun 07 13:17:15 2026 +0200 +++ b/ui/common/app.h Sun Jun 07 13:51:18 2026 +0200 @@ -36,6 +36,7 @@ #endif void uic_application_startup(UiEvent *event); +void uic_application_newwindow(UiEvent *event); void uic_application_open(UiEvent *event); void uic_application_exit(UiEvent *event); diff -r 469929a55765 -r ec28b0c22af0 ui/ui/toolkit.h --- a/ui/ui/toolkit.h Sun Jun 07 13:17:15 2026 +0200 +++ b/ui/ui/toolkit.h Sun Jun 07 13:51:18 2026 +0200 @@ -545,9 +545,12 @@ UIEXPORT int ui_object_unref(UiObject *obj); UIEXPORT void ui_onstartup(ui_callback f, void *userdata); +UIEXPORT void ui_onnewwindow(ui_callback f, void *userdata); UIEXPORT void ui_onopen(ui_callback f, void *userdata); UIEXPORT void ui_onexit(ui_callback f, void *userdata); +UIEXPORT void ui_newwindow(void); + UIEXPORT int ui_app_save_settings(void); UIEXPORT void ui_app_exit_on_shutdown(UiBool exitapp);