fix gtk3 build

Sun, 07 Dec 2025 16:02:47 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 07 Dec 2025 16:02:47 +0100
changeset 973
aa39a986da78
parent 972
de69ed2c6961
child 974
dc72d666d721

fix gtk3 build

ui/common/toolbar.c file | annotate | diff | comparison | revisions
ui/common/toolbar.h file | annotate | diff | comparison | revisions
ui/gtk/button.c file | annotate | diff | comparison | revisions
ui/gtk/entry.c file | annotate | diff | comparison | revisions
ui/gtk/headerbar.c file | annotate | diff | comparison | revisions
ui/gtk/list.c file | annotate | diff | comparison | revisions
ui/gtk/menu.c file | annotate | diff | comparison | revisions
ui/gtk/text.c file | annotate | diff | comparison | revisions
ui/gtk/toolbar.c file | annotate | diff | comparison | revisions
ui/gtk/toolkit.c file | annotate | diff | comparison | revisions
ui/gtk/toolkit.h file | annotate | diff | comparison | revisions
ui/gtk/webview.c file | annotate | diff | comparison | revisions
--- a/ui/common/toolbar.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/common/toolbar.c	Sun Dec 07 16:02:47 2025 +0100
@@ -65,7 +65,7 @@
 void ui_toolbar_item_create(const char* name, UiToolbarItemArgs *args) {
     UiToolbarItem* item = malloc(sizeof(UiToolbarItem));
     item->item.type = UI_TOOLBAR_ITEM;
-    item->args = itemargs_copy(args, &item->ngroups, &item->nvstates);
+    item->args = itemargs_copy(args, &item->nstates, &item->nvstates);
     cxMapPut(toolbar_items, name, item);
 }
 
@@ -86,7 +86,7 @@
 void ui_toolbar_toggleitem_create(const char* name, UiToolbarToggleItemArgs *args) {
     UiToolbarToggleItem* item = malloc(sizeof(UiToolbarToggleItem));
     item->item.type = UI_TOOLBAR_TOGGLEITEM;
-    item->args = toggleitemargs_copy(args, &item->ngroups, &item->nvstates);
+    item->args = toggleitemargs_copy(args, &item->nstates, &item->nvstates);
     cxMapPut(toolbar_items, name, item);
 }
 
--- a/ui/common/toolbar.h	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/common/toolbar.h	Sun Dec 07 16:02:47 2025 +0100
@@ -62,14 +62,14 @@
 struct UiToolbarItem {
     UiToolbarItemI item;
     UiToolbarItemArgs args;
-    size_t ngroups;
+    size_t nstates;
     size_t nvstates;
 };
 
 struct UiToolbarToggleItem {
     UiToolbarItemI item;
     UiToolbarToggleItemArgs args;
-    size_t ngroups;
+    size_t nstates;
     size_t nvstates;
 };
 
--- a/ui/gtk/button.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/button.c	Sun Dec 07 16:02:47 2025 +0100
@@ -106,7 +106,7 @@
 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) {
     GtkWidget *button = ui_create_button(obj, args->label, args->icon, args->tooltip, args->onclick, args->onclickdata, 0, FALSE);
     ui_set_name_and_style(button, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, button, args->states);
+    ui_set_widget_states(obj->ctx, button, args->states);
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
     ct->add(ct, button, &layout);
@@ -310,7 +310,7 @@
             args->onchangedata,
             args->enable_state);
     ui_set_name_and_style(widget, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, widget, args->states);
+    ui_set_widget_states(obj->ctx, widget, args->states);
     
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
@@ -373,7 +373,7 @@
             args->enable_state);
     
     ui_set_name_and_style(widget, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, widget, args->states);
