]> uap-core.de Git - note.git/commitdiff
update toolkit
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Mon, 23 Mar 2026 19:49:23 +0000 (20:49 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Mon, 23 Mar 2026 19:49:23 +0000 (20:49 +0100)
.gitignore
ui/cocoa/appdelegate.m
ui/cocoa/button.m
ui/cocoa/toolkit.m
ui/common/args.c
ui/common/args.h
ui/gtk/toolkit.c
ui/motif/toolkit.c
ui/qt/toolkit.cpp
ui/ui/toolkit.h

index 6a501356393beb8e54ff760608b531268c0ea9da..1c756e16cc92d877339af30c55593fb1c08e2e7c 100644 (file)
@@ -7,4 +7,5 @@ make/vs/vcpkg_installed
 ui/winui/winui.vcxproj.user
 ui/winui/Generated Files
 gmon.out
+.DS_Store
 
index f0967edf57f54307e9062f8e330255c7e1d69101..82d90206b11dbf501a54e33e8a928b914cf59bf5 100644 (file)
@@ -40,6 +40,7 @@
 }
 
 - (void)applicationWillTerminate:(NSNotification *)aNotification {
+    NSLog(@"toolkit applicationWillTerminate");
     ui_cocoa_onexit();
 }
 
index 54295dab1501b97bad2083565a7afe47beb9c429..e34049d716e40ad98a1403074ff2b2fd9b2f744a 100644 (file)
@@ -370,7 +370,7 @@ static char* create_linkbutton_jsonvalue(const char *label, const char *uri, UiB
     
     CxJsonWriter writer = cxJsonWriterCompact();
     CxBuffer buf;
-    cxBufferInit(&buf, NULL, 128, NULL, CX_BUFFER_AUTO_EXTEND);
+    cxBufferInit(&buf, NULL, NULL, 128, CX_BUFFER_AUTO_EXTEND);
     cxJsonWrite(&buf, obj, (cx_write_func)cxBufferWrite, &writer);
     cxJsonValueFree(obj);
     cxBufferTerminate(&buf);
index e2ef998613551d0c7fa4d670e6d2db5d278f57d0..50bfcdbf0e7e574f5c74a061853193aa28c083d8 100644 (file)
@@ -28,6 +28,9 @@
 
 #import "toolkit.h"
 
+#include <stdlib.h>
+#include <string.h>
+
 #include "../common/document.h"
 #include "../common/properties.h"
 #include "../common/menu.h"
@@ -51,31 +54,36 @@ static UiBool        exit_on_shutdown;
 
 /* ------------------- App Init / Event Loop functions ------------------- */
 
+static AppDelegate *app_delegate;
 
 void ui_init(const char *appname, int argc, char **argv) {
-    application_name = appname;
+    application_name = appname ? strdup(appname) : NULL;
     app_argc = argc;
     app_argv = (const char**)argv;
     
     uic_init_global_context();
-
+    
     uic_menu_init();
     uic_toolbar_init();
-
+    
     uic_load_app_properties();
-
+    
     NSApplication *app = [NSApplication sharedApplication];
-    //[app setActivationPolicy:NSApplicationActivationPolicyRegular];
+    [app setActivationPolicy:NSApplicationActivationPolicyRegular];
     
     //[NSBundle loadNibNamed:@"MainMenu" owner:NSApp ];
     //[[NSBundle mainBundle] loadNibNamed:@"MainMenu" owner:NSApp topLevelObjects:&topLevelObjects];
     
+    app_delegate = [[AppDelegate alloc] init];
+    app.delegate = app_delegate;
+    
+    
     ui_icon_init();
     ui_toolbar_init();
     
 }
 
-const char* ui_appname() {
+const char* ui_appname(void) {
     return application_name;
 }
 
@@ -128,6 +136,10 @@ void ui_app_unref(void) {
     // TODO
 }
 
+void ui_app_quit(void) {
+    [[NSApplication sharedApplication] terminate:nil];
+}
+
 /* ------------------- Window Visibility functions ------------------- */
 
 void ui_show(UiObject *obj) {
index 821b2215197ebce84d446da3e53e8cb181df62b2..b6c4f65e8f2582f725fe4b87eee8ccb7444f4051 100644 (file)
@@ -2049,6 +2049,12 @@ void ui_sourcelist_args_set_header_is_item(UiSourceListArgs *args, UiBool value)
     args->header_is_item = value;
 }
 
+UIEXPORT void ui_sourcelist_args_set_states(UiSourceListArgs *args, int *states, int numstates) {
+    args->visibility_states = calloc(numstates+1, sizeof(int));
+    memcpy((void*)args->states, states, numstates * sizeof(int));
+    ((int*)args->states)[numstates] = -1;
+}
+
 void ui_sourcelist_args_set_visibility_states(UiSourceListArgs *args, int *states, int numstates) {
     args->visibility_states = calloc(numstates+1, sizeof(int));
     memcpy((void*)args->visibility_states, states, numstates * sizeof(int));
index 2c5abeb8c1e934951661f103abeb24d949e48144..5bd93bbe053feafca3c601fabe9082bc75391394 100644 (file)
@@ -484,6 +484,7 @@ UIEXPORT void ui_sourcelist_args_set_onbuttonclick(UiSourceListArgs *args, ui_ca
 UIEXPORT void ui_sourcelist_args_set_onbuttonclickdata(UiSourceListArgs *args, void *userdata);
 UIEXPORT void ui_sourcelist_args_set_contextmenu(UiSourceListArgs *args, UiMenuBuilder *menubuilder);
 UIEXPORT void ui_sourcelist_args_set_header_is_item(UiSourceListArgs *args, UiBool value);
+UIEXPORT void ui_sourcelist_args_set_states(UiSourceListArgs *args, int *states, int numstates);
 UIEXPORT void ui_sourcelist_args_set_visibility_states(UiSourceListArgs *args, int *states, int numstates);
 UIEXPORT void ui_sourcelist_args_free(UiSourceListArgs *args);
 
index f974baea12e5f0c8f8fac6efedaf0ca1e897f41b..e31009174c559a2bcc0b0a90a280aac337e52dcd 100644 (file)
@@ -63,7 +63,7 @@ static int scale_factor = 1;
 static UiBool        exit_on_shutdown;
 
 UIEXPORT void ui_init(const char *appname, int argc, char **argv) {
-    application_name = appname;
+    application_name = appname ? strdup(appname) : NULL;
     uic_init_global_context();
     
 #if GTK_MAJOR_VERSION >= 4
index a9d605e2d2d546297b87970a7c12f0ca566e1a07..5a0c9de26d9d97fcb3e6257efc5521da41793f28 100644 (file)
@@ -90,7 +90,7 @@ void ui_motif_set_fallback_resources(String *fallbackres) {
 }
 
 void ui_init(const char *appname, int argc, char **argv) { 
-    application_name = appname;
+    application_name = appname ? strdup(appname) : NULL;
     uic_init_global_context();
     
     XtToolkitInitialize();
@@ -98,7 +98,7 @@ void ui_init(const char *appname, int argc, char **argv) {
     app = XtCreateApplicationContext();
     XtAppSetFallbackResources(app, fallback_resources);
     
-    display =  XtOpenDisplay(app, NULL, appname, appname, NULL, 0, &argc, argv);
+    display =  XtOpenDisplay(app, NULL, application_name, application_name, NULL, 0, &argc, argv);
     
     uic_menu_init();
     uic_toolbar_init();
index 91bc4ed1013747e7eae7196dd8166d658aae5d39..cc5f656bad1cb4f683dc1bab749b1f02ac53b664 100644 (file)
@@ -49,7 +49,7 @@ static QApplication *application = NULL;
 static UiBool exit_on_shutdown;
 
 void ui_init(const char *appname, int argc, char **argv) {
-    application_name = appname;
+    application_name = appname ? strdup(appname) : NULL;
     
     app_argc = argc;
     app_argv = argv;
index b798e664b7d53699edf528a3e38b9c2b9ff32d63..fb8c349790e3885bbc0e5f28ffc549125cd72040 100644 (file)
@@ -529,7 +529,7 @@ struct UiTextStyle {
 
 
 UIEXPORT void ui_init(const char *appname, int argc, char **argv);
-UIEXPORT const char* ui_appname();
+UIEXPORT const char* ui_appname(void);
 
 UIEXPORT void ui_add_styledata(const char *styledata, int len);