From: Olaf Wintermann Date: Mon, 23 Mar 2026 19:49:23 +0000 (+0100) Subject: update toolkit X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=d1e4afda350052e6600f99995eeedf28de193840;p=note.git update toolkit --- diff --git a/.gitignore b/.gitignore index 6a50135..1c756e1 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ make/vs/vcpkg_installed ui/winui/winui.vcxproj.user ui/winui/Generated Files gmon.out +.DS_Store diff --git a/ui/cocoa/appdelegate.m b/ui/cocoa/appdelegate.m index f0967ed..82d9020 100644 --- a/ui/cocoa/appdelegate.m +++ b/ui/cocoa/appdelegate.m @@ -40,6 +40,7 @@ } - (void)applicationWillTerminate:(NSNotification *)aNotification { + NSLog(@"toolkit applicationWillTerminate"); ui_cocoa_onexit(); } diff --git a/ui/cocoa/button.m b/ui/cocoa/button.m index 54295da..e34049d 100644 --- a/ui/cocoa/button.m +++ b/ui/cocoa/button.m @@ -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); diff --git a/ui/cocoa/toolkit.m b/ui/cocoa/toolkit.m index e2ef998..50bfcdb 100644 --- a/ui/cocoa/toolkit.m +++ b/ui/cocoa/toolkit.m @@ -28,6 +28,9 @@ #import "toolkit.h" +#include +#include + #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) { diff --git a/ui/common/args.c b/ui/common/args.c index 821b221..b6c4f65 100644 --- a/ui/common/args.c +++ b/ui/common/args.c @@ -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)); diff --git a/ui/common/args.h b/ui/common/args.h index 2c5abeb..5bd93bb 100644 --- a/ui/common/args.h +++ b/ui/common/args.h @@ -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); diff --git a/ui/gtk/toolkit.c b/ui/gtk/toolkit.c index f974bae..e310091 100644 --- a/ui/gtk/toolkit.c +++ b/ui/gtk/toolkit.c @@ -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 diff --git a/ui/motif/toolkit.c b/ui/motif/toolkit.c index a9d605e..5a0c9de 100644 --- a/ui/motif/toolkit.c +++ b/ui/motif/toolkit.c @@ -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(); diff --git a/ui/qt/toolkit.cpp b/ui/qt/toolkit.cpp index 91bc4ed..cc5f656 100644 --- a/ui/qt/toolkit.cpp +++ b/ui/qt/toolkit.cpp @@ -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; diff --git a/ui/ui/toolkit.h b/ui/ui/toolkit.h index b798e66..fb8c349 100644 --- a/ui/ui/toolkit.h +++ b/ui/ui/toolkit.h @@ -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);