+    ui_set_widget_states(obj->ctx, widget, args->states);
     
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
@@ -419,7 +419,7 @@
 UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) {
     GtkWidget *widget = gtk_switch_new();
     ui_set_name_and_style(widget, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, widget, args->states);
+    ui_set_widget_states(obj->ctx, widget, args->states);
     
     UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER);
     if(var) {
@@ -541,7 +541,7 @@
     
     GtkWidget *rbutton = RADIOBUTTON_NEW(rg, args->label); 
     ui_set_name_and_style(rbutton, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, rbutton, args->states);
+    ui_set_widget_states(obj->ctx, rbutton, args->states);
     if(rgroup) {
 #if GTK_MAJOR_VERSION >= 4
         if(rg) {
@@ -895,7 +895,7 @@
     }
     
     ui_set_name_and_style(button, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, button, args->states);
+    ui_set_widget_states(obj->ctx, button, args->states);
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
     ct->add(ct, button, &layout);
--- a/ui/gtk/entry.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/entry.c	Sun Dec 07 16:02:47 2025 +0100
@@ -79,7 +79,7 @@
 #endif
     GtkWidget *spin = gtk_spin_button_new_with_range(min, max, args->step);
     ui_set_name_and_style(spin, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, spin, args->states);
+    ui_set_widget_states(obj->ctx, spin, args->states);
     
     if(args->width > 0) {
         gtk_widget_set_size_request(spin, args->width, -1);
--- a/ui/gtk/headerbar.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/headerbar.c	Sun Dec 07 16:02:47 2025 +0100
@@ -164,7 +164,7 @@
         enum UiToolbarPos pos)
 {
     GtkWidget *button = ui_create_button(obj, item->args.label, item->args.icon, item->args.tooltip, item->args.onclick, item->args.onclickdata, 0, FALSE);
-    ui_set_widget_groups(obj->ctx, button, item->args.states);
+    ui_set_widget_states(obj->ctx, button, item->args.states);
     ui_set_widget_visibility_states(obj->ctx, button, item->args.visibility_states);
     WIDGET_ADD_CSS_CLASS(button, "flat");
     headerbar_add(headerbar, box, button, pos);
@@ -178,7 +178,7 @@
         enum UiToolbarPos pos)
 {
     GtkWidget *button = gtk_toggle_button_new();
-    ui_set_widget_groups(obj->ctx, button, item->args.states);
+    ui_set_widget_states(obj->ctx, button, item->args.states);
     ui_set_widget_visibility_states(obj->ctx, button, item->args.visibility_states);
     WIDGET_ADD_CSS_CLASS(button, "flat");
     ui_setup_togglebutton(obj, button, item->args.label, item->args.icon, item->args.tooltip, item->args.varname, NULL, item->args.onchange, item->args.onchangedata, 0);
--- a/ui/gtk/list.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/list.c	Sun Dec 07 16:02:47 2025 +0100
@@ -99,8 +99,10 @@
     tableview->onsave = args->onsave;
     tableview->onsavedata = args->onsavedata;
     
+#if GTK_CHECK_VERSION(4, 0, 0)
     tableview->coldata.listview = tableview;
     tableview->coldata.column = 0;
+#endif
     
     if(args->getvalue2) {
         tableview->getvalue = args->getvalue2;
@@ -1200,7 +1202,7 @@
     // create treeview
     GtkWidget *view = gtk_tree_view_new();
     ui_set_name_and_style(view, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, view, args->groups);
+    ui_set_widget_states(obj->ctx, view, args->states);
     GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
     GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", 0, NULL);
     gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
@@ -1558,7 +1560,7 @@
 
 
 
-/* --------------------------- ComboBox ---------------------------  */
+/* --------------------------- Dropdown ---------------------------  */
 
 UIWIDGET ui_dropdown_create(UiObject *obj, UiListArgs *args) {
     GtkWidget *combobox = gtk_combo_box_new();
@@ -1567,7 +1569,7 @@
     }
     
     ui_set_name_and_style(combobox, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, combobox, args->groups);
+    ui_set_widget_states(obj->ctx, combobox, args->states);
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
     ct->add(ct, combobox, &layout);
@@ -2231,7 +2233,7 @@
     SCROLLEDWINDOW_SET_CHILD(scroll_area, listbox);
     
     ui_set_name_and_style(listbox, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, listbox, args->states);
+    ui_set_widget_states(obj->ctx, listbox, args->states);
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
     ct->add(ct, scroll_area, &layout);
--- a/ui/gtk/menu.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/menu.c	Sun Dec 07 16:02:47 2025 +0100
@@ -129,11 +129,11 @@
     
     gtk_menu_shell_append(GTK_MENU_SHELL(parent), widget);
     
-    if(i->groups) {
-        CxList *groups = cxArrayListCreateSimple(sizeof(int), i->ngroups);
-        cxListAddArray(groups, i->groups, i->ngroups);
-        uic_add_state_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, groups);
-        cxListFree(groups);
+    if(i->states) {
+        CxList *states = cxArrayListCreateSimple(sizeof(int), i->nstates);
+        cxListAddArray(states, i->states, i->nstates);
+        uic_add_state_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, states);
+        cxListFree(states);
     }
 }
 
--- a/ui/gtk/text.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/text.c	Sun Dec 07 16:02:47 2025 +0100
@@ -113,7 +113,7 @@
     
     GtkWidget *text_area = gtk_text_view_new();
     ui_set_name_and_style(text_area, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, text_area, args->states);
+    ui_set_widget_states(obj->ctx, text_area, args->states);
     
     gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_area), GTK_WRAP_WORD_CHAR);
     g_signal_connect(
@@ -603,7 +603,7 @@
 static UIWIDGET create_textfield(UiObject *obj, UiBool frameless, UiBool password, UiTextFieldArgs *args) {
     GtkWidget *textfield = gtk_entry_new();
     ui_set_name_and_style(textfield, args->name, args->style_class);
-    ui_set_widget_groups(obj->ctx, textfield, args->states);
+    ui_set_widget_states(obj->ctx, textfield, args->states);
     
     UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_STRING);
     
--- a/ui/gtk/toolbar.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/toolbar.c	Sun Dec 07 16:02:47 2025 +0100
@@ -139,7 +139,7 @@
     }
     gtk_tool_item_set_is_important(button, TRUE);
     
