ui/gtk/toolkit.c

changeset 45
ab71409644b0
parent 44
473954dc6b74
--- a/ui/gtk/toolkit.c	Sun Sep 29 13:32:51 2024 +0200
+++ b/ui/gtk/toolkit.c	Sun Sep 29 20:25:41 2024 +0200
@@ -383,4 +383,26 @@
 
 
 
-#endif
\ No newline at end of file
+#endif
+
+void ui_set_name_and_style(GtkWidget *widget, const char *name, const char *style_classes) {
+    if(name) {
+        gtk_widget_set_name(widget, name);
+    }
+    if(style_classes) {
+        cxstring *cls = NULL;
+        size_t numClasses = cx_strsplit_a(cxDefaultAllocator, cx_str(style_classes), CX_STR(" "), 128, &cls);
+        for(int i=0;i<numClasses;i++) {
+            cxmutstr m = cx_strdup(cls[i]);
+#if GTK_MAJOR_VERSION >= 4
+            gtk_widget_add_css_class(widget, m.ptr);
+#elif GTK_MAJOR_VERSION >= 3
+            GtkStyleContext *ctx = gtk_widget_get_style_context(widget);
+            gtk_style_context_add_class(ctx, m.ptr);
+#endif
+            free(m.ptr);
+        }
+        free(cls);
+        
+    }
+}

mercurial