summaryrefslogtreecommitdiff
path: root/src/tree.c
diff options
context:
space:
mode:
authorGama Anderson <gamaanderson92@gmail.com>2015-02-28 20:06:09 +0100
committerArx Cruz <acruz@redhat.com>2015-04-21 13:00:44 +0200
commitba5ea0386de2a80a664fb28d3af7e8d395968314 (patch)
treef07081dd0d7b837c80716b4573dd563a2300f2ea /src/tree.c
parent5c9095731e7995974de2468debbf1b82593445fd (diff)
downloadzenity-ba5ea0386de2a80a664fb28d3af7e8d395968314.tar.gz
ADD gchar **extra_label TO struct ZenityData
this is done to keep the name of the extra buttons ADD general option "extra-button" with string array as argument This will upon consecutive calls save the name of buttons in an array of strings To all MODES, except notification.c and about.c ADD if (data->extra_label) { gint i=0; while(data->extra_label[i]!=NULL){ gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i); i++; } } This add the extra buttons to the dialog. The response is the number of the button To all MODES response, except notification.c and about.c ADD default: if (response < g_strv_length(zen_data->extra_label)) printf("%s\n",zen_data->extra_label[response]); This will print the button name to stdout when they are pressed ADD question option "switch" This will suppress the standard "ok" and "cancel" button in question. This just wort in combination with --extra-button, otherwise error is raised. https://bugzilla.gnome.org/show_bug.cgi?id=118016
Diffstat (limited to 'src/tree.c')
-rw-r--r--src/tree.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/tree.c b/src/tree.c
index 819f9a8..0e2665c 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -396,6 +396,14 @@ zenity_tree (ZenityData *data, ZenityTreeData *tree_data)
if (data->modal)
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ if (data->extra_label) {
+ gint i=0;
+ while(data->extra_label[i]!=NULL){
+ gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
+ i++;
+ }
+ }
+
if (data->ok_label) {
button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_ok_button"));
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
@@ -708,7 +716,8 @@ zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data)
break;
default:
- /* Esc dialog */
+ if (response < g_strv_length(zen_data->extra_label))
+ printf("%s\n",zen_data->extra_label[response]);
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
break;
}