-    ui_set_widget_ngroups(obj->ctx, GTK_WIDGET(button), item->args.groups, item->ngroups);
+    ui_set_widget_nstates(obj->ctx, GTK_WIDGET(button), item->args.states, item->nstates);
     
     if(item->args.onclick) {
         UiEventData *event = cxMalloc(
@@ -181,7 +181,7 @@
     if(item->args.tooltip) {
         gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), item->args.tooltip);
     }
-    ui_set_widget_ngroups(obj->ctx, GTK_WIDGET(button), item->args.groups, item->ngroups);
+    ui_set_widget_nstates(obj->ctx, GTK_WIDGET(button), item->args.states, item->nstates);
     
     UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, item->args.varname, UI_VAR_INTEGER);
     if(var) {
@@ -394,7 +394,7 @@
     if(item->args.icon) {
         ui_button_set_icon_name(button, item->args.icon);
     }
-    ui_set_widget_groups(obj->ctx, button, item->args.groups);
+    ui_set_widget_states(obj->ctx, button, item->args.states);
     
     gtk_header_bar_pack_start(hb, button);
     
--- a/ui/gtk/toolkit.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/toolkit.c	Sun Dec 07 16:02:47 2025 +0100
@@ -239,9 +239,9 @@
     gtk_widget_set_visible(widget, visible);
 #else
     if(visible) {
-        gtk_widget_set_no_show_all(widget, FALSE);
         gtk_widget_show_all(widget);
     } else {
+        gtk_widget_set_no_show_all(widget, FALSE);
         gtk_widget_hide(widget);
     }
 #endif
@@ -505,17 +505,17 @@
     }
 }
 
-void ui_set_widget_groups(UiContext *ctx, GtkWidget *widget, const int *groups) {
-    if(!groups) {
+void ui_set_widget_states(UiContext *ctx, GtkWidget *widget, const int *states) {
+    if(!states) {
         return;
     }
-    size_t ngroups = uic_state_array_size(groups);
-    ui_set_widget_ngroups(ctx, widget, groups, ngroups);
+    size_t nstates = uic_state_array_size(states);
+    ui_set_widget_nstates(ctx, widget, states, nstates);
 }
 
-void ui_set_widget_ngroups(UiContext *ctx, GtkWidget *widget, const int *groups, size_t ngroups) {
-    if(ngroups > 0) {
-        uic_add_state_widget_i(ctx, widget, (ui_enablefunc)ui_set_enabled, groups, ngroups);
+void ui_set_widget_nstates(UiContext *ctx, GtkWidget *widget, const int *states, size_t nstates) {
+    if(nstates > 0) {
+        uic_add_state_widget_i(ctx, widget, (ui_enablefunc)ui_set_enabled, states, nstates);
         ui_set_enabled(widget, FALSE);
     }
 }
--- a/ui/gtk/toolkit.h	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/toolkit.h	Sun Dec 07 16:02:47 2025 +0100
@@ -178,8 +178,8 @@
 int ui_get_scalefactor();
 
 void ui_set_name_and_style(GtkWidget *widget, const char *name, const char *style);
-void ui_set_widget_groups(UiContext *ctx, GtkWidget *widget, const int *groups);
-void ui_set_widget_ngroups(UiContext *ctx, GtkWidget *widget, const int *groups, size_t ngroups);
+void ui_set_widget_states(UiContext *ctx, GtkWidget *widget, const int *states);
+void ui_set_widget_nstates(UiContext *ctx, GtkWidget *widget, const int *states, size_t nstates);
 void ui_set_widget_visibility_states(UiContext *ctx, GtkWidget *widget, const int *states);
 void ui_set_widget_nvisibility_states(UiContext *ctx, GtkWidget *widget, const int *states, size_t ngroups);
 
--- a/ui/gtk/webview.c	Sun Dec 07 15:51:22 2025 +0100
+++ b/ui/gtk/webview.c	Sun Dec 07 16:02:47 2025 +0100
@@ -60,7 +60,7 @@
         }
     }
     
-    ui_set_widget_groups(obj->ctx, webview, args->states);
+    ui_set_widget_states(obj->ctx, webview, args->states);
     UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end;
     UiLayout layout = UI_ARGS2LAYOUT(args);
     ct->add(ct, webview, &layout);

mercurial