diff options
author | Gama Anderson <gamaanderson92@gmail.com> | 2015-02-28 20:06:09 +0100 |
---|---|---|
committer | Arx Cruz <acruz@redhat.com> | 2015-04-21 13:00:44 +0200 |
commit | ba5ea0386de2a80a664fb28d3af7e8d395968314 (patch) | |
tree | f07081dd0d7b837c80716b4573dd563a2300f2ea /src/fileselection.c | |
parent | allow build if GDK_WINDOWING_X11 not set (diff) | |
download | zenity-ba5ea0386de2a80a664fb28d3af7e8d395968314.tar.gz zenity-ba5ea0386de2a80a664fb28d3af7e8d395968314.tar.bz2 zenity-ba5ea0386de2a80a664fb28d3af7e8d395968314.zip |
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/fileselection.c')
-rw-r--r-- | src/fileselection.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/fileselection.c b/src/fileselection.c index 9edbb6ae..fbf0e5de 100644 --- a/src/fileselection.c +++ b/src/fileselection.c @@ -62,6 +62,14 @@ void zenity_fileselection (ZenityData *data, ZenityFileData *file_data) g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (zenity_fileselection_dialog_response), file_data); + 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->dialog_title) gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title); @@ -181,7 +189,8 @@ zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer 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; } |