13 days ago
add ui_add_styledata function (GTK)
ui/gtk/toolkit.c | file | annotate | diff | comparison | revisions | |
ui/ui/toolkit.h | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/toolkit.c Thu Mar 06 20:19:49 2025 +0100 +++ b/ui/gtk/toolkit.c Fri Mar 07 21:46:52 2025 +0100 @@ -327,8 +327,6 @@ #if GTK_MAJOR_VERSION >= 3 -static GtkCssProvider* ui_gtk_css_provider; - #if GTK_MAJOR_VERSION == 4 static const char *ui_gtk_css = "#path-textfield-box {\n" @@ -415,15 +413,19 @@ #endif void ui_css_init(void) { - ui_gtk_css_provider = gtk_css_provider_new(); + ui_add_styledata(ui_gtk_css, -1); +} + +void ui_add_styledata(const char *styledata, int len) { + GtkCssProvider *css = gtk_css_provider_new(); #ifdef UI_GTK3 - gtk_css_provider_load_from_data(ui_gtk_css_provider, ui_gtk_css, -1, NULL); + gtk_css_provider_load_from_data(css, styledata, len, NULL); GdkScreen *screen = gdk_screen_get_default(); gtk_style_context_add_provider_for_screen( screen, - GTK_STYLE_PROVIDER(ui_gtk_css_provider), + GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_USER); #endif /* UI_GTK3 */ @@ -431,13 +433,20 @@ #if GTK_MINOR_VERSION < 12 - gtk_css_provider_load_from_data(ui_gtk_css_provider, ui_gtk_css, -1); + gtk_css_provider_load_from_data(css, styledata, len); #else - gtk_css_provider_load_from_string(ui_gtk_css_provider, ui_gtk_css); + if(len < 0) { + gtk_css_provider_load_from_string(css, ui_gtk_css); + } else { + GBytes *style_data = g_bytes_new(styledata, len); + gtk_css_provider_load_from_bytes(css, style_data); + g_bytes_unref(style_data); + + } #endif /* GTK_MINOR_VERSION < 12 */ GdkDisplay *display = gdk_display_get_default(); - gtk_style_context_add_provider_for_display(display, GTK_STYLE_PROVIDER(ui_gtk_css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + gtk_style_context_add_provider_for_display(display, GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); #endif /* UI_GTK4 */ }
--- a/ui/ui/toolkit.h Thu Mar 06 20:19:49 2025 +0100 +++ b/ui/ui/toolkit.h Fri Mar 07 21:46:52 2025 +0100 @@ -447,6 +447,8 @@ UIEXPORT void ui_init(const char *appname, int argc, char **argv); UIEXPORT const char* ui_appname(); +UIEXPORT void ui_add_styledata(const char *styledata, int len); + UIEXPORT UiContext* ui_global_context(void); UIEXPORT void ui_context_closefunc(UiContext *ctx, ui_callback fnc, void *udata);