add app newwindow callback

Sun, 07 Jun 2026 13:51:18 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 07 Jun 2026 13:51:18 +0200
changeset 1182
ec28b0c22af0
parent 1181
469929a55765
child 1183
51c0e1053592

add app newwindow callback

ui/common/app.c file | annotate | diff | comparison | revisions
ui/common/app.h file | annotate | diff | comparison | revisions
ui/ui/toolkit.h file | annotate | diff | comparison | revisions
--- 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);
+}
--- 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);
 
--- 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);
 

mercurial