From: Paul Hänsch Date: Wed, 15 Jul 2026 13:53:00 +0000 (+0200) Subject: actions for setting checkboxes X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=1cf6e31015cfa6cae50b1d2e453c8f0826584283;p=gladerunner actions for setting checkboxes --- diff --git a/glade2.glade b/glade2.glade index 472731d..9af82d9 100644 --- a/glade2.glade +++ b/glade2.glade @@ -228,7 +228,7 @@ - + True False Rad Bar 1 @@ -247,7 +247,7 @@ Rad Bar 2 True True - rbar 1 + rbar1 False @@ -255,7 +255,7 @@ - + True False BarT diff --git a/gladerunner.c b/gladerunner.c index e164aa0..5abc768 100644 --- a/gladerunner.c +++ b/gladerunner.c @@ -118,6 +118,27 @@ int a_widget(GtkWidget *w, char *cmd, char *args) { else return 0; return 1; } +int a_tb(GtkToggleButton *w, char *cmd, char *args) { + if (!w || !cmd || !cmd[0]) return 0; + else if (!strcmp(cmd, "check")) gtk_toggle_button_set_active(w, TRUE); + else if (!strcmp(cmd, "uncheck")) gtk_toggle_button_set_active(w, FALSE); + else return 0; + return 1; +} +int a_ttb(GtkToggleToolButton *w, char *cmd, char *args) { + if (!w || !cmd || !cmd[0]) return 0; + else if (!strcmp(cmd, "check")) gtk_toggle_tool_button_set_active(w, TRUE); + else if (!strcmp(cmd, "uncheck")) gtk_toggle_tool_button_set_active(w, FALSE); + else return 0; + return 1; +} +int a_cmi(GtkCheckMenuItem *w, char *cmd, char *args) { + if (!w || !cmd || !cmd[0]) return 0; + else if (!strcmp(cmd, "check")) gtk_check_menu_item_set_active(w, TRUE); + else if (!strcmp(cmd, "uncheck")) gtk_check_menu_item_set_active(w, FALSE); + else return 0; + return 1; +} int a_button(GtkButton *w, char *cmd, char *args) { if (!w || !cmd || !cmd[0]) return 0; @@ -151,6 +172,9 @@ int action(char *cli) { || !(wdg = GTK_WIDGET(gtk_builder_get_object(builder, wid))) ) return 0; else if (0 + || (GTK_IS_TOGGLE_BUTTON(wdg) && a_tb(GTK_TOGGLE_BUTTON(wdg), cmd, args)) + || (GTK_IS_CHECK_MENU_ITEM(wdg) && a_cmi(GTK_CHECK_MENU_ITEM(wdg), cmd, args)) + || (GTK_IS_TOGGLE_TOOL_BUTTON(wdg) && a_ttb(GTK_TOGGLE_TOOL_BUTTON(wdg), cmd, args)) || (GTK_IS_ENTRY(wdg) && a_entry(GTK_ENTRY(wdg), cmd, args)) || (GTK_IS_WINDOW(wdg) && a_window(GTK_WINDOW(wdg), cmd, args)) || (GTK_IS_TEXT_VIEW(wdg) && a_text_view(GTK_TEXT_VIEW(wdg), cmd, args))