diff --git a/ChangeLog b/ChangeLog index 372bfac..0a55543 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-06-03 Mike Newman + + * data/zenity.1: Update docs for --auto-close progress dialog + * help/C/zenity.xml: option. + 2003-06-03 Mike Newman * src/gdialog.in: add a --help option, pointing to @@ -7,6 +12,12 @@ * configure.in: Added "ko" to ALL_LINGUAS. +2003-06-01 Mike Newman + + * src/main.c: Implement --auto-close for --progress, which + * src/progress.c: behaves as if OK was clicked when reaching 100% + * src/zenity.h: Fixes #114125 + 2003-05-29 Glynn Foster * configure.in: release 1.3 diff --git a/data/zenity.1 b/data/zenity.1 index e6b3637..b61a8c9 100644 --- a/data/zenity.1 +++ b/data/zenity.1 @@ -149,6 +149,9 @@ Set the dialog text .B \-\-percentage=INT Set initial percentage .TP +.B \-\-auto\-close +Close dialog when 100% has been reached +.TP .B \-\-pulsate Pulsate progress bar diff --git a/help/C/zenity.xml b/help/C/zenity.xml index e7c9bfb..37e0fa2 100644 --- a/help/C/zenity.xml +++ b/help/C/zenity.xml @@ -709,6 +709,13 @@ + + --auto-close + + Closes the progress dialog when 100% has been reached. + + + --pulsate diff --git a/src/main.c b/src/main.c index 0a2d312..9f99071 100644 --- a/src/main.c +++ b/src/main.c @@ -97,6 +97,7 @@ enum { OPTION_PROGRESSTEXT, OPTION_PERCENTAGE, OPTION_PULSATE, + OPTION_AUTOCLOSE, OPTION_QUESTIONTEXT, OPTION_WARNINGTEXT, OPTION_ABOUT, @@ -520,6 +521,15 @@ struct poptOption progress_options[] = { N_("Pulsate progress bar"), NULL }, + { + "auto-close", + '\0', + POPT_ARG_NONE, + NULL, + OPTION_AUTOCLOSE, + N_("Dismiss the dialog when 100% has been reached"), + NULL + }, POPT_TABLEEND }; @@ -917,6 +927,7 @@ zenity_init_parsing_options (void) { results->tree_data->separator = g_strdup ("/"); results->progress_data->percentage = -1; results->progress_data->pulsate = FALSE; + results->progress_data->autoclose = FALSE; results->entry_data->visible = TRUE; results->tree_data->checkbox = FALSE; results->tree_data->radiobox = FALSE; @@ -1373,6 +1384,12 @@ zenity_parse_options_callback (poptContext ctx, results->progress_data->pulsate = TRUE; break; + case OPTION_AUTOCLOSE: + if (results->mode != MODE_PROGRESS) + zenity_error ("--auto-close", ERROR_SUPPORT); + + results->progress_data->autoclose = TRUE; + break; case OPTION_ABOUT: if (results->mode != MODE_LAST) zenity_error (NULL, ERROR_DIALOG); diff --git a/src/progress.c b/src/progress.c index aa06e7d..dc0d74b 100644 --- a/src/progress.c +++ b/src/progress.c @@ -28,7 +28,7 @@ static guint timer; static GladeXML *glade_dialog; - +static ZenityData *zen_data; static GIOChannel *channel; gint zenity_progress_timeout (gpointer data); @@ -111,6 +111,11 @@ zenity_progress_handle_stdin (GIOChannel *channel, gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0); gtk_widget_set_sensitive(GTK_WIDGET (button), TRUE); gtk_widget_grab_focus(GTK_WIDGET (button)); + if (progress_data->autoclose) { + zen_data->exit_code = 0; + gtk_main_quit(); + + } } else gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), percentage / 100.0); } @@ -165,6 +170,7 @@ zenity_progress (ZenityData *data, ZenityProgressData *progress_data) GtkWidget *progress_bar; guint input; + zen_data = data; glade_dialog = zenity_util_load_glade_file ("zenity_progress_dialog"); if (glade_dialog == NULL) { @@ -207,8 +213,6 @@ zenity_progress (ZenityData *data, ZenityProgressData *progress_data) static void zenity_progress_dialog_response (GtkWidget *widget, int response, gpointer data) { - ZenityData *zen_data = data; - switch (response) { case GTK_RESPONSE_OK: zen_data->exit_code = 0; diff --git a/src/zenity.h b/src/zenity.h index 95f477c..e96f528 100644 --- a/src/zenity.h +++ b/src/zenity.h @@ -65,6 +65,7 @@ typedef struct { gchar *dialog_text; gchar *entry_text; gboolean pulsate; + gboolean autoclose; gdouble percentage; } ZenityProgressData;