Sun, 07 Dec 2025 16:02:47 +0100
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);