--- a/ui/gtk/toolkit.c Sun Oct 19 21:20:08 2025 +0200 +++ b/ui/gtk/toolkit.c Mon Nov 10 21:52:51 2025 +0100 @@ -40,7 +40,6 @@ #include "../common/toolbar.h" #include "../common/threadpool.h" -#include <cx/utils.h> #include <cx/string.h> #include <cx/printf.h> @@ -544,3 +543,19 @@ ui_set_enabled(widget, FALSE); } } + +void ui_set_widget_visibility_states(UiContext *ctx, GtkWidget *widget, const int *states) { + if(!states) { + return; + } + size_t nstates = uic_group_array_size(states); + ui_set_widget_nvisibility_states(ctx, widget, states, nstates); +} + + +void ui_set_widget_nvisibility_states(UiContext *ctx, GtkWidget *widget, const int *states, size_t ngroups) { + if(ngroups > 0) { + uic_add_group_widget_i(ctx, widget, (ui_enablefunc)ui_set_visible, states, ngroups); + ui_set_visible(widget, FALSE); + } +}