summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/about.c161
-rw-r--r--src/calendar.c268
-rw-r--r--src/color.c166
-rw-r--r--src/entry.c324
-rw-r--r--src/fileselection.c344
-rw-r--r--src/forms.c708
-rw-r--r--src/main.c145
-rw-r--r--src/msg.c435
-rw-r--r--src/notification.c606
-rw-r--r--src/option.c4180
-rw-r--r--src/option.h80
-rw-r--r--src/password.c298
-rw-r--r--src/progress.c673
-rw-r--r--src/scale.c257
-rw-r--r--src/text.c695
-rw-r--r--src/tree.c1392
-rw-r--r--src/util.c630
-rw-r--r--src/util.h53
-rw-r--r--src/zenity.h271
19 files changed, 5798 insertions, 5888 deletions
diff --git a/src/about.c b/src/about.c
index 486b6416..627aa1ea 100644
--- a/src/about.c
+++ b/src/about.c
@@ -25,10 +25,10 @@
*/
#include "config.h"
-#include "zenity.h"
#include "util.h"
-#include <string.h>
+#include "zenity.h"
#include <gdk/gdkkeysyms.h>
+#include <string.h>
#define GTK_RESPONSE_CREDITS 0
#define ZENITY_HELP_PATH ZENITY_DATADIR "/help/"
@@ -39,39 +39,38 @@
static GtkWidget *dialog;
-static void zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_about_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
/* Sync with the people in the THANKS file */
-static const gchar *const authors[] = {
- "Glynn Foster <glynn foster sun com>",
- "Lucas Rocha <lucasr gnome org>",
- "Mike Newman <mikegtn gnome org>",
- NULL
-};
+static const gchar *const authors[] = {"Glynn Foster <glynn foster sun com>",
+ "Lucas Rocha <lucasr gnome org>",
+ "Mike Newman <mikegtn gnome org>",
+ NULL};
-static const char *documenters[] = {
- "Glynn Foster <glynn.foster@sun.com>",
- "Lucas Rocha <lucasr@gnome.org>",
- "Java Desktop System Documentation Team",
- "GNOME Documentation Project",
- NULL
-};
+static const char *documenters[] = {"Glynn Foster <glynn.foster@sun.com>",
+ "Lucas Rocha <lucasr@gnome.org>",
+ "Java Desktop System Documentation Team",
+ "GNOME Documentation Project",
+ NULL};
static gchar *translators;
static const char *license[] = {
- N_("This program is free software; you can redistribute it and/or modify "
- "it under the terms of the GNU Lesser General Public License as published by "
- "the Free Software Foundation; either version 2 of the License, or "
- "(at your option) any later version.\n"),
- N_("This program is distributed in the hope that it will be useful, "
- "but WITHOUT ANY WARRANTY; without even the implied warranty of "
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
- "GNU Lesser General Public License for more details.\n"),
- N_("You should have received a copy of the GNU Lesser General Public License "
- "along with this program; if not, write to the Free Software "
- "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.")
-};
+ N_ ("This program is free software; you can redistribute it and/or modify "
+ "it under the terms of the GNU Lesser General Public License as "
+ "published by "
+ "the Free Software Foundation; either version 2 of the License, or "
+ "(at your option) any later version.\n"),
+ N_ ("This program is distributed in the hope that it will be useful, "
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of "
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
+ "GNU Lesser General Public License for more details.\n"),
+ N_ ("You should have received a copy of the GNU Lesser General Public "
+ "License "
+ "along with this program; if not, write to the Free Software "
+ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
+ "02110-1301, USA.")};
#if 0
static gint
@@ -253,66 +252,78 @@ zenity_zen_wisdom (GtkDialog *dialog, GdkEventKey *event, gpointer user_data)
}
#endif
-void
-zenity_about (ZenityData *data)
-{
- GdkPixbuf *logo;
- char *license_trans;
-
-
- translators = _("translator-credits");
- logo = gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
-
- license_trans = g_strconcat (_(license[0]), "\n", _(license[1]), "\n",
- _(license[2]), "\n", NULL);
-
- dialog = gtk_about_dialog_new ();
-
- g_object_set (G_OBJECT (dialog),
- "name", "Zenity",
- "version", VERSION,
- "copyright", "Copyright \xc2\xa9 2003 Sun Microsystems",
- "comments", _("Display dialog boxes from shell scripts"),
- "authors", authors,
- "documenters", documenters,
- "translator-credits", translators,
- "website", "http://live.gnome.org/Zenity",
- "logo", logo,
- "wrap-license", TRUE,
- "license", license_trans,
+void
+zenity_about (ZenityData *data) {
+ GdkPixbuf *logo;
+ char *license_trans;
+
+ translators = _ ("translator-credits");
+ logo =
+ gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
+
+ license_trans = g_strconcat (
+ _ (license[0]), "\n", _ (license[1]), "\n", _ (license[2]), "\n", NULL);
+
+ dialog = gtk_about_dialog_new ();
+
+ g_object_set (G_OBJECT (dialog),
+ "name",
+ "Zenity",
+ "version",
+ VERSION,
+ "copyright",
+ "Copyright \xc2\xa9 2003 Sun Microsystems",
+ "comments",
+ _ ("Display dialog boxes from shell scripts"),
+ "authors",
+ authors,
+ "documenters",
+ documenters,
+ "translator-credits",
+ translators,
+ "website",
+ "http://live.gnome.org/Zenity",
+ "logo",
+ logo,
+ "wrap-license",
+ TRUE,
+ "license",
+ license_trans,
NULL);
-
- g_free (license_trans);
- zenity_util_set_window_icon (dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
+ g_free (license_trans);
+
+ zenity_util_set_window_icon (
+ dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_about_dialog_response), data);
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_about_dialog_response),
+ data);
#if 0
g_signal_connect (G_OBJECT (dialog), "key_press_event",
G_CALLBACK (zenity_zen_wisdom), NULL);
#endif
- zenity_util_show_dialog (dialog, data->attach);
- gtk_main ();
+ zenity_util_show_dialog (dialog, data->attach);
+ gtk_main ();
}
static void
-zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data = data;
+zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data = data;
- switch (response) {
- case GTK_RESPONSE_CLOSE:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- break;
+ switch (response) {
+ case GTK_RESPONSE_CLOSE:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+ break;
- default:
- /* Esc dialog */
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
- break;
- }
+ default:
+ /* Esc dialog */
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+ break;
+ }
- gtk_main_quit ();
+ gtk_main_quit ();
}
diff --git a/src/calendar.c b/src/calendar.c
index 9f82cc63..9aaf927f 100644
--- a/src/calendar.c
+++ b/src/calendar.c
@@ -23,146 +23,158 @@
#include "config.h"
-#include <time.h>
-#include "zenity.h"
#include "util.h"
-
+#include "zenity.h"
+#include <time.h>
static GtkWidget *calendar;
static ZenityCalendarData *zen_cal_data;
-static void zenity_calendar_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_calendar_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
static void zenity_calendar_double_click (GtkCalendar *calendar, gpointer data);
-void
-zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data)
-{
- GtkBuilder *builder;
- GtkWidget *dialog;
- GtkWidget *button;
- GObject *text;
-
- zen_cal_data = cal_data;
-
- builder = zenity_util_load_ui_file ("zenity_calendar_dialog", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals (builder, NULL);
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder,
- "zenity_calendar_dialog"));
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_calendar_dialog_response), data);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- if (data->modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- text = gtk_builder_get_object (builder, "zenity_calendar_text");
-
- if (cal_data->dialog_text)
- gtk_label_set_markup (GTK_LABEL (text), g_strcompress (cal_data->dialog_text));
-
- calendar = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar"));
-
- if (cal_data->month > 0 || cal_data->year > 0)
- gtk_calendar_select_month (GTK_CALENDAR (calendar), cal_data->month - 1, cal_data->year);
- if (cal_data->day > 0)
- gtk_calendar_select_day (GTK_CALENDAR (calendar), cal_data->day);
-
- g_signal_connect (calendar, "day-selected-double-click",
- G_CALLBACK (zenity_calendar_double_click), data);
-
- gtk_label_set_mnemonic_widget (GTK_LABEL (text), calendar);
- zenity_util_show_dialog (dialog, data->attach);
-
- if (data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
-
- 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_calendar_ok_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
- }
-
- if (data->cancel_label) {
- button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_cancel_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- }
-
- g_object_unref (builder);
-
- gtk_main ();
+void
+zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data) {
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GObject *text;
+
+ zen_cal_data = cal_data;
+
+ builder = zenity_util_load_ui_file ("zenity_calendar_dialog", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_dialog"));
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_calendar_dialog_response),
+ data);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ zenity_util_set_window_icon (dialog,
+ data->window_icon,
+ ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ if (data->modal)
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ text = gtk_builder_get_object (builder, "zenity_calendar_text");
+
+ if (cal_data->dialog_text)
+ gtk_label_set_markup (
+ GTK_LABEL (text), g_strcompress (cal_data->dialog_text));
+
+ calendar = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar"));
+
+ if (cal_data->month > 0 || cal_data->year > 0)
+ gtk_calendar_select_month (
+ GTK_CALENDAR (calendar), cal_data->month - 1, cal_data->year);
+ if (cal_data->day > 0)
+ gtk_calendar_select_day (GTK_CALENDAR (calendar), cal_data->day);
+
+ g_signal_connect (calendar,
+ "day-selected-double-click",
+ G_CALLBACK (zenity_calendar_double_click),
+ data);
+
+ gtk_label_set_mnemonic_widget (GTK_LABEL (text), calendar);
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ 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_calendar_ok_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+ }
+
+ if (data->cancel_label) {
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_calendar_cancel_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ }
+
+ g_object_unref (builder);
+
+ gtk_main ();
}
-static void
-zenity_calendar_dialog_output (void)
-{
- guint day, month, year;
- gchar time_string[128];
- GDate *date = NULL;
-
- gtk_calendar_get_date (GTK_CALENDAR (calendar), &day, &month, &year);
- date = g_date_new_dmy (year, month + 1, day);
- g_date_strftime (time_string, 127, zen_cal_data->date_format, date);
- g_print ("%s\n", time_string);
-
- if (date != NULL)
- g_date_free (date);
+static void
+zenity_calendar_dialog_output (void) {
+ guint day, month, year;
+ gchar time_string[128];
+ GDate *date = NULL;
+
+ gtk_calendar_get_date (GTK_CALENDAR (calendar), &day, &month, &year);
+ date = g_date_new_dmy (year, month + 1, day);
+ g_date_strftime (time_string, 127, zen_cal_data->date_format, date);
+ g_print ("%s\n", time_string);
+
+ if (date != NULL)
+ g_date_free (date);
}
static void
-zenity_calendar_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data;
-
- zen_data = data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_calendar_dialog_output ();
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_calendar_dialog_output ();
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
- gtk_main_quit ();
+zenity_calendar_dialog_response (
+ GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data;
+
+ zen_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_calendar_dialog_output ();
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_calendar_dialog_output ();
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ gtk_main_quit ();
}
static void
-zenity_calendar_double_click (GtkCalendar *cal, gpointer data)
-{
- zenity_calendar_dialog_response (NULL, GTK_RESPONSE_OK, data);
+zenity_calendar_double_click (GtkCalendar *cal, gpointer data) {
+ zenity_calendar_dialog_response (NULL, GTK_RESPONSE_OK, data);
}
diff --git a/src/color.c b/src/color.c
index ae47b19b..9ef233eb 100644
--- a/src/color.c
+++ b/src/color.c
@@ -23,92 +23,96 @@
#include "config.h"
-#include <string.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
+#include <string.h>
static ZenityData *zen_data;
-static void zenity_colorselection_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void zenity_colorselection (ZenityData *data, ZenityColorData *color_data)
-{
- GtkWidget *dialog;
- GtkWidget *button;
- GdkRGBA color;
-
- zen_data = data;
-
- dialog = gtk_color_chooser_dialog_new (data->dialog_title, NULL);
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_colorselection_dialog_response),
- color_data);
-
- if (color_data->color) {
- if (gdk_rgba_parse (&color, color_data->color)) {
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
- }
- }
-
- 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) {
- g_object_get (G_OBJECT (dialog), "ok-button", &button, NULL);
- gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
- g_object_unref (G_OBJECT (button));
- }
-
- if (data->cancel_label) {
- g_object_get (G_OBJECT (dialog), "cancel-button", &button, NULL);
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- g_object_unref (G_OBJECT (button));
- }
-
- if (data->modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- g_object_set (dialog, "show-editor", !color_data->show_palette, NULL);
-
- zenity_util_show_dialog (dialog, data->attach);
-
- if (data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay,
- (GSourceFunc) zenity_util_timeout_handle,
- dialog);
- }
-
- gtk_main();
+static void zenity_colorselection_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_colorselection (ZenityData *data, ZenityColorData *color_data) {
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GdkRGBA color;
+
+ zen_data = data;
+
+ dialog = gtk_color_chooser_dialog_new (data->dialog_title, NULL);
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_colorselection_dialog_response),
+ color_data);
+
+ if (color_data->color) {
+ if (gdk_rgba_parse (&color, color_data->color)) {
+ gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
+ }
+ }
+
+ 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) {
+ g_object_get (G_OBJECT (dialog), "ok-button", &button, NULL);
+ gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+ g_object_unref (G_OBJECT (button));
+ }
+
+ if (data->cancel_label) {
+ g_object_get (G_OBJECT (dialog), "cancel-button", &button, NULL);
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ g_object_unref (G_OBJECT (button));
+ }
+
+ if (data->modal)
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ g_object_set (dialog, "show-editor", !color_data->show_palette, NULL);
+
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ gtk_main ();
}
static void
-zenity_colorselection_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- GdkRGBA color;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &color);
- g_print ("%s\n", gdk_rgba_to_string (&color));
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
-
- gtk_main_quit ();
+zenity_colorselection_dialog_response (
+ GtkWidget *widget, int response, gpointer data) {
+ GdkRGBA color;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &color);
+ g_print ("%s\n", gdk_rgba_to_string (&color));
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+
+ gtk_main_quit ();
}
diff --git a/src/entry.c b/src/entry.c
index 8e47ebd8..bf3db713 100644
--- a/src/entry.c
+++ b/src/entry.c
@@ -23,179 +23,189 @@
#include "config.h"
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
-static void zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_entry_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
static GtkWidget *entry;
static gint n_entries = 0;
static void
-zenity_entry_fill_entries (GSList **entries, const gchar **args)
-{
- gint i = 0;
-
- while (args[i] != NULL) {
- *entries = g_slist_append (*entries, (gchar *) args[i]);
- i++;
- }
+zenity_entry_fill_entries (GSList **entries, const gchar **args) {
+ gint i = 0;
+
+ while (args[i] != NULL) {
+ *entries = g_slist_append (*entries, (gchar *) args[i]);
+ i++;
+ }
}
static void
-zenity_entry_combo_activate_default (GtkEntry *entry, gpointer window)
-{
- gtk_window_activate_default (GTK_WINDOW (window));
+zenity_entry_combo_activate_default (GtkEntry *entry, gpointer window) {
+ gtk_window_activate_default (GTK_WINDOW (window));
}
-void
-zenity_entry (ZenityData *data, ZenityEntryData *entry_data)
-{
- GtkBuilder *builder = NULL;
- GtkWidget *dialog;
- GtkWidget *button;
- GObject *text;
- GSList *entries = NULL;
- GSList *tmp;
- GObject *vbox;
-
- builder = zenity_util_load_ui_file ("zenity_entry_dialog", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals (builder, NULL);
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_dialog"));
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_entry_dialog_response), data);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- 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_entry_ok_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
- }
-
- if (data->cancel_label) {
- button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_cancel_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- }
-
- text = gtk_builder_get_object (builder, "zenity_entry_text");
-
- if (entry_data->dialog_text)
- gtk_label_set_text_with_mnemonic (GTK_LABEL (text), g_strcompress (entry_data->dialog_text));
-
- vbox = gtk_builder_get_object (builder, "vbox4");
-
- zenity_entry_fill_entries(&entries, entry_data->data);
-
- n_entries = g_slist_length (entries);
-
- if (n_entries > 1) {
- entry = gtk_combo_box_text_new_with_entry ();
-
- for (tmp = entries; tmp; tmp = tmp->next) {
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (entry), tmp->data);
- }
-
- if (entry_data->entry_text) {
- gtk_combo_box_text_prepend_text (GTK_COMBO_BOX_TEXT (entry), entry_data->entry_text);
- gtk_combo_box_set_active (GTK_COMBO_BOX (entry), 0);
- }
-
- g_signal_connect (gtk_bin_get_child (GTK_BIN (entry)), "activate",
- G_CALLBACK (zenity_entry_combo_activate_default),
- GTK_WINDOW (dialog));
- } else {
- entry = gtk_entry_new();
-
- gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
-
- if (entry_data->entry_text)
- gtk_entry_set_text (GTK_ENTRY (entry), entry_data->entry_text);
-
- if (entry_data->hide_text)
- g_object_set (G_OBJECT (entry), "visibility", FALSE, NULL);
- }
-
- gtk_widget_show (entry);
-
- gtk_box_pack_end (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
-
- gtk_label_set_mnemonic_widget (GTK_LABEL (text), entry);
-
- g_object_unref (builder);
-
- zenity_util_show_dialog (dialog, data->attach);
-
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
-
- gtk_main ();
-}
+void
+zenity_entry (ZenityData *data, ZenityEntryData *entry_data) {
+ GtkBuilder *builder = NULL;
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GObject *text;
+ GSList *entries = NULL;
+ GSList *tmp;
+ GObject *vbox;
-static void
-zenity_entry_dialog_output (void)
-{
- const gchar *text;
- if (n_entries > 1)
- text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (entry));
- else
- text = gtk_entry_get_text (GTK_ENTRY (entry));
+ builder = zenity_util_load_ui_file ("zenity_entry_dialog", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_dialog"));
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_entry_dialog_response),
+ data);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ zenity_util_set_window_icon (
+ dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ 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_entry_ok_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+ }
+
+ if (data->cancel_label) {
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_entry_cancel_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ }
+
+ text = gtk_builder_get_object (builder, "zenity_entry_text");
+
+ if (entry_data->dialog_text)
+ gtk_label_set_text_with_mnemonic (
+ GTK_LABEL (text), g_strcompress (entry_data->dialog_text));
- if (text != NULL)
- g_print ("%s\n", text);
+ vbox = gtk_builder_get_object (builder, "vbox4");
+ zenity_entry_fill_entries (&entries, entry_data->data);
+
+ n_entries = g_slist_length (entries);
+
+ if (n_entries > 1) {
+ entry = gtk_combo_box_text_new_with_entry ();
+
+ for (tmp = entries; tmp; tmp = tmp->next) {
+ gtk_combo_box_text_append_text (
+ GTK_COMBO_BOX_TEXT (entry), tmp->data);
+ }
+
+ if (entry_data->entry_text) {
+ gtk_combo_box_text_prepend_text (
+ GTK_COMBO_BOX_TEXT (entry), entry_data->entry_text);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (entry), 0);
+ }
+
+ g_signal_connect (gtk_bin_get_child (GTK_BIN (entry)),
+ "activate",
+ G_CALLBACK (zenity_entry_combo_activate_default),
+ GTK_WINDOW (dialog));
+ } else {
+ entry = gtk_entry_new ();
+
+ gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
+
+ if (entry_data->entry_text)
+ gtk_entry_set_text (GTK_ENTRY (entry), entry_data->entry_text);
+
+ if (entry_data->hide_text)
+ g_object_set (G_OBJECT (entry), "visibility", FALSE, NULL);
+ }
+
+ gtk_widget_show (entry);
+
+ gtk_box_pack_end (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
+
+ gtk_label_set_mnemonic_widget (GTK_LABEL (text), entry);
+
+ g_object_unref (builder);
+
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ gtk_main ();
+}
+
+static void
+zenity_entry_dialog_output (void) {
+ const gchar *text;
+ if (n_entries > 1)
+ text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (entry));
+ else
+ text = gtk_entry_get_text (GTK_ENTRY (entry));
+
+ if (text != NULL)
+ g_print ("%s\n", text);
}
static void
-zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data = data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_entry_dialog_output ();
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_entry_dialog_output ();
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
- gtk_main_quit ();
+zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_entry_dialog_output ();
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_entry_dialog_output ();
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ gtk_main_quit ();
}
diff --git a/src/fileselection.c b/src/fileselection.c
index 27db0f40..521464b0 100644
--- a/src/fileselection.c
+++ b/src/fileselection.c
@@ -23,176 +23,192 @@
#include "config.h"
-#include <string.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
+#include <string.h>
-static ZenityData *zen_data;
-
-static void zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void zenity_fileselection (ZenityData *data, ZenityFileData *file_data)
-{
- GtkWidget *dialog;
- gchar *dir;
- gchar *basename;
- GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
-
- zen_data = data;
-
- if (file_data->directory) {
- if (file_data->save)
- action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
- else
- action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
- } else {
- if (file_data->save)
- action = GTK_FILE_CHOOSER_ACTION_SAVE;
- }
-
- dialog = gtk_file_chooser_dialog_new (NULL, NULL,
- action,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_OK"), GTK_RESPONSE_OK,
- NULL);
-
- gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog),
- file_data->confirm_overwrite);
-
- 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);
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
-
- if (data->modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- if (file_data->uri) {
- dir = g_path_get_dirname (file_data->uri);
-
- if (g_path_is_absolute (file_data->uri) == TRUE)
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), dir);
-
- if (file_data->uri[strlen (file_data->uri) - 1] != '/') {
- basename = g_path_get_basename (file_data->uri);
- if (file_data->save)
- gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), basename);
- else
- (void) gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), file_data->uri);
- g_free (basename);
- }
- g_free (dir);
- }
-
- if (file_data->multi)
- gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
-
- if (file_data->filter) {
- /* Filter format: Executables | *.exe *.bat *.com */
- gint filter_i;
-
- for (filter_i = 0; file_data->filter [filter_i]; filter_i++) {
- GtkFileFilter *filter = gtk_file_filter_new();
- gchar *filter_str = file_data->filter [filter_i];
- gchar **pattern, **patterns;
- gchar *name = NULL;
- gint i;
-
- /* Set name */
- for (i = 0; filter_str[i] != '\0'; i++)
- if (filter_str[i] == '|')
- break;
-
- if (filter_str[i] == '|') {
- name = g_strndup (filter_str, i);
- g_strstrip (name);
- }
-
- if (name) {
- gtk_file_filter_set_name (filter, name);
-
- /* Point i to the right position for split */
- for (++i; filter_str[i] == ' '; i++);
- } else {
- gtk_file_filter_set_name (filter, filter_str);
- i = 0;
- }
-
- /* Get patterns */
- patterns = g_strsplit_set (filter_str + i, " ", -1);
-
- for (pattern = patterns; *pattern; pattern++)
- gtk_file_filter_add_pattern (filter, *pattern);
-
- if (name)
- g_free (name);
-
- g_strfreev (patterns);
-
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
- }
- }
-
- zenity_util_show_dialog (dialog, data->attach);
-
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
-
- gtk_main ();
+static ZenityData *zen_data;
+
+static void zenity_fileselection_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_fileselection (ZenityData *data, ZenityFileData *file_data) {
+ GtkWidget *dialog;
+ gchar *dir;
+ gchar *basename;
+ GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
+
+ zen_data = data;
+
+ if (file_data->directory) {
+ if (file_data->save)
+ action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
+ else
+ action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
+ } else {
+ if (file_data->save)
+ action = GTK_FILE_CHOOSER_ACTION_SAVE;
+ }
+
+ dialog = gtk_file_chooser_dialog_new (NULL,
+ NULL,
+ action,
+ _ ("_Cancel"),
+ GTK_RESPONSE_CANCEL,
+ _ ("_OK"),
+ GTK_RESPONSE_OK,
+ NULL);
+
+ gtk_file_chooser_set_do_overwrite_confirmation (
+ GTK_FILE_CHOOSER (dialog), file_data->confirm_overwrite);
+
+ 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);
+
+ zenity_util_set_window_icon (
+ dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
+
+ if (data->modal)
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ if (file_data->uri) {
+ dir = g_path_get_dirname (file_data->uri);
+
+ if (g_path_is_absolute (file_data->uri) == TRUE)
+ gtk_file_chooser_set_current_folder (
+ GTK_FILE_CHOOSER (dialog), dir);
+
+ if (file_data->uri[strlen (file_data->uri) - 1] != '/') {
+ basename = g_path_get_basename (file_data->uri);
+ if (file_data->save)
+ gtk_file_chooser_set_current_name (
+ GTK_FILE_CHOOSER (dialog), basename);
+ else
+ (void) gtk_file_chooser_set_filename (
+ GTK_FILE_CHOOSER (dialog), file_data->uri);
+ g_free (basename);
+ }
+ g_free (dir);
+ }
+
+ if (file_data->multi)
+ gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
+
+ if (file_data->filter) {
+ /* Filter format: Executables | *.exe *.bat *.com */
+ gint filter_i;
+
+ for (filter_i = 0; file_data->filter[filter_i]; filter_i++) {
+ GtkFileFilter *filter = gtk_file_filter_new ();
+ gchar *filter_str = file_data->filter[filter_i];
+ gchar **pattern, **patterns;
+ gchar *name = NULL;
+ gint i;
+
+ /* Set name */
+ for (i = 0; filter_str[i] != '\0'; i++)
+ if (filter_str[i] == '|')
+ break;
+
+ if (filter_str[i] == '|') {
+ name = g_strndup (filter_str, i);
+ g_strstrip (name);
+ }
+
+ if (name) {
+ gtk_file_filter_set_name (filter, name);
+
+ /* Point i to the right position for split */
+ for (++i; filter_str[i] == ' '; i++)
+ ;
+ } else {
+ gtk_file_filter_set_name (filter, filter_str);
+ i = 0;
+ }
+
+ /* Get patterns */
+ patterns = g_strsplit_set (filter_str + i, " ", -1);
+
+ for (pattern = patterns; *pattern; pattern++)
+ gtk_file_filter_add_pattern (filter, *pattern);
+
+ if (name)
+ g_free (name);
+
+ g_strfreev (patterns);
+
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+ }
+ }
+
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ gtk_main ();
}
static void
-zenity_fileselection_dialog_output (GtkWidget *widget, ZenityFileData *file_data)
-{
- GSList *selections, *iter;
- selections = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (widget));
- for (iter = selections;iter != NULL; iter = iter->next) {
- g_print ("%s", g_filename_to_utf8 ((gchar*)iter->data, -1, NULL, NULL, NULL));
- g_free (iter->data);
- if (iter->next != NULL)
- g_print ("%s",file_data->separator);
- }
- g_print("\n");
- g_slist_free(selections);
+zenity_fileselection_dialog_output (
+ GtkWidget *widget, ZenityFileData *file_data) {
+ GSList *selections, *iter;
+ selections = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (widget));
+ for (iter = selections; iter != NULL; iter = iter->next) {
+ g_print ("%s",
+ g_filename_to_utf8 ((gchar *) iter->data, -1, NULL, NULL, NULL));
+ g_free (iter->data);
+ if (iter->next != NULL)
+ g_print ("%s", file_data->separator);
+ }
+ g_print ("\n");
+ g_slist_free (selections);
}
static void
-zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityFileData *file_data = data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_fileselection_dialog_output (widget, file_data);
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_fileselection_dialog_output (widget, file_data);
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
- gtk_main_quit ();
+zenity_fileselection_dialog_response (
+ GtkWidget *widget, int response, gpointer data) {
+ ZenityFileData *file_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_fileselection_dialog_output (widget, file_data);
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_fileselection_dialog_output (widget, file_data);
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ gtk_main_quit ();
}
diff --git a/src/forms.c b/src/forms.c
index 5241780c..4e6fca5d 100644
--- a/src/forms.c
+++ b/src/forms.c
@@ -22,360 +22,390 @@
*/
#include "config.h"
-#include <string.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
+#include <string.h>
static ZenityData *zen_data;
static GSList *selected;
-static void zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-static void zenity_forms_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf, GtkTreeIter *iter, GtkTreeView *tree_view)
-{
- gint n_columns = 0;
- gint i = 0;
- GValue value = {0, };
-
- n_columns = gtk_tree_model_get_n_columns (model);
- for (i = 0; i < n_columns; i++) {
- gtk_tree_model_get_value (model, iter, i, &value);
- selected = g_slist_append (selected, g_value_dup_string (&value));
- g_value_unset (&value);
- }
+static void zenity_forms_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
+
+static void
+zenity_forms_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf,
+ GtkTreeIter *iter, GtkTreeView *tree_view) {
+ gint n_columns = 0;
+ gint i = 0;
+ GValue value = {
+ 0,
+ };
+
+ n_columns = gtk_tree_model_get_n_columns (model);
+ for (i = 0; i < n_columns; i++) {
+ gtk_tree_model_get_value (model, iter, i, &value);
+ selected = g_slist_append (selected, g_value_dup_string (&value));
+ g_value_unset (&value);
+ }
}
static GtkWidget *
-zenity_forms_create_and_fill_combo (ZenityFormsData *forms_data, int combo_number)
-{
- GtkListStore *list_store;
- GtkWidget *combo_box;
- GtkCellRenderer *renderer;
- gchar *combo_values;
-
- list_store = gtk_list_store_new (1, G_TYPE_STRING);
-
- if (forms_data->combo_values) {
- combo_values = g_slist_nth_data (forms_data->combo_values, combo_number);
- if (combo_values) {
- gchar **row_values = g_strsplit_set (combo_values, "|", -1);
- if (row_values) {
- gint i = 0;
- GtkTreeIter iter;
- gchar *row = row_values[i];
-
- while (row != NULL) {
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, row, -1);
- row = row_values[++i];
- }
- g_strfreev (row_values);
- }
- g_free (combo_values);
- }
- }
-
- combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store));
- g_object_unref (G_OBJECT (list_store));
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL);
-
- return combo_box;
+zenity_forms_create_and_fill_combo (
+ ZenityFormsData *forms_data, int combo_number) {
+ GtkListStore *list_store;
+ GtkWidget *combo_box;
+ GtkCellRenderer *renderer;
+ gchar *combo_values;
+
+ list_store = gtk_list_store_new (1, G_TYPE_STRING);
+
+ if (forms_data->combo_values) {
+ combo_values =
+ g_slist_nth_data (forms_data->combo_values, combo_number);
+ if (combo_values) {
+ gchar **row_values = g_strsplit_set (combo_values, "|", -1);
+ if (row_values) {
+ gint i = 0;
+ GtkTreeIter iter;
+ gchar *row = row_values[i];
+
+ while (row != NULL) {
+ gtk_list_store_append (list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, row, -1);
+ row = row_values[++i];
+ }
+ g_strfreev (row_values);
+ }
+ g_free (combo_values);
+ }
+ }
+
+ combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store));
+ g_object_unref (G_OBJECT (list_store));
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
+ gtk_cell_layout_set_attributes (
+ GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL);
+
+ return combo_box;
}
-static GtkWidget *
-zenity_forms_create_and_fill_list (ZenityFormsData *forms_data,
- int list_number, gchar *header)
-{
- GtkListStore *list_store;
- GtkWidget *tree_view;
- GtkWidget *scrolled_window;
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
- GType *column_types = NULL;
- gchar *list_values;
- gchar *column_values;
-
- gint i = 0;
- /* If no column names available, default is one */
- gint n_columns = 1;
- gint column_index = 0;
-
- tree_view = gtk_tree_view_new ();
-
- if (forms_data->column_values) {
- column_values = g_slist_nth_data (forms_data->column_values, list_number);
- if (column_values) {
- gchar **values = g_strsplit_set (column_values, "|", -1);
- if (values) {
- n_columns = g_strv_length (values);
- column_types = g_new (GType, n_columns);
- for (i = 0; i < n_columns; i++)
- column_types[i] = G_TYPE_STRING;
-
- for (i = 0; i < n_columns; i++) {
- gchar *column_name = values[i];
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (column_name,
- renderer,
- "text", column_index,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
- column_index++;
- }
- }
- }
- }
-
- list_store = g_object_new (GTK_TYPE_LIST_STORE, NULL);
-
- gtk_list_store_set_column_types (list_store, n_columns, column_types);
-
- if (forms_data->list_values) {
- list_values = g_slist_nth_data (forms_data->list_values, list_number);
- if (list_values) {
- gchar **row_values = g_strsplit_set (list_values, "|", -1);
- if (row_values) {
- GtkTreeIter iter;
- gchar *row = row_values[0];
- gint position = -1;
- i = 0;
-
- while (row != NULL) {
- if (position >= n_columns || position == -1) {
- position = 0;
- gtk_list_store_append (list_store, &iter);
- }
- gtk_list_store_set (list_store, &iter, position, row, -1);
- position++;
- row = row_values[++i];
- }
- g_strfreev (row_values);
- }
- g_free (list_values);
- }
- }
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (list_store));
- g_object_unref (list_store);
- scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- //gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
- // GTK_WIDGET (tree_view));
- gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (tree_view));
- gtk_widget_set_size_request (GTK_WIDGET (scrolled_window), -1, 100);
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), forms_data->show_header);
-
- return scrolled_window;
+static GtkWidget *
+zenity_forms_create_and_fill_list (
+ ZenityFormsData *forms_data, int list_number, gchar *header) {
+ GtkListStore *list_store;
+ GtkWidget *tree_view;
+ GtkWidget *scrolled_window;
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+ GType *column_types = NULL;
+ gchar *list_values;
+ gchar *column_values;
+
+ gint i = 0;
+ /* If no column names available, default is one */
+ gint n_columns = 1;
+ gint column_index = 0;
+
+ tree_view = gtk_tree_view_new ();
+
+ if (forms_data->column_values) {
+ column_values =
+ g_slist_nth_data (forms_data->column_values, list_number);
+ if (column_values) {
+ gchar **values = g_strsplit_set (column_values, "|", -1);
+ if (values) {
+ n_columns = g_strv_length (values);
+ column_types = g_new (GType, n_columns);
+ for (i = 0; i < n_columns; i++)
+ column_types[i] = G_TYPE_STRING;
+
+ for (i = 0; i < n_columns; i++) {
+ gchar *column_name = values[i];
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (
+ column_name, renderer, "text", column_index, NULL);
+ gtk_tree_view_append_column (
+ GTK_TREE_VIEW (tree_view), column);
+ column_index++;
+ }
+ }
+ }
+ }
+
+ list_store = g_object_new (GTK_TYPE_LIST_STORE, NULL);
+
+ gtk_list_store_set_column_types (list_store, n_columns, column_types);
+
+ if (forms_data->list_values) {
+ list_values = g_slist_nth_data (forms_data->list_values, list_number);
+ if (list_values) {
+ gchar **row_values = g_strsplit_set (list_values, "|", -1);
+ if (row_values) {
+ GtkTreeIter iter;
+ gchar *row = row_values[0];
+ gint position = -1;
+ i = 0;
+
+ while (row != NULL) {
+ if (position >= n_columns || position == -1) {
+ position = 0;
+ gtk_list_store_append (list_store, &iter);
+ }
+ gtk_list_store_set (list_store, &iter, position, row, -1);
+ position++;
+ row = row_values[++i];
+ }
+ g_strfreev (row_values);
+ }
+ g_free (list_values);
+ }
+ }
+
+ gtk_tree_view_set_model (
+ GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (list_store));
+ g_object_unref (list_store);
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ // gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW
+ // (scrolled_window),
+ // GTK_WIDGET (tree_view));
+ gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (tree_view));
+ gtk_widget_set_size_request (GTK_WIDGET (scrolled_window), -1, 100);
+ gtk_tree_view_set_headers_visible (
+ GTK_TREE_VIEW (tree_view), forms_data->show_header);
+
+ return scrolled_window;
}
-void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data)
-{
- GtkBuilder *builder = NULL;
- GtkWidget *dialog;
- GtkWidget *grid;
- GtkWidget *text;
- GtkWidget *button;
-
- GSList *tmp;
-
- int list_count = 0;
- int combo_count = 0;
- int i = 0;
-
- zen_data = data;
-
- builder = zenity_util_load_ui_file("zenity_forms_dialog", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals(builder, NULL);
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_dialog"));
-
- g_signal_connect (G_OBJECT(dialog), "response",
- G_CALLBACK (zenity_forms_dialog_response), forms_data);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- 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_forms_ok_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
- }
-
- if (data->cancel_label) {
- button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_cancel_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- }
-
- text = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_text"));
-
- if (forms_data->dialog_text)
- gtk_label_set_markup (GTK_LABEL (text), g_strcompress (forms_data->dialog_text));
-
- grid = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_grid"));
-
- for (tmp = forms_data->list; tmp; tmp = tmp->next) {
- ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
- GtkWidget *label;
-
- label = gtk_label_new(zenity_value->option_value);
- gtk_widget_set_halign (label, GTK_ALIGN_START);
- gtk_grid_attach (GTK_GRID (grid),
- label,
- 0, i,
- 1, 1);
-
- switch(zenity_value->type)
- {
- case ZENITY_FORMS_ENTRY:
- zenity_value->forms_widget = gtk_entry_new();
- break;
- case ZENITY_FORMS_PASSWORD:
- zenity_value->forms_widget = gtk_entry_new();
- gtk_entry_set_visibility(GTK_ENTRY(zenity_value->forms_widget),
- FALSE);
- break;
- case ZENITY_FORMS_CALENDAR:
- zenity_value->forms_widget = gtk_calendar_new();
- break;
- case ZENITY_FORMS_LIST:
- zenity_value->forms_widget = zenity_forms_create_and_fill_list (forms_data, list_count,
- zenity_value->option_value);
- list_count++;
- break;
- case ZENITY_FORMS_COMBO:
- zenity_value->forms_widget = zenity_forms_create_and_fill_combo (forms_data, combo_count);
- combo_count++;
- break;
- default:
- zenity_value->forms_widget = gtk_entry_new();
- break;
- }
-
- gtk_grid_attach_next_to (GTK_GRID (grid),
- GTK_WIDGET (zenity_value->forms_widget),
- label,
- GTK_POS_RIGHT,
- 1, 1);
-
- i++;
- }
-
- gtk_widget_show_all (GTK_WIDGET (dialog));
-
- g_object_unref (builder);
-
- if (data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
-
- gtk_main();
+void
+zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data) {
+ GtkBuilder *builder = NULL;
+ GtkWidget *dialog;
+ GtkWidget *grid;
+ GtkWidget *text;
+ GtkWidget *button;
+
+ GSList *tmp;
+
+ int list_count = 0;
+ int combo_count = 0;
+ int i = 0;
+
+ zen_data = data;
+
+ builder = zenity_util_load_ui_file ("zenity_forms_dialog", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_dialog"));
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_forms_dialog_response),
+ forms_data);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ 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_forms_ok_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+ }
+
+ if (data->cancel_label) {
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_forms_cancel_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ }
+
+ text = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_text"));
+
+ if (forms_data->dialog_text)
+ gtk_label_set_markup (
+ GTK_LABEL (text), g_strcompress (forms_data->dialog_text));
+
+ grid = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_grid"));
+
+ for (tmp = forms_data->list; tmp; tmp = tmp->next) {
+ ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
+ GtkWidget *label;
+
+ label = gtk_label_new (zenity_value->option_value);
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1);
+
+ switch (zenity_value->type) {
+ case ZENITY_FORMS_ENTRY:
+ zenity_value->forms_widget = gtk_entry_new ();
+ break;
+ case ZENITY_FORMS_PASSWORD:
+ zenity_value->forms_widget = gtk_entry_new ();
+ gtk_entry_set_visibility (
+ GTK_ENTRY (zenity_value->forms_widget), FALSE);
+ break;
+ case ZENITY_FORMS_CALENDAR:
+ zenity_value->forms_widget = gtk_calendar_new ();
+ break;
+ case ZENITY_FORMS_LIST:
+ zenity_value->forms_widget = zenity_forms_create_and_fill_list (
+ forms_data, list_count, zenity_value->option_value);
+ list_count++;
+ break;
+ case ZENITY_FORMS_COMBO:
+ zenity_value->forms_widget =
+ zenity_forms_create_and_fill_combo (
+ forms_data, combo_count);
+ combo_count++;
+ break;
+ default:
+ zenity_value->forms_widget = gtk_entry_new ();
+ break;
+ }
+
+ gtk_grid_attach_next_to (GTK_GRID (grid),
+ GTK_WIDGET (zenity_value->forms_widget),
+ label,
+ GTK_POS_RIGHT,
+ 1,
+ 1);
+
+ i++;
+ }
+
+ gtk_widget_show_all (GTK_WIDGET (dialog));
+
+ g_object_unref (builder);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ gtk_main ();
}
static void
-zenity_forms_dialog_output (ZenityFormsData *forms_data)
-{
- GSList *tmp, *tmp2;
- guint day, year, month;
- GDate *date = NULL;
- gchar time_string[128];
- gchar *combo_value = NULL;
- GtkTreeSelection *selection;
- GtkListStore *list_store;
- GtkTreeIter iter;
-
- for (tmp = forms_data->list; tmp; tmp = tmp->next) {
- ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
- switch (zenity_value->type) {
- case ZENITY_FORMS_PASSWORD:
- case ZENITY_FORMS_ENTRY:
- g_print("%s", gtk_entry_get_text (GTK_ENTRY (zenity_value->forms_widget)));
- break;
- case ZENITY_FORMS_LIST:
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (zenity_value->forms_widget))));
- gtk_tree_selection_selected_foreach (selection,
- (GtkTreeSelectionForeachFunc) zenity_forms_dialog_get_selected,
- GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (zenity_value->forms_widget))));
-
- for (tmp2 = selected; tmp2; tmp2 = tmp2->next) {
- if (tmp->next != NULL) {
- g_print ("%s,", (gchar *) tmp2->data);
- }
- else
- g_print ("%s", (gchar *) tmp2->data);
- }
-
- g_slist_foreach (selected, (GFunc) g_free, NULL);
- selected = NULL;
-
- break;
- case ZENITY_FORMS_CALENDAR:
- gtk_calendar_get_date (GTK_CALENDAR (zenity_value->forms_widget), &day, &month, &year);
- date = g_date_new_dmy (year, month + 1, day);
- g_date_strftime (time_string, 127, forms_data->date_format, date);
- g_print ("%s", time_string);
- break;
- case ZENITY_FORMS_COMBO:
- if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (zenity_value->forms_widget), &iter)) {
- list_store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (zenity_value->forms_widget)));
- gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, 0, &combo_value, -1);
- g_object_unref (G_OBJECT (list_store));
-
- g_print ("%s", combo_value);
- g_free (combo_value);
- } else
- g_print (" ");
- break;
-
- }
- if (tmp->next != NULL)
- g_print("%s", forms_data->separator);
- }
- g_print("\n");
+zenity_forms_dialog_output (ZenityFormsData *forms_data) {
+ GSList *tmp, *tmp2;
+ guint day, year, month;
+ GDate *date = NULL;
+ gchar time_string[128];
+ gchar *combo_value = NULL;
+ GtkTreeSelection *selection;
+ GtkListStore *list_store;
+ GtkTreeIter iter;
+
+ for (tmp = forms_data->list; tmp; tmp = tmp->next) {
+ ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
+ switch (zenity_value->type) {
+ case ZENITY_FORMS_PASSWORD:
+ case ZENITY_FORMS_ENTRY:
+ g_print ("%s",
+ gtk_entry_get_text (
+ GTK_ENTRY (zenity_value->forms_widget)));
+ break;
+ case ZENITY_FORMS_LIST:
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (
+ gtk_bin_get_child (GTK_BIN (zenity_value->forms_widget))));
+ gtk_tree_selection_selected_foreach (selection,
+ (GtkTreeSelectionForeachFunc)
+ zenity_forms_dialog_get_selected,
+ GTK_TREE_VIEW (gtk_bin_get_child (
+ GTK_BIN (zenity_value->forms_widget))));
+
+ for (tmp2 = selected; tmp2; tmp2 = tmp2->next) {
+ if (tmp->next != NULL) {
+ g_print ("%s,", (gchar *) tmp2->data);
+ } else
+ g_print ("%s", (gchar *) tmp2->data);
+ }
+
+ g_slist_foreach (selected, (GFunc) g_free, NULL);
+ selected = NULL;
+
+ break;
+ case ZENITY_FORMS_CALENDAR:
+ gtk_calendar_get_date (
+ GTK_CALENDAR (zenity_value->forms_widget),
+ &day,
+ &month,
+ &year);
+ date = g_date_new_dmy (year, month + 1, day);
+ g_date_strftime (
+ time_string, 127, forms_data->date_format, date);
+ g_print ("%s", time_string);
+ break;
+ case ZENITY_FORMS_COMBO:
+ if (gtk_combo_box_get_active_iter (
+ GTK_COMBO_BOX (zenity_value->forms_widget), &iter)) {
+ list_store = GTK_LIST_STORE (gtk_combo_box_get_model (
+ GTK_COMBO_BOX (zenity_value->forms_widget)));
+ gtk_tree_model_get (GTK_TREE_MODEL (list_store),
+ &iter,
+ 0,
+ &combo_value,
+ -1);
+ g_object_unref (G_OBJECT (list_store));
+
+ g_print ("%s", combo_value);
+ g_free (combo_value);
+ } else
+ g_print (" ");
+ break;
+ }
+ if (tmp->next != NULL)
+ g_print ("%s", forms_data->separator);
+ }
+ g_print ("\n");
}
static void
-zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityFormsData *forms_data = (ZenityFormsData *) data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_forms_dialog_output (forms_data);
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_forms_dialog_output (forms_data);
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
-
- gtk_main_quit ();
+zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityFormsData *forms_data = (ZenityFormsData *) data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_forms_dialog_output (forms_data);
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_forms_dialog_output (forms_data);
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+
+ gtk_main_quit ();
}
diff --git a/src/main.c b/src/main.c
index e667ee1a..7f0c2db7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,97 +23,98 @@
#include <config.h>
-#include "zenity.h"
#include "option.h"
+#include "zenity.h"
-#include <stdlib.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <langinfo.h>
+#include <stdlib.h>
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
-gint
+gint
main (gint argc, gchar **argv) {
- ZenityParsingOptions *results;
- gint retval;
+ ZenityParsingOptions *results;
+ gint retval;
#ifdef HAVE_LOCALE_H
- setlocale(LC_ALL,"");
+ setlocale (LC_ALL, "");
#endif
- bindtextdomain(GETTEXT_PACKAGE, GNOMELOCALEDIR);
- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
- textdomain(GETTEXT_PACKAGE);
+ bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
- gtk_init (&argc, &argv);
+ gtk_init (&argc, &argv);
- results = zenity_option_parse (argc, argv);
+ results = zenity_option_parse (argc, argv);
- switch (results->mode) {
- case MODE_CALENDAR:
- zenity_calendar (results->data, results->calendar_data);
- break;
- case MODE_ENTRY:
- results->entry_data->data = (const gchar **) argv + 1;
- zenity_entry (results->data, results->entry_data);
- break;
- case MODE_ERROR:
- case MODE_QUESTION:
- case MODE_WARNING:
- case MODE_INFO:
- zenity_msg (results->data, results->msg_data);
- break;
- case MODE_SCALE:
- zenity_scale (results->data, results->scale_data);
- break;
- case MODE_FILE:
- zenity_fileselection (results->data, results->file_data);
- break;
- case MODE_LIST:
- results->tree_data->data = (const gchar **) argv + 1;
- zenity_tree (results->data, results->tree_data);
- break;
+ switch (results->mode) {
+ case MODE_CALENDAR:
+ zenity_calendar (results->data, results->calendar_data);
+ break;
+ case MODE_ENTRY:
+ results->entry_data->data = (const gchar **) argv + 1;
+ zenity_entry (results->data, results->entry_data);
+ break;
+ case MODE_ERROR:
+ case MODE_QUESTION:
+ case MODE_WARNING:
+ case MODE_INFO:
+ zenity_msg (results->data, results->msg_data);
+ break;
+ case MODE_SCALE:
+ zenity_scale (results->data, results->scale_data);
+ break;
+ case MODE_FILE:
+ zenity_fileselection (results->data, results->file_data);
+ break;
+ case MODE_LIST:
+ results->tree_data->data = (const gchar **) argv + 1;
+ zenity_tree (results->data, results->tree_data);
+ break;
#ifdef HAVE_LIBNOTIFY
- case MODE_NOTIFICATION:
- zenity_notification (results->data, results->notification_data);
- break;
+ case MODE_NOTIFICATION:
+ zenity_notification (results->data, results->notification_data);
+ break;
#endif
- case MODE_PROGRESS:
- zenity_progress (results->data, results->progress_data);
- break;
- case MODE_TEXTINFO:
- zenity_text (results->data, results->text_data);
- break;
- case MODE_COLOR:
- zenity_colorselection (results->data, results->color_data);
- break;
- case MODE_PASSWORD:
- zenity_password_dialog (results->data, results->password_data);
- break;
- case MODE_ABOUT:
- zenity_about (results->data);
- break;
- case MODE_FORMS:
- zenity_forms_dialog (results->data, results->forms_data);
- break;
- case MODE_VERSION:
- g_print ("%s\n", VERSION);
- break;
- case MODE_LAST:
- g_printerr (_("You must specify a dialog type. See 'zenity --help' for details\n"));
- zenity_option_free ();
- exit (-1);
- default:
- g_assert_not_reached ();
- zenity_option_free ();
- exit (-1);
- }
+ case MODE_PROGRESS:
+ zenity_progress (results->data, results->progress_data);
+ break;
+ case MODE_TEXTINFO:
+ zenity_text (results->data, results->text_data);
+ break;
+ case MODE_COLOR:
+ zenity_colorselection (results->data, results->color_data);
+ break;
+ case MODE_PASSWORD:
+ zenity_password_dialog (results->data, results->password_data);
+ break;
+ case MODE_ABOUT:
+ zenity_about (results->data);
+ break;
+ case MODE_FORMS:
+ zenity_forms_dialog (results->data, results->forms_data);
+ break;
+ case MODE_VERSION:
+ g_print ("%s\n", VERSION);
+ break;
+ case MODE_LAST:
+ g_printerr (_ ("You must specify a dialog type. See 'zenity "
+ "--help' for details\n"));
+ zenity_option_free ();
+ exit (-1);
+ default:
+ g_assert_not_reached ();
+ zenity_option_free ();
+ exit (-1);
+ }
+
+ retval = results->data->exit_code;
- retval = results->data->exit_code;
-
- zenity_option_free ();
+ zenity_option_free ();
- exit (retval);
+ exit (retval);
}
diff --git a/src/msg.c b/src/msg.c
index d1ea6fae..ca14d867 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -23,228 +23,247 @@
#include "config.h"
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
-static void zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_msg_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
static void
-zenity_msg_construct_question_dialog (GtkWidget *dialog, ZenityMsgData *msg_data, ZenityData *data)
-{
-
+zenity_msg_construct_question_dialog (
+ GtkWidget *dialog, ZenityMsgData *msg_data, ZenityData *data) {
- GtkWidget *cancel_button, *ok_button;
-
- cancel_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_No"), GTK_RESPONSE_CANCEL);
- ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Yes"), GTK_RESPONSE_OK);
+ GtkWidget *cancel_button, *ok_button;
- gtk_widget_grab_focus (msg_data->default_cancel ? cancel_button : ok_button);
+ cancel_button = gtk_dialog_add_button (
+ GTK_DIALOG (dialog), _ ("_No"), GTK_RESPONSE_CANCEL);
+ ok_button = gtk_dialog_add_button (
+ GTK_DIALOG (dialog), _ ("_Yes"), GTK_RESPONSE_OK);
- if (data->cancel_label) {
- gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
- }
+ gtk_widget_grab_focus (
+ msg_data->default_cancel ? cancel_button : ok_button);
- if (data->ok_label) {
- gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
- }
-
+ if (data->cancel_label) {
+ gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
+ }
+ if (data->ok_label) {
+ gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
+ }
}
static void
-zenity_label_widget_clipboard_selection(GtkWidget *widget)
-{
- /* Workaround hotfix for suspected toolkit issue:
- since focus change of the dialog's focussed widget (text)
- somehow currently chooses to destroy
- a pre-existing (read: foreign, user-initiated) X11 primary selection
- (via gtk_label_select_region() -> ...
- -> gtk_clipboard_set_contents()/gtk_clipboard_clear()),
- we need to ensure
- that the widget does have its gtk-label-select-on-focus property off,
- in order to avoid having the label become selected automatically
- and thereby having pre-existing clipboard content nullified.
- Side note: this selection issue only applies to widgets
- which have both
- <property name="can_focus">True</property>
- <property name="selectable">True</property>
- .
- */
- g_object_set(gtk_widget_get_settings (widget),
- "gtk-label-select-on-focus",
- FALSE,
- NULL);
+zenity_label_widget_clipboard_selection (GtkWidget *widget) {
+ /* Workaround hotfix for suspected toolkit issue:
+ since focus change of the dialog's focussed widget (text)
+ somehow currently chooses to destroy
+ a pre-existing (read: foreign, user-initiated) X11 primary selection
+ (via gtk_label_select_region() -> ...
+ -> gtk_clipboard_set_contents()/gtk_clipboard_clear()),
+ we need to ensure
+ that the widget does have its gtk-label-select-on-focus property off,
+ in order to avoid having the label become selected automatically
+ and thereby having pre-existing clipboard content nullified.
+ Side note: this selection issue only applies to widgets
+ which have both
+ <property name="can_focus">True</property>
+ <property name="selectable">True</property>
+ .
+ */
+ g_object_set (gtk_widget_get_settings (widget),
+ "gtk-label-select-on-focus",
+ FALSE,
+ NULL);
}
-void
-zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
-{
- GtkBuilder *builder;
- GtkWidget *dialog;
- GtkWidget *ok_button;
- GObject *text;
- GObject *image;
-
- switch (msg_data->mode) {
- case ZENITY_MSG_WARNING:
- builder = zenity_util_load_ui_file ("zenity_warning_dialog", NULL);
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_warning_dialog"));
- text = gtk_builder_get_object (builder, "zenity_warning_text");
- image = gtk_builder_get_object (builder, "zenity_warning_image");
- ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_warning_ok_button"));
- break;
-
- case ZENITY_MSG_QUESTION:
- case ZENITY_MSG_SWITCH:
- builder = zenity_util_load_ui_file ("zenity_question_dialog", NULL);
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_question_dialog"));
- text = gtk_builder_get_object (builder, "zenity_question_text");
- image = gtk_builder_get_object (builder, "zenity_question_image");
- ok_button = NULL;
- break;
-
- case ZENITY_MSG_ERROR:
- builder = zenity_util_load_ui_file ("zenity_error_dialog", NULL);
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_error_dialog"));
- text = gtk_builder_get_object (builder, "zenity_error_text");
- image = gtk_builder_get_object (builder, "zenity_error_image");
- ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_error_ok_button"));
- break;
-
- case ZENITY_MSG_INFO:
- builder = zenity_util_load_ui_file ("zenity_info_dialog", NULL);
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_info_dialog"));
- text = gtk_builder_get_object (builder, "zenity_info_text");
- image = gtk_builder_get_object (builder, "zenity_info_image");
- ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_info_ok_button"));
- break;
-
- default:
- builder = NULL;
- dialog = NULL;
- text = NULL;
- image = NULL;
- ok_button = NULL;
- g_assert_not_reached ();
- break;
- }
-
- 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 (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_msg_dialog_response), data);
-
- gtk_builder_connect_signals (builder, NULL);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- if (ok_button) {
- if (data->ok_label) {
- gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
- }
- }
-
- switch (msg_data->mode) {
- case ZENITY_MSG_WARNING:
- zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-warning");
- break;
-
- case ZENITY_MSG_QUESTION:
- zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-question");
- zenity_msg_construct_question_dialog (dialog, msg_data, data);
- break;
-
- case ZENITY_MSG_SWITCH:
- zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-question");
- break;
-
- case ZENITY_MSG_ERROR:
- zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-error");
- break;
-
- case ZENITY_MSG_INFO:
- zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-information");
- break;
-
- default:
- break;
- }
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- if (data->width > -1)
- gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
- else
- if (!msg_data->ellipsize && !msg_data->no_wrap) {
- // the magic number 60 is picked from gtk+/gtk/ui/gtkmessagedialog.ui
- // however, 60 would increase the distance between the icon and the text,
- // decreasing to 10 fix it.
- gtk_label_set_width_chars (text, 10);
- gtk_label_set_max_width_chars (text, 10);
- }
-
- if (data->modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- if (msg_data->dialog_text) {
- if (msg_data->no_markup)
- gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text);
- else
- gtk_label_set_markup (GTK_LABEL (text), g_strcompress (msg_data->dialog_text));
- zenity_label_widget_clipboard_selection(GTK_WIDGET (text));
- }
-
- if (msg_data->ellipsize)
- gtk_label_set_ellipsize (GTK_LABEL(text), PANGO_ALIGN_RIGHT);
-
- if (msg_data->dialog_icon)
- gtk_image_set_from_icon_name (GTK_IMAGE (image), msg_data->dialog_icon, GTK_ICON_SIZE_DIALOG);
-
- if (msg_data->no_wrap)
- gtk_label_set_line_wrap (GTK_LABEL (text), FALSE);
-
- zenity_util_show_dialog (dialog, data->attach);
-
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, NULL);
- }
-
- g_object_unref (builder);
-
- gtk_main ();
+void
+zenity_msg (ZenityData *data, ZenityMsgData *msg_data) {
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ GtkWidget *ok_button;
+ GObject *text;
+ GObject *image;
+
+ switch (msg_data->mode) {
+ case ZENITY_MSG_WARNING:
+ builder = zenity_util_load_ui_file ("zenity_warning_dialog", NULL);
+ dialog = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_warning_dialog"));
+ text = gtk_builder_get_object (builder, "zenity_warning_text");
+ image = gtk_builder_get_object (builder, "zenity_warning_image");
+ ok_button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_warning_ok_button"));
+ break;
+
+ case ZENITY_MSG_QUESTION:
+ case ZENITY_MSG_SWITCH:
+ builder = zenity_util_load_ui_file ("zenity_question_dialog", NULL);
+ dialog = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_question_dialog"));
+ text = gtk_builder_get_object (builder, "zenity_question_text");
+ image = gtk_builder_get_object (builder, "zenity_question_image");
+ ok_button = NULL;
+ break;
+
+ case ZENITY_MSG_ERROR:
+ builder = zenity_util_load_ui_file ("zenity_error_dialog", NULL);
+ dialog = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_error_dialog"));
+ text = gtk_builder_get_object (builder, "zenity_error_text");
+ image = gtk_builder_get_object (builder, "zenity_error_image");
+ ok_button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_error_ok_button"));
+ break;
+
+ case ZENITY_MSG_INFO:
+ builder = zenity_util_load_ui_file ("zenity_info_dialog", NULL);
+ dialog = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_info_dialog"));
+ text = gtk_builder_get_object (builder, "zenity_info_text");
+ image = gtk_builder_get_object (builder, "zenity_info_image");
+ ok_button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_info_ok_button"));
+ break;
+
+ default:
+ builder = NULL;
+ dialog = NULL;
+ text = NULL;
+ image = NULL;
+ ok_button = NULL;
+ g_assert_not_reached ();
+ break;
+ }
+
+ 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 (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_msg_dialog_response),
+ data);
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ if (ok_button) {
+ if (data->ok_label) {
+ gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
+ }
+ }
+
+ switch (msg_data->mode) {
+ case ZENITY_MSG_WARNING:
+ zenity_util_set_window_icon_from_icon_name (
+ dialog, data->window_icon, "dialog-warning");
+ break;
+
+ case ZENITY_MSG_QUESTION:
+ zenity_util_set_window_icon_from_icon_name (
+ dialog, data->window_icon, "dialog-question");
+ zenity_msg_construct_question_dialog (dialog, msg_data, data);
+ break;
+
+ case ZENITY_MSG_SWITCH:
+ zenity_util_set_window_icon_from_icon_name (
+ dialog, data->window_icon, "dialog-question");
+ break;
+
+ case ZENITY_MSG_ERROR:
+ zenity_util_set_window_icon_from_icon_name (
+ dialog, data->window_icon, "dialog-error");
+ break;
+
+ case ZENITY_MSG_INFO:
+ zenity_util_set_window_icon_from_icon_name (
+ dialog, data->window_icon, "dialog-information");
+ break;
+
+ default:
+ break;
+ }
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ if (data->width > -1)
+ gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
+ else if (!msg_data->ellipsize && !msg_data->no_wrap) {
+ // the magic number 60 is picked from gtk+/gtk/ui/gtkmessagedialog.ui
+ // however, 60 would increase the distance between the icon and the
+ // text,
+ // decreasing to 10 fix it.
+ gtk_label_set_width_chars (text, 10);
+ gtk_label_set_max_width_chars (text, 10);
+ }
+
+ if (data->modal)
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ if (msg_data->dialog_text) {
+ if (msg_data->no_markup)
+ gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text);
+ else
+ gtk_label_set_markup (
+ GTK_LABEL (text), g_strcompress (msg_data->dialog_text));
+ zenity_label_widget_clipboard_selection (GTK_WIDGET (text));
+ }
+
+ if (msg_data->ellipsize)
+ gtk_label_set_ellipsize (GTK_LABEL (text), PANGO_ALIGN_RIGHT);
+
+ if (msg_data->dialog_icon)
+ gtk_image_set_from_icon_name (
+ GTK_IMAGE (image), msg_data->dialog_icon, GTK_ICON_SIZE_DIALOG);
+
+ if (msg_data->no_wrap)
+ gtk_label_set_line_wrap (GTK_LABEL (text), FALSE);
+
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ NULL);
+ }
+
+ g_object_unref (builder);
+
+ gtk_main ();
}
static void
-zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data = data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
- gtk_main_quit ();
+zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ gtk_main_quit ();
}
diff --git a/src/notification.c b/src/notification.c
index 9bbd6ce1..eb0e79eb 100644
--- a/src/notification.c
+++ b/src/notification.c
@@ -24,16 +24,16 @@
#include <config.h>
-#include <unistd.h>
-#include <stdlib.h>
#include <gtk/gtk.h>
-#include <time.h>
+#include <stdlib.h>
#include <string.h>
+#include <time.h>
+#include <unistd.h>
#ifdef HAVE_LIBNOTIFY
#include <libnotify/notify.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
#define MAX_HINTS 16
@@ -41,337 +41,331 @@ static char *icon_file;
static GHashTable *notification_hints;
static NotifyNotification *
-zenity_notification_new(gchar *message, gchar *icon_file)
-{
- NotifyNotification *notif;
- gchar **text;
-
- text = g_strsplit (g_strcompress (message), "\n", 2);
- if (*text == NULL) {
- g_printerr (_("Could not parse message\n"));
- return NULL;
- }
-
- notif = notify_notification_new (text[0], /* title */
- text[1], /* summary */
- icon_file);
- g_strfreev (text);
- return notif;
+zenity_notification_new (gchar *message, gchar *icon_file) {
+ NotifyNotification *notif;
+ gchar **text;
+
+ text = g_strsplit (g_strcompress (message), "\n", 2);
+ if (*text == NULL) {
+ g_printerr (_ ("Could not parse message\n"));
+ return NULL;
+ }
+
+ notif = notify_notification_new (text[0], /* title */
+ text[1], /* summary */
+ icon_file);
+ g_strfreev (text);
+ return notif;
}
static void
-on_notification_default_action (NotifyNotification *n,
- const char *action,
- void *user_data)
-{
- ZenityData *zen_data;
+on_notification_default_action (
+ NotifyNotification *n, const char *action, void *user_data) {
+ ZenityData *zen_data;
- zen_data = (ZenityData *)user_data;
- notify_notification_close (n, NULL);
+ zen_data = (ZenityData *) user_data;
+ notify_notification_close (n, NULL);
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- gtk_main_quit ();
+ gtk_main_quit ();
}
static GHashTable *
-zenity_notification_parse_hints_array (gchar **hints)
-{
- GHashTable *result;
- gchar** pair;
- int i;
-
- result = g_hash_table_new_full (g_str_hash,
- g_str_equal,
- g_free,
- g_free);
-
- for(i = 0; i < g_strv_length (hints); i++) {
- pair = g_strsplit (hints[i], ":", 2);
- g_hash_table_replace (result, g_strdup (pair[0]), g_strdup (pair[1]));
- g_strfreev (pair);
- }
- if (g_hash_table_size (result) == 0) {
- g_hash_table_unref (result);
- return NULL;
- } else {
- return result;
- }
+zenity_notification_parse_hints_array (gchar **hints) {
+ GHashTable *result;
+ gchar **pair;
+ int i;
+
+ result = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+ for (i = 0; i < g_strv_length (hints); i++) {
+ pair = g_strsplit (hints[i], ":", 2);
+ g_hash_table_replace (result, g_strdup (pair[0]), g_strdup (pair[1]));
+ g_strfreev (pair);
+ }
+ if (g_hash_table_size (result) == 0) {
+ g_hash_table_unref (result);
+ return NULL;
+ } else {
+ return result;
+ }
}
static GHashTable *
-zenity_notification_parse_hints (gchar *hints)
-{
- GHashTable *result;
- gchar** hint_array;
-
- hint_array = g_strsplit (g_strcompress (hints), "\n", MAX_HINTS);
- result = zenity_notification_parse_hints_array (hint_array);
- g_strfreev (hint_array);
- return result;
+zenity_notification_parse_hints (gchar *hints) {
+ GHashTable *result;
+ gchar **hint_array;
+
+ hint_array = g_strsplit (g_strcompress (hints), "\n", MAX_HINTS);
+ result = zenity_notification_parse_hints_array (hint_array);
+ g_strfreev (hint_array);
+ return result;
}
static void
-zenity_notification_set_hint(gpointer key, gpointer value, gpointer user_data)
-{
- NotifyNotification *notification;
- gchar *hint_name;
- GVariant *hint_value;
-
- gchar *string_value;
- gboolean boolean_value;
- gint32 int_value;
- guchar byte_value;
-
- hint_name = (gchar *) key;
- string_value = (gchar *) value;
- notification = (NotifyNotification *) user_data;
-
- if ((g_ascii_strcasecmp ("action-icons", hint_name) == 0)
- || (g_ascii_strcasecmp ("resident", hint_name) == 0)
- || (g_ascii_strcasecmp ("suppress-sound", hint_name) == 0)
- || (g_ascii_strcasecmp ("transient", hint_name) == 0)) {
- /* boolean hints */
- if (g_ascii_strcasecmp ("true", string_value) == 0) {
- boolean_value = TRUE;
- } else if (g_ascii_strcasecmp ("false", string_value) == 0) {
- boolean_value = FALSE;
- } else {
- g_printerr (_("Invalid value for a boolean typed hint.\nSupported values are 'true' or 'false'.\n"));
- return;
- }
- hint_value = g_variant_new_boolean (boolean_value);
- } else if ((g_ascii_strcasecmp ("category", hint_name) == 0)
- || (g_ascii_strcasecmp ("desktop-entry", hint_name) == 0)
- || (g_ascii_strcasecmp ("image-path", hint_name) == 0)
- || (g_ascii_strcasecmp ("image_path", hint_name) == 0)
- || (g_ascii_strcasecmp ("sound-file", hint_name) == 0)
- || (g_ascii_strcasecmp ("sound-name", hint_name) == 0)) {
- /* string hints */
- hint_value = g_variant_new_string (string_value);
- } else if ((g_ascii_strcasecmp ("image-data", hint_name) == 0)
- || (g_ascii_strcasecmp ("image_data", hint_name) == 0)
- || (g_ascii_strcasecmp ("icon-data", hint_name) == 0)) {
- /* (iibiiay) */
- g_printerr (_("Unsupported hint. Skipping.\n"));
- return;
- } else if ((g_ascii_strcasecmp ("x", hint_name) == 0)
- || (g_ascii_strcasecmp ("y", hint_name) == 0)) {
- /* int hints */
- if (string_value == NULL)
- string_value = "";
- int_value = (gint32) g_ascii_strtoll (string_value, NULL, 0);
- hint_value = g_variant_new_int32 (int_value);
- } else if ((g_ascii_strcasecmp ("urgency", hint_name) == 0)) {
- /* byte hints */
- if (string_value == NULL)
- string_value = "";
- byte_value = (guchar) g_ascii_strtoll (string_value, NULL, 0);
- hint_value = g_variant_new_byte (byte_value);
- } else {
- /* unknown hints */
- g_printerr (_("Unknown hint name. Skipping.\n"));
- return;
- }
-
- notify_notification_set_hint (notification,
- hint_name,
- hint_value);
+zenity_notification_set_hint (
+ gpointer key, gpointer value, gpointer user_data) {
+ NotifyNotification *notification;
+ gchar *hint_name;
+ GVariant *hint_value;
+
+ gchar *string_value;
+ gboolean boolean_value;
+ gint32 int_value;
+ guchar byte_value;
+
+ hint_name = (gchar *) key;
+ string_value = (gchar *) value;
+ notification = (NotifyNotification *) user_data;
+
+ if ((g_ascii_strcasecmp ("action-icons", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("resident", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("suppress-sound", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("transient", hint_name) == 0)) {
+ /* boolean hints */
+ if (g_ascii_strcasecmp ("true", string_value) == 0) {
+ boolean_value = TRUE;
+ } else if (g_ascii_strcasecmp ("false", string_value) == 0) {
+ boolean_value = FALSE;
+ } else {
+ g_printerr (_ ("Invalid value for a boolean typed hint.\nSupported "
+ "values are 'true' or 'false'.\n"));
+ return;
+ }
+ hint_value = g_variant_new_boolean (boolean_value);
+ } else if ((g_ascii_strcasecmp ("category", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("desktop-entry", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("image-path", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("image_path", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("sound-file", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("sound-name", hint_name) == 0)) {
+ /* string hints */
+ hint_value = g_variant_new_string (string_value);
+ } else if ((g_ascii_strcasecmp ("image-data", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("image_data", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("icon-data", hint_name) == 0)) {
+ /* (iibiiay) */
+ g_printerr (_ ("Unsupported hint. Skipping.\n"));
+ return;
+ } else if ((g_ascii_strcasecmp ("x", hint_name) == 0) ||
+ (g_ascii_strcasecmp ("y", hint_name) == 0)) {
+ /* int hints */
+ if (string_value == NULL)
+ string_value = "";
+ int_value = (gint32) g_ascii_strtoll (string_value, NULL, 0);
+ hint_value = g_variant_new_int32 (int_value);
+ } else if ((g_ascii_strcasecmp ("urgency", hint_name) == 0)) {
+ /* byte hints */
+ if (string_value == NULL)
+ string_value = "";
+ byte_value = (guchar) g_ascii_strtoll (string_value, NULL, 0);
+ hint_value = g_variant_new_byte (byte_value);
+ } else {
+ /* unknown hints */
+ g_printerr (_ ("Unknown hint name. Skipping.\n"));
+ return;
+ }
+
+ notify_notification_set_hint (notification, hint_name, hint_value);
}
static void
-zenity_notification_set_hints (NotifyNotification *notification, GHashTable *hints)
-{
- if (hints == NULL) {
- return;
- }
+zenity_notification_set_hints (
+ NotifyNotification *notification, GHashTable *hints) {
+ if (hints == NULL) {
+ return;
+ }
- g_hash_table_foreach (hints, zenity_notification_set_hint, notification);
+ g_hash_table_foreach (hints, zenity_notification_set_hint, notification);
}
static gboolean
-zenity_notification_handle_stdin (GIOChannel *channel,
- GIOCondition condition,
- gpointer user_data)
-{
- if ((condition & G_IO_IN) != 0) {
- GString *string;
- GError *error = NULL;
-
- string = g_string_new (NULL);
- while (channel->is_readable == FALSE)
- ;
- do {
- gint status;
- gchar *command, *value, *colon;
-
- do {
- status = g_io_channel_read_line_string (channel, string, NULL, &error);
- while (gdk_events_pending ())
- gtk_main_iteration ();
-
- } while (status == G_IO_STATUS_AGAIN);
-
- if (status != G_IO_STATUS_NORMAL) {
- if (error) {
- g_warning ("zenity_notification_handle_stdin () : %s",
- error->message);
- g_error_free (error);
- error = NULL;
+zenity_notification_handle_stdin (
+ GIOChannel *channel, GIOCondition condition, gpointer user_data) {
+ if ((condition & G_IO_IN) != 0) {
+ GString *string;
+ GError *error = NULL;
+
+ string = g_string_new (NULL);
+ while (channel->is_readable == FALSE)
+ ;
+ do {
+ gint status;
+ gchar *command, *value, *colon;
+
+ do {
+ status = g_io_channel_read_line_string (
+ channel, string, NULL, &error);
+ while (gdk_events_pending ())
+ gtk_main_iteration ();
+
+ } while (status == G_IO_STATUS_AGAIN);
+
+ if (status != G_IO_STATUS_NORMAL) {
+ if (error) {
+ g_warning ("zenity_notification_handle_stdin () : %s",
+ error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ continue;
+ }
+
+ zenity_util_strip_newline (string->str);
+ colon = strchr (string->str, ':');
+ if (colon == NULL) {
+ g_printerr (_ ("Could not parse command from stdin\n"));
+ continue;
+ }
+ /* split off the command and value */
+ command = g_strstrip (g_strndup (string->str, colon - string->str));
+
+ value = colon + 1;
+ while (*value && g_ascii_isspace (*value))
+ value++;
+
+ if (!g_ascii_strcasecmp (command, "icon")) {
+ g_free (icon_file);
+ icon_file = g_strdup (value);
+ } else if (!g_ascii_strcasecmp (command, "hints")) {
+ if (notification_hints != NULL) {
+ g_hash_table_unref (notification_hints);
+ }
+ notification_hints = zenity_notification_parse_hints (value);
+ } else if (!g_ascii_strcasecmp (command, "message")) {
+ /* display a notification bubble */
+ if (!g_utf8_validate (value, -1, NULL)) {
+ g_warning ("Invalid UTF-8 in input!");
+ } else {
+ NotifyNotification *notif;
+ error = NULL;
+
+ notif = zenity_notification_new (value, icon_file);
+ if (notif == NULL)
+ continue;
+
+ zenity_notification_set_hints (notif, notification_hints);
+
+ notify_notification_show (notif, &error);
+ if (error) {
+ g_warning (
+ "Error showing notification: %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+
+ g_object_unref (notif);
+ }
+ } else if (!g_ascii_strcasecmp (command, "tooltip")) {
+ if (!g_utf8_validate (value, -1, NULL)) {
+ g_warning ("Invalid UTF-8 in input!");
+ } else {
+ NotifyNotification *notif;
+ notif = zenity_notification_new (value, icon_file);
+ if (notif == NULL)
+ continue;
+
+ zenity_notification_set_hints (notif, notification_hints);
+
+ notify_notification_show (notif, &error);
+ if (error) {
+ g_warning (
+ "Error showing notification: %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ }
+ } else if (!g_ascii_strcasecmp (command, "visible")) {
+
+ } else {
+ g_warning ("Unknown command '%s'", command);
+ }
+ g_free (command);
+
+ } while (g_io_channel_get_buffer_condition (channel) == G_IO_IN);
+ g_string_free (string, TRUE);
+ }
+
+ if ((condition & G_IO_HUP) != 0) {
+ g_io_channel_shutdown (channel, TRUE, NULL);
+ return FALSE;
}
- continue;
- }
-
- zenity_util_strip_newline (string->str);
- colon = strchr(string->str, ':');
- if (colon == NULL) {
- g_printerr (_("Could not parse command from stdin\n"));
- continue;
- }
- /* split off the command and value */
- command = g_strstrip (g_strndup (string->str, colon - string->str));
-
- value = colon + 1;
- while (*value && g_ascii_isspace (*value)) value++;
-
- if (!g_ascii_strcasecmp (command, "icon")) {
- g_free (icon_file);
- icon_file = g_strdup (value);
- } else if (!g_ascii_strcasecmp (command, "hints")) {
- if (notification_hints != NULL) {
- g_hash_table_unref (notification_hints);
- }
- notification_hints = zenity_notification_parse_hints (value);
- } else if (!g_ascii_strcasecmp (command, "message")) {
- /* display a notification bubble */
- if (!g_utf8_validate (value, -1, NULL)) {
- g_warning ("Invalid UTF-8 in input!");
- } else {
- NotifyNotification *notif;
- error = NULL;
-
- notif = zenity_notification_new (value, icon_file);
- if (notif == NULL)
- continue;
-
- zenity_notification_set_hints (notif, notification_hints);
-
- notify_notification_show (notif, &error);
- if (error) {
- g_warning ("Error showing notification: %s", error->message);
- g_error_free (error);
- error = NULL;
- }
-
- g_object_unref (notif);
- }
- } else if (!g_ascii_strcasecmp (command, "tooltip")) {
- if (!g_utf8_validate (value, -1, NULL)) {
- g_warning ("Invalid UTF-8 in input!");
- } else {
- NotifyNotification *notif;
- notif = zenity_notification_new (value, icon_file);
- if (notif == NULL)
- continue;
-
- zenity_notification_set_hints (notif, notification_hints);
-
- notify_notification_show (notif, &error);
- if (error) {
- g_warning ("Error showing notification: %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- }
- } else if (!g_ascii_strcasecmp (command, "visible")) {
-
- } else {
- g_warning ("Unknown command '%s'", command);
- }
- g_free (command);
-
- } while (g_io_channel_get_buffer_condition (channel) == G_IO_IN);
- g_string_free (string, TRUE);
- }
-
- if ((condition & G_IO_HUP) != 0) {
- g_io_channel_shutdown (channel, TRUE, NULL);
- return FALSE;
- }
-
- return TRUE;
+
+ return TRUE;
}
static void
-zenity_notification_listen_on_stdin (ZenityData *data)
-{
- GIOChannel *channel;
-
- channel = g_io_channel_unix_new (0);
- g_io_channel_set_encoding (channel, NULL, NULL);
- g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
- g_io_add_watch (channel, G_IO_IN | G_IO_HUP,
- zenity_notification_handle_stdin, data);
+zenity_notification_listen_on_stdin (ZenityData *data) {
+ GIOChannel *channel;
+
+ channel = g_io_channel_unix_new (0);
+ g_io_channel_set_encoding (channel, NULL, NULL);
+ g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+ g_io_add_watch (
+ channel, G_IO_IN | G_IO_HUP, zenity_notification_handle_stdin, data);
}
void
-zenity_notification (ZenityData *data, ZenityNotificationData *notification_data)
-{
- GError *error;
- NotifyNotification *notification;
- GHashTable *notification_hints;
-
- /* create the notification widget */
- if (!notify_is_initted ()) {
- notify_init (_("Zenity notification"));
- }
-
- if (notification_data->listen) {
- zenity_notification_listen_on_stdin (data);
- gtk_main();
- } else {
- if (notification_data->notification_text == NULL) {
- exit (1);
- }
-
- notification = zenity_notification_new (notification_data->notification_text,
- data->window_icon);
-
- if (notification == NULL) {
- exit (1);
- }
-
- /* if we aren't listening for changes, then close on default action */
- notify_notification_add_action (notification,
- "default",
- "Do Default Action",
- (NotifyActionCallback) on_notification_default_action,
- data,
- NULL);
-
- /* set the notification hints for the displayed notification */
- if (notification_data->notification_hints != NULL) {
- notification_hints = zenity_notification_parse_hints_array (notification_data->notification_hints);
- zenity_notification_set_hints(notification, notification_hints);
- g_hash_table_unref (notification_hints);
- }
-
- /* Show icon and wait */
- error = NULL;
- if (!notify_notification_show (notification, &error)) {
- if (error != NULL) {
- g_warning ("Error showing notification: %s", error->message);
- g_error_free (error);
- }
- exit (1);
- }
-
- }
-
- if (data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, NULL);
- gtk_main();
- }
+zenity_notification (
+ ZenityData *data, ZenityNotificationData *notification_data) {
+ GError *error;
+ NotifyNotification *notification;
+ GHashTable *notification_hints;
+
+ /* create the notification widget */
+ if (!notify_is_initted ()) {
+ notify_init (_ ("Zenity notification"));
+ }
+
+ if (notification_data->listen) {
+ zenity_notification_listen_on_stdin (data);
+ gtk_main ();
+ } else {
+ if (notification_data->notification_text == NULL) {
+ exit (1);
+ }
+
+ notification = zenity_notification_new (
+ notification_data->notification_text, data->window_icon);
+
+ if (notification == NULL) {
+ exit (1);
+ }
+
+ /* if we aren't listening for changes, then close on default action */
+ notify_notification_add_action (notification,
+ "default",
+ "Do Default Action",
+ (NotifyActionCallback) on_notification_default_action,
+ data,
+ NULL);
+
+ /* set the notification hints for the displayed notification */
+ if (notification_data->notification_hints != NULL) {
+ notification_hints = zenity_notification_parse_hints_array (
+ notification_data->notification_hints);
+ zenity_notification_set_hints (notification, notification_hints);
+ g_hash_table_unref (notification_hints);
+ }
+
+ /* Show icon and wait */
+ error = NULL;
+ if (!notify_notification_show (notification, &error)) {
+ if (error != NULL) {
+ g_warning ("Error showing notification: %s", error->message);
+ g_error_free (error);
+ }
+ exit (1);
+ }
+ }
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ NULL);
+ gtk_main ();
+ }
}
#endif
diff --git a/src/option.c b/src/option.c
index 246cf226..61df34d3 100644
--- a/src/option.c
+++ b/src/option.c
@@ -25,41 +25,41 @@
#include "config.h"
#include "option.h"
-#include <time.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
/* General Options */
-static gchar *zenity_general_dialog_title;
-static gchar *zenity_general_window_icon;
-static int zenity_general_width;
-static int zenity_general_height;
-static gchar *zenity_general_dialog_text;
-static gchar *zenity_general_dialog_icon;
-static gchar *zenity_general_separator;
+static gchar *zenity_general_dialog_title;
+static gchar *zenity_general_window_icon;
+static int zenity_general_width;
+static int zenity_general_height;
+static gchar *zenity_general_dialog_text;
+static gchar *zenity_general_dialog_icon;
+static gchar *zenity_general_separator;
static gboolean zenity_general_multiple;
static gboolean zenity_general_editable;
-static gchar *zenity_general_uri;
+static gchar *zenity_general_uri;
static gboolean zenity_general_dialog_no_wrap;
static gboolean zenity_general_dialog_no_markup;
-static gint zenity_general_timeout_delay;
-static gchar *zenity_general_ok_button;
-static gchar *zenity_general_cancel_button;
-static gchar **zenity_general_extra_buttons;
+static gint zenity_general_timeout_delay;
+static gchar *zenity_general_ok_button;
+static gchar *zenity_general_cancel_button;
+static gchar **zenity_general_extra_buttons;
static gboolean zenity_general_modal;
static guintptr zenity_general_attach;
static gboolean zenity_general_dialog_ellipsize;
/* Calendar Dialog Options */
static gboolean zenity_calendar_active;
-static int zenity_calendar_day;
-static int zenity_calendar_month;
-static int zenity_calendar_year;
-static gchar *zenity_calendar_date_format;
+static int zenity_calendar_day;
+static int zenity_calendar_month;
+static int zenity_calendar_year;
+static gchar *zenity_calendar_date_format;
/* Entry Dialog Options */
static gboolean zenity_entry_active;
-static gchar *zenity_entry_entry_text;
+static gchar *zenity_entry_entry_text;
static gboolean zenity_entry_hide_text;
/* Error Dialog Options */
@@ -69,19 +69,19 @@ static gboolean zenity_error_active;
static gboolean zenity_info_active;
/* File Selection Dialog Options */
-static gboolean zenity_file_active;
-static gboolean zenity_file_directory;
-static gboolean zenity_file_save;
-static gboolean zenity_file_confirm_overwrite;
-static gchar **zenity_file_filter;
+static gboolean zenity_file_active;
+static gboolean zenity_file_directory;
+static gboolean zenity_file_save;
+static gboolean zenity_file_confirm_overwrite;
+static gchar **zenity_file_filter;
/* List Dialog Options */
static gboolean zenity_list_active;
-static gchar **zenity_list_columns;
+static gchar **zenity_list_columns;
static gboolean zenity_list_checklist;
static gboolean zenity_list_radiolist;
-static gchar *zenity_list_print_column;
-static gchar *zenity_list_hide_column;
+static gchar *zenity_list_print_column;
+static gchar *zenity_list_hide_column;
static gboolean zenity_list_hide_header;
static gboolean zenity_list_imagelist;
static gboolean zenity_list_mid_search;
@@ -90,12 +90,12 @@ static gboolean zenity_list_mid_search;
/* Notification Dialog Options */
static gboolean zenity_notification_active;
static gboolean zenity_notification_listen;
-static gchar **zenity_notification_hints;
+static gchar **zenity_notification_hints;
#endif
/* Progress Dialog Options */
static gboolean zenity_progress_active;
-static int zenity_progress_percentage;
+static int zenity_progress_percentage;
static gboolean zenity_progress_pulsate;
static gboolean zenity_progress_auto_close;
static gboolean zenity_progress_auto_kill;
@@ -109,14 +109,14 @@ static gboolean zenity_question_switch;
/* Text Dialog Options */
static gboolean zenity_text_active;
-static gchar *zenity_text_font;
-static gchar *zenity_text_checkbox;
+static gchar *zenity_text_font;
+static gchar *zenity_text_checkbox;
static gboolean zenity_text_auto_scroll;
#ifdef HAVE_WEBKITGTK
static gboolean zenity_text_enable_html;
static gboolean zenity_text_no_interaction;
-static gchar *zenity_text_url;
+static gchar *zenity_text_url;
#endif
/* Warning Dialog Options */
@@ -133,7 +133,7 @@ static gboolean zenity_scale_hide_value;
/* Color Selection Dialog Options */
static gboolean zenity_colorsel_active;
-static gchar *zenity_colorsel_color;
+static gchar *zenity_colorsel_color;
static gboolean zenity_colorsel_show_palette;
/* Password Dialog Options */
@@ -143,1180 +143,893 @@ static gboolean zenity_password_show_username;
/* Forms Dialog Options */
static gboolean zenity_forms_active;
static gboolean zenity_forms_show_header;
-static gchar *zenity_forms_date_format;
-//static gchar *zenity_forms_hide_column;
-static gchar **zenity_forms_list_values;
-static gchar **zenity_forms_column_values;
-static gchar **zenity_forms_combo_values;
+static gchar *zenity_forms_date_format;
+// static gchar *zenity_forms_hide_column;
+static gchar **zenity_forms_list_values;
+static gchar **zenity_forms_column_values;
+static gchar **zenity_forms_combo_values;
/* Miscelaneus Options */
static gboolean zenity_misc_about;
static gboolean zenity_misc_version;
-static gboolean
-zenity_forms_callback (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error);
-
-static GOptionEntry general_options[] = {
- {
- "title",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_title,
- N_("Set the dialog title"),
- N_("TITLE")
- },
- {
- "window-icon",
- '\0',
- 0,
- G_OPTION_ARG_FILENAME,
- &zenity_general_window_icon,
- N_("Set the window icon"),
- N_("ICONPATH")
- },
- {
- "width",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_general_width,
- N_("Set the width"),
- N_("WIDTH")
- },
- {
- "height",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_general_height,
- N_("Set the height"),
- N_("HEIGHT")
- },
- {
- "timeout",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_general_timeout_delay,
- N_("Set dialog timeout in seconds"),
- /* Timeout for closing the dialog */
- N_("TIMEOUT")
- },
- {
- "ok-label",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_ok_button,
- N_("Set the label of the OK button"),
- N_("TEXT")
- },
- {
- "cancel-label",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_cancel_button,
- N_("Set the label of the Cancel button"),
- N_("TEXT")
- },
- {
- "extra-button",
- '\0',
- 0,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_general_extra_buttons,
- N_("Add an extra button"),
- N_("TEXT")
- },
- {
- "modal",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_modal,
- N_("Set the modal hint"),
- NULL
- },
- {
- "attach",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_INT,
- &zenity_general_attach,
- N_("Set the parent window to attach to"),
- N_("WINDOW")
- },
- {
- NULL
- }
-};
-
-static GOptionEntry calendar_options[] = {
- {
- "calendar",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_calendar_active,
- N_("Display calendar dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "day",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_calendar_day,
- N_("Set the calendar day"),
- N_("DAY")
- },
- {
- "month",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_calendar_month,
- N_("Set the calendar month"),
- N_("MONTH")
- },
- {
- "year",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_calendar_year,
- N_("Set the calendar year"),
- N_("YEAR")
- },
- {
- "date-format",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_calendar_date_format,
- N_("Set the format for the returned date"),
- N_("PATTERN")
- },
- {
- NULL
- }
-};
-
-static GOptionEntry entry_options[] = {
- {
- "entry",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_entry_active,
- N_("Display text entry dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "entry-text",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_entry_entry_text,
- N_("Set the entry text"),
- N_("TEXT")
- },
- {
- "hide-text",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_entry_hide_text,
- N_("Hide the entry text"),
- NULL
- },
- {
- NULL
- }
-};
-
-
-static GOptionEntry error_options[] = {
- {
- "error",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_error_active,
- N_("Display error dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "icon-name",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_icon,
- N_("Set the dialog icon"),
- N_("ICON-NAME")
- },
- {
- "no-wrap",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_wrap,
- N_("Do not enable text wrapping"),
- NULL
- },
- {
- "no-markup",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_markup,
- N_("Do not enable Pango markup")
- },
- {
- "ellipsize",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_ellipsize,
- N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
- },
- {
- NULL
- }
-};
-
-static GOptionEntry info_options[] = {
- {
- "info",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_info_active,
- N_("Display info dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "icon-name",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_icon,
- N_("Set the dialog icon"),
- N_("ICON-NAME")
- },
- {
- "no-wrap",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_wrap,
- N_("Do not enable text wrapping"),
- NULL
- },
- {
- "no-markup",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_markup,
- N_("Do not enable Pango markup")
- },
- {
- "ellipsize",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_ellipsize,
- N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
- },
- {
- NULL
- }
-};
-
-static GOptionEntry file_selection_options[] = {
- {
- "file-selection",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_file_active,
- N_("Display file selection dialog"),
- NULL
- },
- {
- "filename",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_FILENAME,
- &zenity_general_uri,
- N_("Set the filename"),
- N_("FILENAME")
- },
- {
- "multiple",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_multiple,
- N_("Allow multiple files to be selected"),
- NULL
- },
- {
- "directory",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_file_directory,
- N_("Activate directory-only selection"),
- NULL
- },
- {
- "save",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_file_save,
- N_("Activate save mode"),
- NULL
- },
- {
- "separator",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_separator,
- N_("Set output separator character"),
- N_("SEPARATOR")
- },
- {
- "confirm-overwrite",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_file_confirm_overwrite,
- N_("Confirm file selection if filename already exists"),
- NULL
- },
- {
- "file-filter",
- '\0',
- 0,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_file_filter,
- N_("Set a filename filter"),
- /* Help for file-filter argument (name and patterns for file selection) */
- N_("NAME | PATTERN1 PATTERN2 ..."),
- },
- {
- NULL
- }
-};
-
-static GOptionEntry list_options[] = {
- {
- "list",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_list_active,
- N_("Display list dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "column",
- '\0',
- 0,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_list_columns,
- N_("Set the column header"),
- N_("COLUMN")
- },
- {
- "checklist",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_list_checklist,
- N_("Use check boxes for the first column"),
- NULL
- },
- {
- "radiolist",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_list_radiolist,
- N_("Use radio buttons for the first column"),
- NULL
- },
- {
- "imagelist",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_list_imagelist,
- N_("Use an image for the first column"),
- NULL
- },
- {
- "separator",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_separator,
- N_("Set output separator character"),
- N_("SEPARATOR")
- },
- {
- "multiple",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_multiple,
- N_("Allow multiple rows to be selected"),
- NULL
- },
- {
- "editable",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_editable,
- N_("Allow changes to text"),
- NULL
- },
- {
- "print-column",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_list_print_column,
- N_("Print a specific column (Default is 1. 'ALL' can be used to print all columns)"),
- /* Column index number to print out on a list dialog */
- N_("NUMBER")
- },
- {
- "hide-column",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_list_hide_column,
- N_("Hide a specific column"),
- N_("NUMBER")
- },
- {
- "hide-header",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_list_hide_header,
- N_("Hide the column headers"),
- NULL
- },
- {
- "mid-search",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_list_mid_search,
- N_("Change list default search function searching for text in the middle, not on the beginning"),
- NULL
- },
- {
- NULL
- }
-};
+static gboolean zenity_forms_callback (const gchar *option_name,
+ const gchar *value, gpointer data, GError **error);
+
+static GOptionEntry general_options[] = {{"title",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_title,
+ N_ ("Set the dialog title"),
+ N_ ("TITLE")},
+ {"window-icon",
+ '\0',
+ 0,
+ G_OPTION_ARG_FILENAME,
+ &zenity_general_window_icon,
+ N_ ("Set the window icon"),
+ N_ ("ICONPATH")},
+ {"width",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_general_width,
+ N_ ("Set the width"),
+ N_ ("WIDTH")},
+ {"height",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_general_height,
+ N_ ("Set the height"),
+ N_ ("HEIGHT")},
+ {"timeout",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_general_timeout_delay,
+ N_ ("Set dialog timeout in seconds"),
+ /* Timeout for closing the dialog */
+ N_ ("TIMEOUT")},
+ {"ok-label",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_ok_button,
+ N_ ("Set the label of the OK button"),
+ N_ ("TEXT")},
+ {"cancel-label",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_cancel_button,
+ N_ ("Set the label of the Cancel button"),
+ N_ ("TEXT")},
+ {"extra-button",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_general_extra_buttons,
+ N_ ("Add an extra button"),
+ N_ ("TEXT")},
+ {"modal",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_modal,
+ N_ ("Set the modal hint"),
+ NULL},
+ {"attach",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_INT,
+ &zenity_general_attach,
+ N_ ("Set the parent window to attach to"),
+ N_ ("WINDOW")},
+ {NULL}};
+
+static GOptionEntry calendar_options[] = {{"calendar",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_calendar_active,
+ N_ ("Display calendar dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"day",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_calendar_day,
+ N_ ("Set the calendar day"),
+ N_ ("DAY")},
+ {"month",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_calendar_month,
+ N_ ("Set the calendar month"),
+ N_ ("MONTH")},
+ {"year",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_calendar_year,
+ N_ ("Set the calendar year"),
+ N_ ("YEAR")},
+ {"date-format",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_calendar_date_format,
+ N_ ("Set the format for the returned date"),
+ N_ ("PATTERN")},
+ {NULL}};
+
+static GOptionEntry entry_options[] = {{"entry",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_entry_active,
+ N_ ("Display text entry dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"entry-text",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_entry_entry_text,
+ N_ ("Set the entry text"),
+ N_ ("TEXT")},
+ {"hide-text",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_entry_hide_text,
+ N_ ("Hide the entry text"),
+ NULL},
+ {NULL}};
+
+static GOptionEntry error_options[] = {{"error",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_error_active,
+ N_ ("Display error dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"icon-name",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_icon,
+ N_ ("Set the dialog icon"),
+ N_ ("ICON-NAME")},
+ {"no-wrap",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_wrap,
+ N_ ("Do not enable text wrapping"),
+ NULL},
+ {"no-markup",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_markup,
+ N_ ("Do not enable Pango markup")},
+ {"ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+ "size with long texts")},
+ {NULL}};
+
+static GOptionEntry info_options[] = {{"info",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_info_active,
+ N_ ("Display info dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"icon-name",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_icon,
+ N_ ("Set the dialog icon"),
+ N_ ("ICON-NAME")},
+ {"no-wrap",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_wrap,
+ N_ ("Do not enable text wrapping"),
+ NULL},
+ {"no-markup",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_markup,
+ N_ ("Do not enable Pango markup")},
+ {"ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+ "size with long texts")},
+ {NULL}};
+
+static GOptionEntry file_selection_options[] =
+ {{"file-selection",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_file_active,
+ N_ ("Display file selection dialog"),
+ NULL},
+ {"filename",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_FILENAME,
+ &zenity_general_uri,
+ N_ ("Set the filename"),
+ N_ ("FILENAME")},
+ {"multiple",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_multiple,
+ N_ ("Allow multiple files to be selected"),
+ NULL},
+ {"directory",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_file_directory,
+ N_ ("Activate directory-only selection"),
+ NULL},
+ {"save",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_file_save,
+ N_ ("Activate save mode"),
+ NULL},
+ {"separator",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_separator,
+ N_ ("Set output separator character"),
+ N_ ("SEPARATOR")},
+ {"confirm-overwrite",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_file_confirm_overwrite,
+ N_ ("Confirm file selection if filename already exists"),
+ NULL},
+ {
+ "file-filter",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_file_filter,
+ N_ ("Set a filename filter"),
+ /* Help for file-filter argument (name and patterns for file
+ selection) */
+ N_ ("NAME | PATTERN1 PATTERN2 ..."),
+ },
+ {NULL}};
+
+static GOptionEntry list_options[] = {{"list",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_list_active,
+ N_ ("Display list dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"column",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_list_columns,
+ N_ ("Set the column header"),
+ N_ ("COLUMN")},
+ {"checklist",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_list_checklist,
+ N_ ("Use check boxes for the first column"),
+ NULL},
+ {"radiolist",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_list_radiolist,
+ N_ ("Use radio buttons for the first column"),
+ NULL},
+ {"imagelist",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_list_imagelist,
+ N_ ("Use an image for the first column"),
+ NULL},
+ {"separator",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_separator,
+ N_ ("Set output separator character"),
+ N_ ("SEPARATOR")},
+ {"multiple",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_multiple,
+ N_ ("Allow multiple rows to be selected"),
+ NULL},
+ {"editable",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_editable,
+ N_ ("Allow changes to text"),
+ NULL},
+ {"print-column",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_list_print_column,
+ N_ ("Print a specific column (Default is 1. 'ALL' can be used to print "
+ "all columns)"),
+ /* Column index number to print out on a list dialog */
+ N_ ("NUMBER")},
+ {"hide-column",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_list_hide_column,
+ N_ ("Hide a specific column"),
+ N_ ("NUMBER")},
+ {"hide-header",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_list_hide_header,
+ N_ ("Hide the column headers"),
+ NULL},
+ {"mid-search",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_list_mid_search,
+ N_ ("Change list default search function searching for text in the "
+ "middle, not on the beginning"),
+ NULL},
+ {NULL}};
#ifdef HAVE_LIBNOTIFY
-static GOptionEntry notification_options[] = {
- {
- "notification",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_notification_active,
- N_("Display notification"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the notification text"),
- N_("TEXT")
- },
- {
- "listen",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_notification_listen,
- N_("Listen for commands on stdin"),
- NULL
- },
- {
- "hint",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_notification_hints,
- N_("Set the notification hints"),
- N_("TEXT")
- },
- {
- NULL
- }
-};
+static GOptionEntry notification_options[] = {{"notification",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_notification_active,
+ N_ ("Display notification"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the notification text"),
+ N_ ("TEXT")},
+ {"listen",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_notification_listen,
+ N_ ("Listen for commands on stdin"),
+ NULL},
+ {"hint",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_notification_hints,
+ N_ ("Set the notification hints"),
+ N_ ("TEXT")},
+ {NULL}};
#endif
static GOptionEntry progress_options[] = {
- {
- "progress",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_progress_active,
- N_("Display progress indication dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "percentage",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_progress_percentage,
- N_("Set initial percentage"),
- N_("PERCENTAGE")
- },
- {
- "pulsate",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_progress_pulsate,
- N_("Pulsate progress bar"),
- NULL
- },
- {
- "auto-close",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_progress_auto_close,
- /* xgettext: no-c-format */
- N_("Dismiss the dialog when 100% has been reached"),
- NULL
- },
- {
- "auto-kill",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_progress_auto_kill,
- N_("Kill parent process if Cancel button is pressed"),
- NULL
- },
- {
- "no-cancel",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_progress_no_cancel,
- N_("Hide Cancel button"),
- NULL
- },
- {
- "time-remaining",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_progress_time_remaining,
- /* xgettext: no-c-format */
- N_("Estimate when progress will reach 100%"),
- NULL
- },
- {
- NULL
- }
-};
-
-static GOptionEntry question_options[] = {
- {
- "question",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_question_active,
- N_("Display question dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "icon-name",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_icon,
- N_("Set the dialog icon"),
- N_("ICON-NAME")
- },
- {
- "no-wrap",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_wrap,
- N_("Do not enable text wrapping"),
- NULL
- },
- {
- "no-markup",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_markup,
- N_("Do not enable Pango markup")
- },
- {
- "default-cancel",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_question_default_cancel,
- N_("Give Cancel button focus by default"),
- NULL
- },
- {
- "ellipsize",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_ellipsize,
- N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
- },
- {
- "switch",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_question_switch,
- N_("Suppress OK and Cancel buttons"),
- NULL
- },
- {
- NULL
- }
-};
+ {"progress",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_progress_active,
+ N_ ("Display progress indication dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"percentage",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_progress_percentage,
+ N_ ("Set initial percentage"),
+ N_ ("PERCENTAGE")},
+ {"pulsate",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_progress_pulsate,
+ N_ ("Pulsate progress bar"),
+ NULL},
+ {"auto-close",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_progress_auto_close,
+ /* xgettext: no-c-format */
+ N_ ("Dismiss the dialog when 100% has been reached"),
+ NULL},
+ {"auto-kill",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_progress_auto_kill,
+ N_ ("Kill parent process if Cancel button is pressed"),
+ NULL},
+ {"no-cancel",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_progress_no_cancel,
+ N_ ("Hide Cancel button"),
+ NULL},
+ {"time-remaining",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_progress_time_remaining,
+ /* xgettext: no-c-format */
+ N_ ("Estimate when progress will reach 100%"),
+ NULL},
+ {NULL}};
+
+static GOptionEntry question_options[] = {{"question",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_question_active,
+ N_ ("Display question dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"icon-name",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_icon,
+ N_ ("Set the dialog icon"),
+ N_ ("ICON-NAME")},
+ {"no-wrap",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_wrap,
+ N_ ("Do not enable text wrapping"),
+ NULL},
+ {"no-markup",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_markup,
+ N_ ("Do not enable Pango markup")},
+ {"default-cancel",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_question_default_cancel,
+ N_ ("Give Cancel button focus by default"),
+ NULL},
+ {"ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+ "size with long texts")},
+ {"switch",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_question_switch,
+ N_ ("Suppress OK and Cancel buttons"),
+ NULL},
+ {NULL}};
static GOptionEntry text_options[] = {
- {
- "text-info",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_text_active,
- N_("Display text information dialog"),
- NULL
- },
- {
- "filename",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_FILENAME,
- &zenity_general_uri,
- N_("Open file"),
- N_("FILENAME")
- },
- {
- "editable",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_editable,
- N_("Allow changes to text"),
- NULL
- },
- {
- "font",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_text_font,
- N_("Set the text font"),
- N_("TEXT")
- },
- {
- "checkbox",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_text_checkbox,
- N_("Enable an I read and agree checkbox"),
- N_("TEXT")
- },
+ {"text-info",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_text_active,
+ N_ ("Display text information dialog"),
+ NULL},
+ {"filename",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_FILENAME,
+ &zenity_general_uri,
+ N_ ("Open file"),
+ N_ ("FILENAME")},
+ {"editable",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_editable,
+ N_ ("Allow changes to text"),
+ NULL},
+ {"font",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_text_font,
+ N_ ("Set the text font"),
+ N_ ("TEXT")},
+ {"checkbox",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_text_checkbox,
+ N_ ("Enable an I read and agree checkbox"),
+ N_ ("TEXT")},
#ifdef HAVE_WEBKITGTK
- {
- "html",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_text_enable_html,
- N_("Enable HTML support"),
- NULL
- },
- {
- "no-interaction",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_text_no_interaction,
- N_("Do not enable user interaction with the WebView. Only works if you use --html option"),
- NULL
- },
- {
- "url",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_text_url,
- N_("Set an URL instead of a file. Only works if you use --html option"),
- N_("URL")
- },
+ {"html",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_text_enable_html,
+ N_ ("Enable HTML support"),
+ NULL},
+ {"no-interaction",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_text_no_interaction,
+ N_ ("Do not enable user interaction with the WebView. Only works if "
+ "you use --html option"),
+ NULL},
+ {"url",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_text_url,
+ N_ ("Set an URL instead of a file. Only works if you use --html "
+ "option"),
+ N_ ("URL")},
#endif
- {
- "auto-scroll",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_text_auto_scroll,
- N_("Auto scroll the text to the end. Only when text is captured from stdin"),
- NULL
- },
- {
- NULL
- }
-};
-
-static GOptionEntry warning_options[] = {
- {
- "warning",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_warning_active,
- N_("Display warning dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "icon-name",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_icon,
- N_("Set the dialog icon"),
- N_("ICON-NAME")
- },
- {
- "no-wrap",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_wrap,
- N_("Do not enable text wrapping"),
- NULL
- },
- {
- "no-markup",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_no_markup,
- N_("Do not enable Pango markup")
- },
- {
- "ellipsize",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_NONE,
- &zenity_general_dialog_ellipsize,
- N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
- },
- {
- NULL
- }
-};
-
-static GOptionEntry scale_options[] = {
- {
- "scale",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_scale_active,
- N_("Display scale dialog"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "value",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_scale_value,
- N_("Set initial value"),
- N_("VALUE")
- },
- {
- "min-value",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_scale_min_value,
- N_("Set minimum value"),
- N_("VALUE")
- },
- {
- "max-value",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_scale_max_value,
- N_("Set maximum value"),
- N_("VALUE")
- },
- {
- "step",
- '\0',
- 0,
- G_OPTION_ARG_INT,
- &zenity_scale_step,
- N_("Set step size"),
- N_("VALUE")
- },
- {
- "print-partial",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_scale_print_partial,
- N_("Print partial values"),
- NULL
- },
- {
- "hide-value",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_scale_hide_value,
- N_("Hide value"),
- NULL
- },
- {
- NULL
- }
-};
-
-static GOptionEntry forms_dialog_options[] = {
- {
- "forms",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_forms_active,
- N_("Display forms dialog"),
- NULL
- },
- {
- "add-entry",
- '\0',
- 0,
- G_OPTION_ARG_CALLBACK,
- zenity_forms_callback,
- N_("Add a new Entry in forms dialog"),
- N_("Field name")
- },
- {
- "add-password",
- '\0',
- 0,
- G_OPTION_ARG_CALLBACK,
- zenity_forms_callback,
- N_("Add a new Password Entry in forms dialog"),
- N_("Field name")
- },
- {
- "add-calendar",
- '\0',
- 0,
- G_OPTION_ARG_CALLBACK,
- zenity_forms_callback,
- N_("Add a new Calendar in forms dialog"),
- N_("Calendar field name")
- },
- {
- "add-list",
- '\0',
- 0,
- G_OPTION_ARG_CALLBACK,
- zenity_forms_callback,
- N_("Add a new List in forms dialog"),
- N_("List field and header name")
- },
- {
- "list-values",
- '\0',
- 0,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_forms_list_values,
- N_("List of values for List"),
- N_("List of values separated by |")
- },
- {
- "column-values",
- '\0',
- 0,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_forms_column_values,
- N_("List of values for columns"),
- N_("List of values separated by |")
- },
- {
- "add-combo",
- '\0',
- 0,
- G_OPTION_ARG_CALLBACK,
- zenity_forms_callback,
- N_("Add a new combo box in forms dialog"),
- N_("Combo box field name")
- },
- {
- "combo-values",
- '\0',
- 0,
- G_OPTION_ARG_STRING_ARRAY,
- &zenity_forms_combo_values,
- N_("List of values for combo box"),
- N_("List of values separated by |")
- },
- /* TODO: Implement how to hide specifc column
- {
- "hide-column",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_forms_hide_column,
- N_("Hide a specific column"),
- N_("NUMBER")
- },*/
- {
- "show-header",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_forms_show_header,
- N_("Show the columns header"),
- NULL
- },
- {
- "text",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_dialog_text,
- N_("Set the dialog text"),
- N_("TEXT")
- },
- {
- "separator",
- '\0',
- G_OPTION_FLAG_NOALIAS,
- G_OPTION_ARG_STRING,
- &zenity_general_separator,
- N_("Set output separator character"),
- N_("SEPARATOR")
- },
- {
- "date-format",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_forms_date_format,
- N_("Set the format for the returned date"),
- N_("PATTERN")
- },
- {
- NULL
- }
-};
+ {"auto-scroll",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_text_auto_scroll,
+ N_ ("Auto scroll the text to the end. Only when text is captured from "
+ "stdin"),
+ NULL},
+ {NULL}};
+
+static GOptionEntry warning_options[] = {{"warning",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_warning_active,
+ N_ ("Display warning dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"icon-name",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_icon,
+ N_ ("Set the dialog icon"),
+ N_ ("ICON-NAME")},
+ {"no-wrap",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_wrap,
+ N_ ("Do not enable text wrapping"),
+ NULL},
+ {"no-markup",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_no_markup,
+ N_ ("Do not enable Pango markup")},
+ {"ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+ "size with long texts")},
+ {NULL}};
+
+static GOptionEntry scale_options[] = {{"scale",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_scale_active,
+ N_ ("Display scale dialog"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"value",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_scale_value,
+ N_ ("Set initial value"),
+ N_ ("VALUE")},
+ {"min-value",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_scale_min_value,
+ N_ ("Set minimum value"),
+ N_ ("VALUE")},
+ {"max-value",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_scale_max_value,
+ N_ ("Set maximum value"),
+ N_ ("VALUE")},
+ {"step",
+ '\0',
+ 0,
+ G_OPTION_ARG_INT,
+ &zenity_scale_step,
+ N_ ("Set step size"),
+ N_ ("VALUE")},
+ {"print-partial",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_scale_print_partial,
+ N_ ("Print partial values"),
+ NULL},
+ {"hide-value",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_scale_hide_value,
+ N_ ("Hide value"),
+ NULL},
+ {NULL}};
+
+static GOptionEntry forms_dialog_options[] = {{"forms",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_forms_active,
+ N_ ("Display forms dialog"),
+ NULL},
+ {"add-entry",
+ '\0',
+ 0,
+ G_OPTION_ARG_CALLBACK,
+ zenity_forms_callback,
+ N_ ("Add a new Entry in forms dialog"),
+ N_ ("Field name")},
+ {"add-password",
+ '\0',
+ 0,
+ G_OPTION_ARG_CALLBACK,
+ zenity_forms_callback,
+ N_ ("Add a new Password Entry in forms dialog"),
+ N_ ("Field name")},
+ {"add-calendar",
+ '\0',
+ 0,
+ G_OPTION_ARG_CALLBACK,
+ zenity_forms_callback,
+ N_ ("Add a new Calendar in forms dialog"),
+ N_ ("Calendar field name")},
+ {"add-list",
+ '\0',
+ 0,
+ G_OPTION_ARG_CALLBACK,
+ zenity_forms_callback,
+ N_ ("Add a new List in forms dialog"),
+ N_ ("List field and header name")},
+ {"list-values",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_forms_list_values,
+ N_ ("List of values for List"),
+ N_ ("List of values separated by |")},
+ {"column-values",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_forms_column_values,
+ N_ ("List of values for columns"),
+ N_ ("List of values separated by |")},
+ {"add-combo",
+ '\0',
+ 0,
+ G_OPTION_ARG_CALLBACK,
+ zenity_forms_callback,
+ N_ ("Add a new combo box in forms dialog"),
+ N_ ("Combo box field name")},
+ {"combo-values",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING_ARRAY,
+ &zenity_forms_combo_values,
+ N_ ("List of values for combo box"),
+ N_ ("List of values separated by |")},
+ /* TODO: Implement how to hide specifc column
+ {
+ "hide-column",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_forms_hide_column,
+ N_("Hide a specific column"),
+ N_("NUMBER")
+ },*/
+ {"show-header",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_forms_show_header,
+ N_ ("Show the columns header"),
+ NULL},
+ {"text",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_dialog_text,
+ N_ ("Set the dialog text"),
+ N_ ("TEXT")},
+ {"separator",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_STRING,
+ &zenity_general_separator,
+ N_ ("Set output separator character"),
+ N_ ("SEPARATOR")},
+ {"date-format",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_forms_date_format,
+ N_ ("Set the format for the returned date"),
+ N_ ("PATTERN")},
+ {NULL}};
static GOptionEntry password_dialog_options[] = {
- {
- "password",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_password_active,
- N_("Display password dialog"),
- NULL
- },
- {
- "username",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_password_show_username,
- N_("Display the username option"),
- NULL
- },
- {
- NULL
- }
-};
+ {"password",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_password_active,
+ N_ ("Display password dialog"),
+ NULL},
+ {"username",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_password_show_username,
+ N_ ("Display the username option"),
+ NULL},
+ {NULL}};
static GOptionEntry color_selection_options[] = {
- {
- "color-selection",
- '\0',
- G_OPTION_FLAG_IN_MAIN,
- G_OPTION_ARG_NONE,
- &zenity_colorsel_active,
- N_("Display color selection dialog"),
- NULL
- },
- {
- "color",
- '\0',
- 0,
- G_OPTION_ARG_STRING,
- &zenity_colorsel_color,
- N_("Set the color"),
- N_("VALUE")
- },
- {
- "show-palette",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_colorsel_show_palette,
- N_("Show the palette"),
- NULL
- },
- {
- NULL
- }
-};
-
-static GOptionEntry miscellaneous_options[] = {
- {
- "about",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_misc_about,
- N_("About zenity"),
- NULL
- },
- {
- "version",
- '\0',
- 0,
- G_OPTION_ARG_NONE,
- &zenity_misc_version,
- N_("Print version"),
- NULL
- },
- {
- NULL
- }
-};
+ {"color-selection",
+ '\0',
+ G_OPTION_FLAG_IN_MAIN,
+ G_OPTION_ARG_NONE,
+ &zenity_colorsel_active,
+ N_ ("Display color selection dialog"),
+ NULL},
+ {"color",
+ '\0',
+ 0,
+ G_OPTION_ARG_STRING,
+ &zenity_colorsel_color,
+ N_ ("Set the color"),
+ N_ ("VALUE")},
+ {"show-palette",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_colorsel_show_palette,
+ N_ ("Show the palette"),
+ NULL},
+ {NULL}};
+
+static GOptionEntry miscellaneous_options[] = {{"about",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_misc_about,
+ N_ ("About zenity"),
+ NULL},
+ {"version",
+ '\0',
+ 0,
+ G_OPTION_ARG_NONE,
+ &zenity_misc_version,
+ N_ ("Print version"),
+ NULL},
+ {NULL}};
static ZenityParsingOptions *results;
static GOptionContext *ctx;
@@ -1324,1210 +1037,1193 @@ static GOptionContext *ctx;
static void
zenity_option_init (void) {
- results = g_new0 (ZenityParsingOptions, 1);
-
- /* Initialize the various dialog structures */
- results->mode = MODE_LAST;
- results->data = g_new0 (ZenityData, 1);
- results->calendar_data = g_new0 (ZenityCalendarData, 1);
- results->msg_data = g_new0 (ZenityMsgData, 1);
- results->scale_data = g_new0 (ZenityScaleData, 1);
- results->file_data = g_new0 (ZenityFileData, 1);
- results->entry_data = g_new0 (ZenityEntryData, 1);
- results->progress_data = g_new0 (ZenityProgressData, 1);
- results->text_data = g_new0 (ZenityTextData, 1);
- results->tree_data = g_new0 (ZenityTreeData, 1);
+ results = g_new0 (ZenityParsingOptions, 1);
+
+ /* Initialize the various dialog structures */
+ results->mode = MODE_LAST;
+ results->data = g_new0 (ZenityData, 1);
+ results->calendar_data = g_new0 (ZenityCalendarData, 1);
+ results->msg_data = g_new0 (ZenityMsgData, 1);
+ results->scale_data = g_new0 (ZenityScaleData, 1);
+ results->file_data = g_new0 (ZenityFileData, 1);
+ results->entry_data = g_new0 (ZenityEntryData, 1);
+ results->progress_data = g_new0 (ZenityProgressData, 1);
+ results->text_data = g_new0 (ZenityTextData, 1);
+ results->tree_data = g_new0 (ZenityTreeData, 1);
#ifdef HAVE_LIBNOTIFY
- results->notification_data = g_new0 (ZenityNotificationData, 1);
+ results->notification_data = g_new0 (ZenityNotificationData, 1);
#endif
- results->color_data = g_new0 (ZenityColorData, 1);
- results->password_data = g_new0 (ZenityPasswordData, 1);
- results->forms_data = g_new0 (ZenityFormsData, 1);
+ results->color_data = g_new0 (ZenityColorData, 1);
+ results->password_data = g_new0 (ZenityPasswordData, 1);
+ results->forms_data = g_new0 (ZenityFormsData, 1);
}
void
zenity_option_free (void) {
- if (zenity_general_dialog_title)
- g_free (zenity_general_dialog_title);
- if (zenity_general_window_icon)
- g_free (zenity_general_window_icon);
- if (zenity_general_dialog_text)
- g_free (zenity_general_dialog_text);
- if (zenity_general_uri)
- g_free (zenity_general_uri);
- g_free (zenity_general_separator);
- if (zenity_general_ok_button)
- g_free (zenity_general_ok_button);
- if (zenity_general_cancel_button)
- g_free (zenity_general_cancel_button);
- if (zenity_general_extra_buttons)
- g_strfreev (zenity_general_extra_buttons);
-
- if (zenity_calendar_date_format)
- g_free (zenity_calendar_date_format);
-
- if (zenity_forms_date_format)
- g_free (zenity_forms_date_format);
- if (zenity_forms_list_values)
- g_strfreev (zenity_forms_list_values);
- if (zenity_forms_combo_values)
- g_strfreev (zenity_forms_combo_values);
- if (zenity_forms_column_values)
- g_strfreev (zenity_forms_column_values);
-// if (zenity_forms_hide_column)
-// g_free (zenity_forms_hide_column);
- if (zenity_entry_entry_text)
- g_free (zenity_entry_entry_text);
-
- if (zenity_file_filter)
- g_strfreev (zenity_file_filter);
-
- if (zenity_list_columns)
- g_strfreev (zenity_list_columns);
- if (zenity_list_print_column)
- g_free (zenity_list_print_column);
- if (zenity_list_hide_column)
- g_free (zenity_list_hide_column);
+ if (zenity_general_dialog_title)
+ g_free (zenity_general_dialog_title);
+ if (zenity_general_window_icon)
+ g_free (zenity_general_window_icon);
+ if (zenity_general_dialog_text)
+ g_free (zenity_general_dialog_text);
+ if (zenity_general_uri)
+ g_free (zenity_general_uri);
+ g_free (zenity_general_separator);
+ if (zenity_general_ok_button)
+ g_free (zenity_general_ok_button);
+ if (zenity_general_cancel_button)
+ g_free (zenity_general_cancel_button);
+ if (zenity_general_extra_buttons)
+ g_strfreev (zenity_general_extra_buttons);
+
+ if (zenity_calendar_date_format)
+ g_free (zenity_calendar_date_format);
+
+ if (zenity_forms_date_format)
+ g_free (zenity_forms_date_format);
+ if (zenity_forms_list_values)
+ g_strfreev (zenity_forms_list_values);
+ if (zenity_forms_combo_values)
+ g_strfreev (zenity_forms_combo_values);
+ if (zenity_forms_column_values)
+ g_strfreev (zenity_forms_column_values);
+ // if (zenity_forms_hide_column)
+ // g_free (zenity_forms_hide_column);
+ if (zenity_entry_entry_text)
+ g_free (zenity_entry_entry_text);
+
+ if (zenity_file_filter)
+ g_strfreev (zenity_file_filter);
+
+ if (zenity_list_columns)
+ g_strfreev (zenity_list_columns);
+ if (zenity_list_print_column)
+ g_free (zenity_list_print_column);
+ if (zenity_list_hide_column)
+ g_free (zenity_list_hide_column);
#ifdef HAVE_LIBNOTIFY
- if (zenity_notification_hints)
- g_strfreev (zenity_notification_hints);
+ if (zenity_notification_hints)
+ g_strfreev (zenity_notification_hints);
#endif
- if (zenity_text_font)
- g_free (zenity_text_font);
- if (zenity_text_checkbox)
- g_free (zenity_text_checkbox);
+ if (zenity_text_font)
+ g_free (zenity_text_font);
+ if (zenity_text_checkbox)
+ g_free (zenity_text_checkbox);
- if (zenity_colorsel_color)
- g_free (zenity_colorsel_color);
-
- g_option_context_free (ctx);
+ if (zenity_colorsel_color)
+ g_free (zenity_colorsel_color);
+
+ g_option_context_free (ctx);
}
static void
-zenity_option_set_dialog_mode (gboolean is_active, ZenityDialogMode mode)
-{
- if (is_active == TRUE) {
- if (results->mode == MODE_LAST)
- results->mode = mode;
- else
- zenity_option_error (NULL, ERROR_DIALOG);
- }
+zenity_option_set_dialog_mode (gboolean is_active, ZenityDialogMode mode) {
+ if (is_active == TRUE) {
+ if (results->mode == MODE_LAST)
+ results->mode = mode;
+ else
+ zenity_option_error (NULL, ERROR_DIALOG);
+ }
}
static gchar *
-zenity_option_get_name (GOptionEntry *entries, gpointer arg_data)
-{
- int i;
-
- for (i = 1; entries[i].long_name != NULL; i++) {
- if (entries[i].arg_data == arg_data)
- return (gchar *) entries[i].long_name;
- }
- return NULL;
+zenity_option_get_name (GOptionEntry *entries, gpointer arg_data) {
+ int i;
+
+ for (i = 1; entries[i].long_name != NULL; i++) {
+ if (entries[i].arg_data == arg_data)
+ return (gchar *) entries[i].long_name;
+ }
+ return NULL;
}
/* Forms callback */
static gboolean
-zenity_forms_callback (const gchar *option_name,
- const gchar *value,
- gpointer data,
- GError **error)
-{
- ZenityFormsValue *forms_value = g_new0 (ZenityFormsValue, 1);
-
- forms_value->option_value = g_strdup (value);
-
- if (g_strcmp0 (option_name, "--add-entry") == 0)
- forms_value->type = ZENITY_FORMS_ENTRY;
- else if (g_strcmp0 (option_name, "--add-calendar") == 0)
- forms_value->type = ZENITY_FORMS_CALENDAR;
- else if (g_strcmp0 (option_name, "--add-password") == 0)
- forms_value->type = ZENITY_FORMS_PASSWORD;
- else if (g_strcmp0 (option_name, "--add-list") == 0)
- forms_value->type = ZENITY_FORMS_LIST;
- else if (g_strcmp0 (option_name, "--add-combo") == 0)
- forms_value->type = ZENITY_FORMS_COMBO;
-
- results->forms_data->list = g_slist_append(results->forms_data->list, forms_value);
-
- return TRUE;
+zenity_forms_callback (const gchar *option_name, const gchar *value,
+ gpointer data, GError **error) {
+ ZenityFormsValue *forms_value = g_new0 (ZenityFormsValue, 1);
+
+ forms_value->option_value = g_strdup (value);
+
+ if (g_strcmp0 (option_name, "--add-entry") == 0)
+ forms_value->type = ZENITY_FORMS_ENTRY;
+ else if (g_strcmp0 (option_name, "--add-calendar") == 0)
+ forms_value->type = ZENITY_FORMS_CALENDAR;
+ else if (g_strcmp0 (option_name, "--add-password") == 0)
+ forms_value->type = ZENITY_FORMS_PASSWORD;
+ else if (g_strcmp0 (option_name, "--add-list") == 0)
+ forms_value->type = ZENITY_FORMS_LIST;
+ else if (g_strcmp0 (option_name, "--add-combo") == 0)
+ forms_value->type = ZENITY_FORMS_COMBO;
+
+ results->forms_data->list =
+ g_slist_append (results->forms_data->list, forms_value);
+
+ return TRUE;
}
/* Error callback */
-static void
-zenity_option_error_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_error (NULL, ERROR_SYNTAX);
+static void
+zenity_option_error_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_error (NULL, ERROR_SYNTAX);
}
/* Pre parse callbacks set the default option values */
static gboolean
-zenity_general_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_general_dialog_title = NULL;
- zenity_general_window_icon = NULL;
- zenity_general_width = -1;
- zenity_general_height = -1;
- zenity_general_dialog_text = NULL;
- zenity_general_separator = g_strdup ("|");
- zenity_general_multiple = FALSE;
- zenity_general_editable = FALSE;
- zenity_general_uri = NULL;
- zenity_general_ok_button = NULL;
- zenity_general_cancel_button = NULL;
- zenity_general_extra_buttons = NULL;
- zenity_general_dialog_no_wrap = FALSE;
- zenity_general_dialog_no_markup = FALSE;
- zenity_general_timeout_delay = -1;
- zenity_general_modal = FALSE;
- zenity_general_attach = 0;
-
- return TRUE;
+zenity_general_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_general_dialog_title = NULL;
+ zenity_general_window_icon = NULL;
+ zenity_general_width = -1;
+ zenity_general_height = -1;
+ zenity_general_dialog_text = NULL;
+ zenity_general_separator = g_strdup ("|");
+ zenity_general_multiple = FALSE;
+ zenity_general_editable = FALSE;
+ zenity_general_uri = NULL;
+ zenity_general_ok_button = NULL;
+ zenity_general_cancel_button = NULL;
+ zenity_general_extra_buttons = NULL;
+ zenity_general_dialog_no_wrap = FALSE;
+ zenity_general_dialog_no_markup = FALSE;
+ zenity_general_timeout_delay = -1;
+ zenity_general_modal = FALSE;
+ zenity_general_attach = 0;
+
+ return TRUE;
}
static gboolean
-zenity_calendar_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_calendar_active = FALSE;
- zenity_calendar_date_format = NULL;
- zenity_calendar_day = -1;
- zenity_calendar_month = -1;
- zenity_calendar_year = -1;
-
- return TRUE;
+zenity_calendar_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_calendar_active = FALSE;
+ zenity_calendar_date_format = NULL;
+ zenity_calendar_day = -1;
+ zenity_calendar_month = -1;
+ zenity_calendar_year = -1;
+
+ return TRUE;
}
static gboolean
-zenity_entry_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_entry_active = FALSE;
- zenity_entry_entry_text = NULL;
- zenity_entry_hide_text = FALSE;
-
- return TRUE;
+zenity_entry_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_entry_active = FALSE;
+ zenity_entry_entry_text = NULL;
+ zenity_entry_hide_text = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_error_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_error_active = FALSE;
-
- return TRUE;
+zenity_error_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_error_active = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_info_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_info_active = FALSE;
-
- return TRUE;
+zenity_info_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_info_active = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_file_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_file_active = FALSE;
- zenity_file_directory = FALSE;
- zenity_file_save = FALSE;
- zenity_file_confirm_overwrite = FALSE;
- zenity_file_filter = NULL;
-
- return TRUE;
+zenity_file_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_file_active = FALSE;
+ zenity_file_directory = FALSE;
+ zenity_file_save = FALSE;
+ zenity_file_confirm_overwrite = FALSE;
+ zenity_file_filter = NULL;
+
+ return TRUE;
}
static gboolean
-zenity_list_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_list_active = FALSE;
- zenity_list_columns = NULL;
- zenity_list_checklist = FALSE;
- zenity_list_radiolist = FALSE;
- zenity_list_imagelist = FALSE;
- zenity_list_hide_header = FALSE;
- zenity_list_print_column = NULL;
- zenity_list_hide_column = NULL;
- zenity_list_mid_search = FALSE;
-
- return TRUE;
+zenity_list_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_list_active = FALSE;
+ zenity_list_columns = NULL;
+ zenity_list_checklist = FALSE;
+ zenity_list_radiolist = FALSE;
+ zenity_list_imagelist = FALSE;
+ zenity_list_hide_header = FALSE;
+ zenity_list_print_column = NULL;
+ zenity_list_hide_column = NULL;
+ zenity_list_mid_search = FALSE;
+
+ return TRUE;
}
#ifdef HAVE_LIBNOTIFY
static gboolean
-zenity_notification_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_notification_active = FALSE;
- zenity_notification_listen = FALSE;
-
- return TRUE;
+zenity_notification_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_notification_active = FALSE;
+ zenity_notification_listen = FALSE;
+
+ return TRUE;
}
#endif
static gboolean
-zenity_progress_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_progress_active = FALSE;
- zenity_progress_percentage = 0;
- zenity_progress_pulsate = FALSE;
- zenity_progress_auto_close = FALSE;
- zenity_progress_auto_kill = FALSE;
- zenity_progress_no_cancel = FALSE;
- zenity_progress_time_remaining = FALSE;
- return TRUE;
+zenity_progress_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_progress_active = FALSE;
+ zenity_progress_percentage = 0;
+ zenity_progress_pulsate = FALSE;
+ zenity_progress_auto_close = FALSE;
+ zenity_progress_auto_kill = FALSE;
+ zenity_progress_no_cancel = FALSE;
+ zenity_progress_time_remaining = FALSE;
+ return TRUE;
}
static gboolean
-zenity_question_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_question_active = FALSE;
- zenity_question_default_cancel = FALSE;
- zenity_question_switch = FALSE;
- return TRUE;
+zenity_question_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_question_active = FALSE;
+ zenity_question_default_cancel = FALSE;
+ zenity_question_switch = FALSE;
+ return TRUE;
}
static gboolean
-zenity_text_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_text_active = FALSE;
- zenity_text_font = NULL;
- zenity_text_checkbox = NULL;
- zenity_text_auto_scroll = FALSE;
+zenity_text_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_text_active = FALSE;
+ zenity_text_font = NULL;
+ zenity_text_checkbox = NULL;
+ zenity_text_auto_scroll = FALSE;
#ifdef HAVE_WEBKITGTK
- zenity_text_enable_html = FALSE;
- zenity_text_no_interaction = FALSE;
- zenity_text_url = NULL;
+ zenity_text_enable_html = FALSE;
+ zenity_text_no_interaction = FALSE;
+ zenity_text_url = NULL;
#endif
- return TRUE;
+ return TRUE;
}
static gboolean
-zenity_warning_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_warning_active = FALSE;
-
- return TRUE;
+zenity_warning_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_warning_active = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_scale_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_scale_active = FALSE;
- zenity_scale_value = 0;
- zenity_scale_min_value = 0;
- zenity_scale_max_value = 100;
- zenity_scale_step = 1;
- zenity_scale_print_partial = FALSE;
- zenity_scale_hide_value = FALSE;
-
- return TRUE;
+zenity_scale_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_scale_active = FALSE;
+ zenity_scale_value = 0;
+ zenity_scale_min_value = 0;
+ zenity_scale_max_value = 100;
+ zenity_scale_step = 1;
+ zenity_scale_print_partial = FALSE;
+ zenity_scale_hide_value = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_color_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_colorsel_active = FALSE;
- zenity_colorsel_color = NULL;
- zenity_colorsel_show_palette = FALSE;
-
- return TRUE;
+zenity_color_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_colorsel_active = FALSE;
+ zenity_colorsel_color = NULL;
+ zenity_colorsel_show_palette = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_password_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_password_active = FALSE;
- zenity_password_show_username = FALSE;
-
- return TRUE;
+zenity_password_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_password_active = FALSE;
+ zenity_password_show_username = FALSE;
+
+ return TRUE;
}
static gboolean
-zenity_forms_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_forms_active = FALSE;
- zenity_forms_show_header = FALSE;
- zenity_forms_date_format = NULL;
-// zenity_forms_hide_column = NULL;
- return TRUE;
+zenity_forms_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_forms_active = FALSE;
+ zenity_forms_show_header = FALSE;
+ zenity_forms_date_format = NULL;
+ // zenity_forms_hide_column = NULL;
+ return TRUE;
}
static gboolean
-zenity_misc_pre_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_misc_about = FALSE;
- zenity_misc_version = FALSE;
-
- return TRUE;
+zenity_misc_pre_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_misc_about = FALSE;
+ zenity_misc_version = FALSE;
+
+ return TRUE;
}
/* Post parse callbacks assign the option values to
parsing result and makes some post condition tests */
static gboolean
-zenity_general_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- results->data->dialog_title = zenity_general_dialog_title;
- results->data->window_icon = zenity_general_window_icon;
- results->data->width = zenity_general_width;
- results->data->height = zenity_general_height;
- results->data->timeout_delay = zenity_general_timeout_delay;
- results->data->ok_label = zenity_general_ok_button;
- results->data->cancel_label = zenity_general_cancel_button;
- results->data->extra_label = zenity_general_extra_buttons;
- results->data->modal = zenity_general_modal;
- results->data->attach = zenity_general_attach;
-
- return TRUE;
+zenity_general_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ results->data->dialog_title = zenity_general_dialog_title;
+ results->data->window_icon = zenity_general_window_icon;
+ results->data->width = zenity_general_width;
+ results->data->height = zenity_general_height;
+ results->data->timeout_delay = zenity_general_timeout_delay;
+ results->data->ok_label = zenity_general_ok_button;
+ results->data->cancel_label = zenity_general_cancel_button;
+ results->data->extra_label = zenity_general_extra_buttons;
+ results->data->modal = zenity_general_modal;
+ results->data->attach = zenity_general_attach;
+
+ return TRUE;
}
static gboolean
-zenity_calendar_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_calendar_active, MODE_CALENDAR);
-
- if (results->mode == MODE_CALENDAR) {
- struct tm *t;
- time_t current_time;
-
- time (&current_time);
- t = localtime (&current_time);
-
- if (zenity_calendar_day < 0)
- zenity_calendar_day = t->tm_mday;
- if (zenity_calendar_month < 0)
- zenity_calendar_month = t->tm_mon + 1;
- if (zenity_calendar_year < 0)
- zenity_calendar_year = t->tm_year + 1900;
-
- results->calendar_data->dialog_text = zenity_general_dialog_text;
- results->calendar_data->day = zenity_calendar_day;
- results->calendar_data->month = zenity_calendar_month;
- results->calendar_data->year = zenity_calendar_year;
-
- if (zenity_calendar_date_format)
- results->calendar_data->date_format = zenity_calendar_date_format;
- else
- results->calendar_data->date_format = g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
-
- } else {
- if (zenity_calendar_day > -1)
- zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_day),
- ERROR_SUPPORT);
-
- if (zenity_calendar_month > -1)
- zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_month),
- ERROR_SUPPORT);
-
- if (zenity_calendar_year > -1)
- zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_year),
- ERROR_SUPPORT);
-
- if (zenity_calendar_date_format)
- zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_date_format),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_calendar_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_calendar_active, MODE_CALENDAR);
+
+ if (results->mode == MODE_CALENDAR) {
+ struct tm *t;
+ time_t current_time;
+
+ time (&current_time);
+ t = localtime (&current_time);
+
+ if (zenity_calendar_day < 0)
+ zenity_calendar_day = t->tm_mday;
+ if (zenity_calendar_month < 0)
+ zenity_calendar_month = t->tm_mon + 1;
+ if (zenity_calendar_year < 0)
+ zenity_calendar_year = t->tm_year + 1900;
+
+ results->calendar_data->dialog_text = zenity_general_dialog_text;
+ results->calendar_data->day = zenity_calendar_day;
+ results->calendar_data->month = zenity_calendar_month;
+ results->calendar_data->year = zenity_calendar_year;
+
+ if (zenity_calendar_date_format)
+ results->calendar_data->date_format = zenity_calendar_date_format;
+ else
+ results->calendar_data->date_format =
+ g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
+
+ } else {
+ if (zenity_calendar_day > -1)
+ zenity_option_error (
+ zenity_option_get_name (calendar_options, &zenity_calendar_day),
+ ERROR_SUPPORT);
+
+ if (zenity_calendar_month > -1)
+ zenity_option_error (zenity_option_get_name (
+ calendar_options, &zenity_calendar_month),
+ ERROR_SUPPORT);
+
+ if (zenity_calendar_year > -1)
+ zenity_option_error (zenity_option_get_name (
+ calendar_options, &zenity_calendar_year),
+ ERROR_SUPPORT);
+
+ if (zenity_calendar_date_format)
+ zenity_option_error (zenity_option_get_name (calendar_options,
+ &zenity_calendar_date_format),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
static gboolean
-zenity_entry_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_entry_active, MODE_ENTRY);
-
- if (results->mode == MODE_ENTRY) {
- results->entry_data->dialog_text = zenity_general_dialog_text;
- results->entry_data->entry_text = zenity_entry_entry_text;
- results->entry_data->hide_text= zenity_entry_hide_text;
- } else {
- if (zenity_entry_entry_text)
- zenity_option_error (zenity_option_get_name (entry_options, &zenity_entry_entry_text),
- ERROR_SUPPORT);
-
- if (zenity_entry_hide_text)
- zenity_option_error (zenity_option_get_name (entry_options, &zenity_entry_hide_text),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_entry_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_entry_active, MODE_ENTRY);
+
+ if (results->mode == MODE_ENTRY) {
+ results->entry_data->dialog_text = zenity_general_dialog_text;
+ results->entry_data->entry_text = zenity_entry_entry_text;
+ results->entry_data->hide_text = zenity_entry_hide_text;
+ } else {
+ if (zenity_entry_entry_text)
+ zenity_option_error (zenity_option_get_name (
+ entry_options, &zenity_entry_entry_text),
+ ERROR_SUPPORT);
+
+ if (zenity_entry_hide_text)
+ zenity_option_error (
+ zenity_option_get_name (entry_options, &zenity_entry_hide_text),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
static gboolean
-zenity_error_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_error_active, MODE_ERROR);
-
- if (results->mode == MODE_ERROR) {
- results->msg_data->dialog_text = zenity_general_dialog_text;
- results->msg_data->dialog_icon = zenity_general_dialog_icon;
- results->msg_data->mode = ZENITY_MSG_ERROR;
- results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
- results->msg_data->no_markup = zenity_general_dialog_no_markup;
- results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
- }
-
- return TRUE;
+zenity_error_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_error_active, MODE_ERROR);
+
+ if (results->mode == MODE_ERROR) {
+ results->msg_data->dialog_text = zenity_general_dialog_text;
+ results->msg_data->dialog_icon = zenity_general_dialog_icon;
+ results->msg_data->mode = ZENITY_MSG_ERROR;
+ results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+ results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+ }
+
+ return TRUE;
}
static gboolean
-zenity_info_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_info_active, MODE_INFO);
-
- if (results->mode == MODE_INFO) {
- results->msg_data->dialog_text = zenity_general_dialog_text;
- results->msg_data->dialog_icon = zenity_general_dialog_icon;
- results->msg_data->mode = ZENITY_MSG_INFO;
- results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
- results->msg_data->no_markup = zenity_general_dialog_no_markup;
- results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
- }
-
- return TRUE;
+zenity_info_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_info_active, MODE_INFO);
+
+ if (results->mode == MODE_INFO) {
+ results->msg_data->dialog_text = zenity_general_dialog_text;
+ results->msg_data->dialog_icon = zenity_general_dialog_icon;
+ results->msg_data->mode = ZENITY_MSG_INFO;
+ results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+ results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+ }
+
+ return TRUE;
}
static gboolean
-zenity_file_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_file_active, MODE_FILE);
-
- if (results->mode == MODE_FILE) {
- results->file_data->uri = zenity_general_uri;
- results->file_data->multi = zenity_general_multiple;
- results->file_data->directory = zenity_file_directory;
- results->file_data->save = zenity_file_save;
- results->file_data->confirm_overwrite = zenity_file_confirm_overwrite;
- results->file_data->separator = zenity_general_separator;
- results->file_data->filter = zenity_file_filter;
- } else {
- if (zenity_file_directory)
- zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_directory),
- ERROR_SUPPORT);
-
- if (zenity_file_save)
- zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_save),
- ERROR_SUPPORT);
-
- if (zenity_file_filter)
- zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_filter),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_file_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_file_active, MODE_FILE);
+
+ if (results->mode == MODE_FILE) {
+ results->file_data->uri = zenity_general_uri;
+ results->file_data->multi = zenity_general_multiple;
+ results->file_data->directory = zenity_file_directory;
+ results->file_data->save = zenity_file_save;
+ results->file_data->confirm_overwrite = zenity_file_confirm_overwrite;
+ results->file_data->separator = zenity_general_separator;
+ results->file_data->filter = zenity_file_filter;
+ } else {
+ if (zenity_file_directory)
+ zenity_option_error (zenity_option_get_name (file_selection_options,
+ &zenity_file_directory),
+ ERROR_SUPPORT);
+
+ if (zenity_file_save)
+ zenity_option_error (zenity_option_get_name (
+ file_selection_options, &zenity_file_save),
+ ERROR_SUPPORT);
+
+ if (zenity_file_filter)
+ zenity_option_error (zenity_option_get_name (file_selection_options,
+ &zenity_file_filter),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
static gboolean
-zenity_list_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- int i = 0;
- gchar *column;
-
- zenity_option_set_dialog_mode (zenity_list_active, MODE_LIST);
-
- if (results->mode == MODE_LIST) {
- results->tree_data->dialog_text = zenity_general_dialog_text;
-
- if (zenity_list_columns) {
- column = zenity_list_columns[0];
- while (column != NULL) {
- results->tree_data->columns = g_slist_append (results->tree_data->columns, column);
- column = zenity_list_columns[++i];
- }
- }
-
- results->tree_data->checkbox = zenity_list_checklist;
- results->tree_data->radiobox = zenity_list_radiolist;
- results->tree_data->imagebox = zenity_list_imagelist;
- results->tree_data->multi = zenity_general_multiple;
- results->tree_data->editable = zenity_general_editable;
- results->tree_data->print_column = zenity_list_print_column;
- results->tree_data->hide_column = zenity_list_hide_column;
- results->tree_data->hide_header = zenity_list_hide_header;
- results->tree_data->separator = zenity_general_separator;
- results->tree_data->mid_search = zenity_list_mid_search;
- } else {
- if (zenity_list_columns)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_columns),
- ERROR_SUPPORT);
-
- if (zenity_list_checklist)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_checklist),
- ERROR_SUPPORT);
-
- if (zenity_list_radiolist)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_radiolist),
- ERROR_SUPPORT);
-
- if (zenity_list_imagelist)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_imagelist),
- ERROR_SUPPORT);
-
- if (zenity_list_print_column)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_print_column),
- ERROR_SUPPORT);
-
- if (zenity_list_hide_column)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_hide_column),
- ERROR_SUPPORT);
-
- if (zenity_list_hide_header)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_hide_header),
- ERROR_SUPPORT);
- if (zenity_list_mid_search)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_list_mid_search),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_list_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ int i = 0;
+ gchar *column;
+
+ zenity_option_set_dialog_mode (zenity_list_active, MODE_LIST);
+
+ if (results->mode == MODE_LIST) {
+ results->tree_data->dialog_text = zenity_general_dialog_text;
+
+ if (zenity_list_columns) {
+ column = zenity_list_columns[0];
+ while (column != NULL) {
+ results->tree_data->columns =
+ g_slist_append (results->tree_data->columns, column);
+ column = zenity_list_columns[++i];
+ }
+ }
+
+ results->tree_data->checkbox = zenity_list_checklist;
+ results->tree_data->radiobox = zenity_list_radiolist;
+ results->tree_data->imagebox = zenity_list_imagelist;
+ results->tree_data->multi = zenity_general_multiple;
+ results->tree_data->editable = zenity_general_editable;
+ results->tree_data->print_column = zenity_list_print_column;
+ results->tree_data->hide_column = zenity_list_hide_column;
+ results->tree_data->hide_header = zenity_list_hide_header;
+ results->tree_data->separator = zenity_general_separator;
+ results->tree_data->mid_search = zenity_list_mid_search;
+ } else {
+ if (zenity_list_columns)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_columns),
+ ERROR_SUPPORT);
+
+ if (zenity_list_checklist)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_checklist),
+ ERROR_SUPPORT);
+
+ if (zenity_list_radiolist)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_radiolist),
+ ERROR_SUPPORT);
+
+ if (zenity_list_imagelist)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_imagelist),
+ ERROR_SUPPORT);
+
+ if (zenity_list_print_column)
+ zenity_option_error (zenity_option_get_name (
+ list_options, &zenity_list_print_column),
+ ERROR_SUPPORT);
+
+ if (zenity_list_hide_column)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_hide_column),
+ ERROR_SUPPORT);
+
+ if (zenity_list_hide_header)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_hide_header),
+ ERROR_SUPPORT);
+ if (zenity_list_mid_search)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_list_mid_search),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
#ifdef HAVE_LIBNOTIFY
static gboolean
-zenity_notification_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_notification_active, MODE_NOTIFICATION);
-
- if (results->mode == MODE_NOTIFICATION) {
- results->notification_data->notification_text = zenity_general_dialog_text;
- results->notification_data->listen = zenity_notification_listen;
- results->notification_data->notification_hints = zenity_notification_hints;
- } else {
- if (zenity_notification_listen)
- zenity_option_error (zenity_option_get_name (notification_options, &zenity_notification_listen),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_notification_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (
+ zenity_notification_active, MODE_NOTIFICATION);
+
+ if (results->mode == MODE_NOTIFICATION) {
+ results->notification_data->notification_text =
+ zenity_general_dialog_text;
+ results->notification_data->listen = zenity_notification_listen;
+ results->notification_data->notification_hints =
+ zenity_notification_hints;
+ } else {
+ if (zenity_notification_listen)
+ zenity_option_error (zenity_option_get_name (notification_options,
+ &zenity_notification_listen),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
#endif
static gboolean
-zenity_progress_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_progress_active, MODE_PROGRESS);
- if (results->mode == MODE_PROGRESS) {
- results->progress_data->dialog_text = zenity_general_dialog_text;
- results->progress_data->pulsate = zenity_progress_pulsate;
- results->progress_data->autoclose = zenity_progress_auto_close;
- results->progress_data->autokill = zenity_progress_auto_kill;
- results->progress_data->percentage = zenity_progress_percentage;
- results->progress_data->no_cancel = zenity_progress_no_cancel;
- results->progress_data->time_remaining = zenity_progress_time_remaining;
- } else {
- if (zenity_progress_pulsate)
- zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_pulsate),
- ERROR_SUPPORT);
-
- if (zenity_progress_percentage)
- zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_percentage),
- ERROR_SUPPORT);
-
- if (zenity_progress_auto_close)
- zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_auto_close),
- ERROR_SUPPORT);
-
- if (zenity_progress_auto_kill)
- zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_auto_kill),
- ERROR_SUPPORT);
-
- if (zenity_progress_no_cancel)
- zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_no_cancel),
- ERROR_SUPPORT);
-
- if (zenity_progress_time_remaining)
- zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_time_remaining),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_progress_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_progress_active, MODE_PROGRESS);
+ if (results->mode == MODE_PROGRESS) {
+ results->progress_data->dialog_text = zenity_general_dialog_text;
+ results->progress_data->pulsate = zenity_progress_pulsate;
+ results->progress_data->autoclose = zenity_progress_auto_close;
+ results->progress_data->autokill = zenity_progress_auto_kill;
+ results->progress_data->percentage = zenity_progress_percentage;
+ results->progress_data->no_cancel = zenity_progress_no_cancel;
+ results->progress_data->time_remaining = zenity_progress_time_remaining;
+ } else {
+ if (zenity_progress_pulsate)
+ zenity_option_error (zenity_option_get_name (progress_options,
+ &zenity_progress_pulsate),
+ ERROR_SUPPORT);
+
+ if (zenity_progress_percentage)
+ zenity_option_error (zenity_option_get_name (progress_options,
+ &zenity_progress_percentage),
+ ERROR_SUPPORT);
+
+ if (zenity_progress_auto_close)
+ zenity_option_error (zenity_option_get_name (progress_options,
+ &zenity_progress_auto_close),
+ ERROR_SUPPORT);
+
+ if (zenity_progress_auto_kill)
+ zenity_option_error (zenity_option_get_name (progress_options,
+ &zenity_progress_auto_kill),
+ ERROR_SUPPORT);
+
+ if (zenity_progress_no_cancel)
+ zenity_option_error (zenity_option_get_name (progress_options,
+ &zenity_progress_no_cancel),
+ ERROR_SUPPORT);
+
+ if (zenity_progress_time_remaining)
+ zenity_option_error (zenity_option_get_name (progress_options,
+ &zenity_progress_time_remaining),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
static gboolean
-zenity_question_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_question_active, MODE_QUESTION);
- if (results->mode == MODE_QUESTION) {
- results->msg_data->dialog_text = zenity_general_dialog_text;
- results->msg_data->dialog_icon = zenity_general_dialog_icon;
- if(zenity_question_switch)
- results->msg_data->mode = ZENITY_MSG_SWITCH;
- else
- results->msg_data->mode = ZENITY_MSG_QUESTION;
- results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
- results->msg_data->no_markup = zenity_general_dialog_no_markup;
- results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
- results->msg_data->default_cancel = zenity_question_default_cancel;
- }
- if(zenity_question_switch && zenity_general_extra_buttons==NULL)
- zenity_option_error (zenity_option_get_name (question_options, &zenity_question_switch), ERROR_SYNTAX);
-
- return TRUE;
+zenity_question_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_question_active, MODE_QUESTION);
+ if (results->mode == MODE_QUESTION) {
+ results->msg_data->dialog_text = zenity_general_dialog_text;
+ results->msg_data->dialog_icon = zenity_general_dialog_icon;
+ if (zenity_question_switch)
+ results->msg_data->mode = ZENITY_MSG_SWITCH;
+ else
+ results->msg_data->mode = ZENITY_MSG_QUESTION;
+ results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+ results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+ results->msg_data->default_cancel = zenity_question_default_cancel;
+ }
+ if (zenity_question_switch && zenity_general_extra_buttons == NULL)
+ zenity_option_error (
+ zenity_option_get_name (question_options, &zenity_question_switch),
+ ERROR_SYNTAX);
+
+ return TRUE;
}
static gboolean
-zenity_text_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_text_active, MODE_TEXTINFO);
-
- if (results->mode == MODE_TEXTINFO) {
- results->text_data->uri = zenity_general_uri;
- results->text_data->editable = zenity_general_editable;
- results->text_data->no_wrap = zenity_general_dialog_no_wrap;
- results->text_data->font = zenity_text_font;
- results->text_data->checkbox = zenity_text_checkbox;
- results->text_data->auto_scroll = zenity_text_auto_scroll;
+zenity_text_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_text_active, MODE_TEXTINFO);
+
+ if (results->mode == MODE_TEXTINFO) {
+ results->text_data->uri = zenity_general_uri;
+ results->text_data->editable = zenity_general_editable;
+ results->text_data->no_wrap = zenity_general_dialog_no_wrap;
+ results->text_data->font = zenity_text_font;
+ results->text_data->checkbox = zenity_text_checkbox;
+ results->text_data->auto_scroll = zenity_text_auto_scroll;
#ifdef HAVE_WEBKITGTK
- results->text_data->html = zenity_text_enable_html;
- results->text_data->no_interaction = zenity_text_no_interaction;
- results->text_data->url = zenity_text_url;
+ results->text_data->html = zenity_text_enable_html;
+ results->text_data->no_interaction = zenity_text_no_interaction;
+ results->text_data->url = zenity_text_url;
#endif
- } else {
- if (zenity_text_font)
- zenity_option_error (zenity_option_get_name (text_options, &zenity_text_font),
- ERROR_SUPPORT);
+ } else {
+ if (zenity_text_font)
+ zenity_option_error (
+ zenity_option_get_name (text_options, &zenity_text_font),
+ ERROR_SUPPORT);
#ifdef HAVE_WEBKITGTK
- if (zenity_text_enable_html)
- zenity_option_error (zenity_option_get_name (text_options, &zenity_text_enable_html),
- ERROR_SUPPORT);
+ if (zenity_text_enable_html)
+ zenity_option_error (
+ zenity_option_get_name (text_options, &zenity_text_enable_html),
+ ERROR_SUPPORT);
#endif
- }
- return TRUE;
+ }
+ return TRUE;
}
static gboolean
-zenity_warning_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_warning_active, MODE_WARNING);
-
- if (results->mode == MODE_WARNING) {
- results->msg_data->dialog_text = zenity_general_dialog_text;
- results->msg_data->dialog_icon = zenity_general_dialog_icon;
- results->msg_data->mode = ZENITY_MSG_WARNING;
- results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
- results->msg_data->no_markup = zenity_general_dialog_no_markup;
- results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
- }
-
- return TRUE;
+zenity_warning_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_warning_active, MODE_WARNING);
+
+ if (results->mode == MODE_WARNING) {
+ results->msg_data->dialog_text = zenity_general_dialog_text;
+ results->msg_data->dialog_icon = zenity_general_dialog_icon;
+ results->msg_data->mode = ZENITY_MSG_WARNING;
+ results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+ results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+ }
+
+ return TRUE;
}
static gboolean
-zenity_scale_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_scale_active, MODE_SCALE);
-
- if (results->mode == MODE_SCALE) {
- results->scale_data->dialog_text = zenity_general_dialog_text;
- results->scale_data->value = zenity_scale_value;
- results->scale_data->min_value = zenity_scale_min_value;
- results->scale_data->max_value = zenity_scale_max_value;
- results->scale_data->step = zenity_scale_step;
- results->scale_data->print_partial = zenity_scale_print_partial;
- results->scale_data->hide_value = zenity_scale_hide_value;
- }
-
- return TRUE;
+zenity_scale_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_scale_active, MODE_SCALE);
+
+ if (results->mode == MODE_SCALE) {
+ results->scale_data->dialog_text = zenity_general_dialog_text;
+ results->scale_data->value = zenity_scale_value;
+ results->scale_data->min_value = zenity_scale_min_value;
+ results->scale_data->max_value = zenity_scale_max_value;
+ results->scale_data->step = zenity_scale_step;
+ results->scale_data->print_partial = zenity_scale_print_partial;
+ results->scale_data->hide_value = zenity_scale_hide_value;
+ }
+
+ return TRUE;
}
static gboolean
-zenity_color_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_colorsel_active, MODE_COLOR);
-
- if (results->mode == MODE_COLOR) {
- results->color_data->color = zenity_colorsel_color;
- results->color_data->show_palette = zenity_colorsel_show_palette;
- } else {
- if (zenity_colorsel_color)
- zenity_option_error (zenity_option_get_name(color_selection_options, &zenity_colorsel_color),
- ERROR_SUPPORT);
-
- if (zenity_colorsel_show_palette)
- zenity_option_error (zenity_option_get_name(color_selection_options, &zenity_colorsel_show_palette),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_color_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_colorsel_active, MODE_COLOR);
+
+ if (results->mode == MODE_COLOR) {
+ results->color_data->color = zenity_colorsel_color;
+ results->color_data->show_palette = zenity_colorsel_show_palette;
+ } else {
+ if (zenity_colorsel_color)
+ zenity_option_error (
+ zenity_option_get_name (
+ color_selection_options, &zenity_colorsel_color),
+ ERROR_SUPPORT);
+
+ if (zenity_colorsel_show_palette)
+ zenity_option_error (
+ zenity_option_get_name (
+ color_selection_options, &zenity_colorsel_show_palette),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
static gboolean
-zenity_forms_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- gchar *values;
- int i = 0;
-
- zenity_option_set_dialog_mode (zenity_forms_active, MODE_FORMS);
- if (results->mode == MODE_FORMS) {
- results->forms_data->dialog_text = zenity_general_dialog_text;
- results->forms_data->separator = zenity_general_separator;
-// results->forms_data->hide_column = zenity_forms_hide_column;
- results->forms_data->show_header = zenity_forms_show_header;
-
- if (zenity_forms_list_values) {
- values = zenity_forms_list_values[0];
- while (values != NULL) {
- results->forms_data->list_values = g_slist_append (results->forms_data->list_values, values);
- values = zenity_forms_list_values[++i];
- }
- }
- if (zenity_forms_column_values) {
- i = 0;
- values = zenity_forms_column_values[0];
- while (values != NULL) {
- results->forms_data->column_values = g_slist_append (results->forms_data->column_values, values);
- values = zenity_forms_list_values[++i];
- }
- } else
- results->forms_data->column_values = g_slist_append (NULL, "column");
-
- if (zenity_forms_combo_values) {
- i = 0;
- values = zenity_forms_combo_values[0];
- while (values != NULL) {
- results->forms_data->combo_values = g_slist_append (results->forms_data->combo_values, values);
- values = zenity_forms_combo_values[++i];
- }
- }
- if (zenity_forms_date_format)
- results->forms_data->date_format = zenity_forms_date_format;
- else
- results->forms_data->date_format = g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
- } else {
- if (zenity_forms_date_format)
- zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_date_format),
- ERROR_SUPPORT);
- if (zenity_forms_list_values)
- zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_list_values),
- ERROR_SUPPORT);
-// if (zenity_forms_hide_column)
-// zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_hide_column),
-// ERROR_SUPPORT);
- if (zenity_forms_column_values)
- zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_column_values),
- ERROR_SUPPORT);
- if (zenity_forms_combo_values)
- zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_combo_values),
- ERROR_SUPPORT);
- if (zenity_forms_show_header)
- zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_show_header),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_forms_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ gchar *values;
+ int i = 0;
+
+ zenity_option_set_dialog_mode (zenity_forms_active, MODE_FORMS);
+ if (results->mode == MODE_FORMS) {
+ results->forms_data->dialog_text = zenity_general_dialog_text;
+ results->forms_data->separator = zenity_general_separator;
+ // results->forms_data->hide_column = zenity_forms_hide_column;
+ results->forms_data->show_header = zenity_forms_show_header;
+
+ if (zenity_forms_list_values) {
+ values = zenity_forms_list_values[0];
+ while (values != NULL) {
+ results->forms_data->list_values =
+ g_slist_append (results->forms_data->list_values, values);
+ values = zenity_forms_list_values[++i];
+ }
+ }
+ if (zenity_forms_column_values) {
+ i = 0;
+ values = zenity_forms_column_values[0];
+ while (values != NULL) {
+ results->forms_data->column_values =
+ g_slist_append (results->forms_data->column_values, values);
+ values = zenity_forms_list_values[++i];
+ }
+ } else
+ results->forms_data->column_values =
+ g_slist_append (NULL, "column");
+
+ if (zenity_forms_combo_values) {
+ i = 0;
+ values = zenity_forms_combo_values[0];
+ while (values != NULL) {
+ results->forms_data->combo_values =
+ g_slist_append (results->forms_data->combo_values, values);
+ values = zenity_forms_combo_values[++i];
+ }
+ }
+ if (zenity_forms_date_format)
+ results->forms_data->date_format = zenity_forms_date_format;
+ else
+ results->forms_data->date_format =
+ g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
+ } else {
+ if (zenity_forms_date_format)
+ zenity_option_error (zenity_option_get_name (forms_dialog_options,
+ &zenity_forms_date_format),
+ ERROR_SUPPORT);
+ if (zenity_forms_list_values)
+ zenity_option_error (zenity_option_get_name (forms_dialog_options,
+ &zenity_forms_list_values),
+ ERROR_SUPPORT);
+ // if (zenity_forms_hide_column)
+ // zenity_option_error (zenity_option_get_name
+ // (forms_dialog_options, &zenity_forms_hide_column),
+ // ERROR_SUPPORT);
+ if (zenity_forms_column_values)
+ zenity_option_error (zenity_option_get_name (forms_dialog_options,
+ &zenity_forms_column_values),
+ ERROR_SUPPORT);
+ if (zenity_forms_combo_values)
+ zenity_option_error (zenity_option_get_name (forms_dialog_options,
+ &zenity_forms_combo_values),
+ ERROR_SUPPORT);
+ if (zenity_forms_show_header)
+ zenity_option_error (zenity_option_get_name (forms_dialog_options,
+ &zenity_forms_show_header),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
-
static gboolean
-zenity_password_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_password_active, MODE_PASSWORD);
- if (results->mode == MODE_PASSWORD) {
- results->password_data->username = zenity_password_show_username;
- } else {
- if (zenity_password_show_username)
- zenity_option_error (zenity_option_get_name(password_dialog_options, &zenity_password_show_username),
- ERROR_SUPPORT);
- }
-
- return TRUE;
+zenity_password_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_password_active, MODE_PASSWORD);
+ if (results->mode == MODE_PASSWORD) {
+ results->password_data->username = zenity_password_show_username;
+ } else {
+ if (zenity_password_show_username)
+ zenity_option_error (
+ zenity_option_get_name (
+ password_dialog_options, &zenity_password_show_username),
+ ERROR_SUPPORT);
+ }
+
+ return TRUE;
}
static gboolean
-zenity_misc_post_callback (GOptionContext *context,
- GOptionGroup *group,
- gpointer data,
- GError **error)
-{
- zenity_option_set_dialog_mode (zenity_misc_about, MODE_ABOUT);
- zenity_option_set_dialog_mode (zenity_misc_version, MODE_VERSION);
-
- return TRUE;
+zenity_misc_post_callback (GOptionContext *context, GOptionGroup *group,
+ gpointer data, GError **error) {
+ zenity_option_set_dialog_mode (zenity_misc_about, MODE_ABOUT);
+ zenity_option_set_dialog_mode (zenity_misc_version, MODE_VERSION);
+
+ return TRUE;
}
static GOptionContext *
-zenity_create_context (void)
-{
- GOptionContext *tmp_ctx;
- GOptionGroup *a_group;
-
- tmp_ctx = g_option_context_new(NULL);
-
- /* Adds general option entries */
- a_group = g_option_group_new("general",
- N_("General options"),
- N_("Show general options"), NULL, NULL);
- g_option_group_add_entries(a_group, general_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_general_pre_callback, zenity_general_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds calendar option entries */
- a_group = g_option_group_new("calendar",
- N_("Calendar options"),
- N_("Show calendar options"), NULL, NULL);
- g_option_group_add_entries(a_group, calendar_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_calendar_pre_callback, zenity_calendar_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds entry option entries */
- a_group = g_option_group_new("entry",
- N_("Text entry options"),
- N_("Show text entry options"), NULL, NULL);
- g_option_group_add_entries(a_group, entry_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_entry_pre_callback, zenity_entry_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds error option entries */
- a_group = g_option_group_new("error",
- N_("Error options"),
- N_("Show error options"), NULL, NULL);
- g_option_group_add_entries(a_group, error_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_error_pre_callback, zenity_error_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds info option entries */
- a_group = g_option_group_new("info",
- N_("Info options"),
- N_("Show info options"), NULL, NULL);
- g_option_group_add_entries(a_group, info_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_info_pre_callback, zenity_info_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds file selection option entries */
- a_group = g_option_group_new("file-selection",
- N_("File selection options"),
- N_("Show file selection options"), NULL, NULL);
- g_option_group_add_entries(a_group, file_selection_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_file_pre_callback, zenity_file_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds list option entries */
- a_group = g_option_group_new("list",
- N_("List options"),
- N_("Show list options"), NULL, NULL);
- g_option_group_add_entries(a_group, list_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_list_pre_callback, zenity_list_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
-#ifdef HAVE_LIBNOTIFY
- /* Adds notification option entries */
- a_group = g_option_group_new("notification",
- N_("Notification icon options"),
- N_("Show notification icon options"), NULL, NULL);
- g_option_group_add_entries(a_group, notification_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_notification_pre_callback, zenity_notification_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
+zenity_create_context (void) {
+ GOptionContext *tmp_ctx;
+ GOptionGroup *a_group;
+
+ tmp_ctx = g_option_context_new (NULL);
+
+ /* Adds general option entries */
+ a_group = g_option_group_new ("general",
+ N_ ("General options"),
+ N_ ("Show general options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, general_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_general_pre_callback, zenity_general_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds calendar option entries */
+ a_group = g_option_group_new ("calendar",
+ N_ ("Calendar options"),
+ N_ ("Show calendar options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, calendar_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_calendar_pre_callback, zenity_calendar_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds entry option entries */
+ a_group = g_option_group_new ("entry",
+ N_ ("Text entry options"),
+ N_ ("Show text entry options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, entry_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_entry_pre_callback, zenity_entry_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds error option entries */
+ a_group = g_option_group_new (
+ "error", N_ ("Error options"), N_ ("Show error options"), NULL, NULL);
+ g_option_group_add_entries (a_group, error_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_error_pre_callback, zenity_error_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds info option entries */
+ a_group = g_option_group_new (
+ "info", N_ ("Info options"), N_ ("Show info options"), NULL, NULL);
+ g_option_group_add_entries (a_group, info_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_info_pre_callback, zenity_info_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds file selection option entries */
+ a_group = g_option_group_new ("file-selection",
+ N_ ("File selection options"),
+ N_ ("Show file selection options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, file_selection_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_file_pre_callback, zenity_file_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds list option entries */
+ a_group = g_option_group_new (
+ "list", N_ ("List options"), N_ ("Show list options"), NULL, NULL);
+ g_option_group_add_entries (a_group, list_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_list_pre_callback, zenity_list_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+#ifdef HAVE_LIBNOTIFY
+ /* Adds notification option entries */
+ a_group = g_option_group_new ("notification",
+ N_ ("Notification icon options"),
+ N_ ("Show notification icon options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, notification_options);
+ g_option_group_set_parse_hooks (a_group,
+ zenity_notification_pre_callback,
+ zenity_notification_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
#endif
-
- /* Adds progress option entries */
- a_group = g_option_group_new("progress",
- N_("Progress options"),
- N_("Show progress options"), NULL, NULL);
- g_option_group_add_entries(a_group, progress_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_progress_pre_callback, zenity_progress_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds question option entries */
- a_group = g_option_group_new("question",
- N_("Question options"),
- N_("Show question options"), NULL, NULL);
- g_option_group_add_entries(a_group, question_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_question_pre_callback, zenity_question_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds warning option entries */
- a_group = g_option_group_new("warning",
- N_("Warning options"),
- N_("Show warning options"), NULL, NULL);
- g_option_group_add_entries(a_group, warning_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_warning_pre_callback, zenity_warning_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds scale option entries */
- a_group = g_option_group_new("scale",
- N_("Scale options"),
- N_("Show scale options"), NULL, NULL);
- g_option_group_add_entries(a_group, scale_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_scale_pre_callback, zenity_scale_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds text option entries */
- a_group = g_option_group_new("text-info",
- N_("Text information options"),
- N_("Show text information options"), NULL, NULL);
- g_option_group_add_entries(a_group, text_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_text_pre_callback, zenity_text_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds color selection option entries */
- a_group = g_option_group_new("color-selection",
- N_("Color selection options"),
- N_("Show color selection options"), NULL, NULL);
- g_option_group_add_entries(a_group, color_selection_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_color_pre_callback, zenity_color_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds password dialog option entries */
- a_group = g_option_group_new("password",
- N_("Password dialog options"),
- N_("Show password dialog options"), NULL, NULL);
- g_option_group_add_entries (a_group, password_dialog_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_password_pre_callback, zenity_password_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds forms dialog option entries */
- a_group = g_option_group_new("forms",
- N_("Forms dialog options"),
- N_("Show forms dialog options"), NULL, NULL);
- g_option_group_add_entries (a_group, forms_dialog_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_forms_pre_callback, zenity_forms_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds misc option entries */
- a_group = g_option_group_new("misc",
- N_("Miscellaneous options"),
- N_("Show miscellaneous options"), NULL, NULL);
- g_option_group_add_entries(a_group, miscellaneous_options);
- g_option_group_set_parse_hooks (a_group,
- zenity_misc_pre_callback, zenity_misc_post_callback);
- g_option_group_set_error_hook (a_group, zenity_option_error_callback);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Adds gtk option entries */
- a_group = gtk_get_option_group(TRUE);
- g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
- g_option_context_add_group(tmp_ctx, a_group);
-
- /* Enable help options */
- g_option_context_set_help_enabled (tmp_ctx, TRUE);
- g_option_context_set_ignore_unknown_options (tmp_ctx, FALSE);
-
- return tmp_ctx;
+
+ /* Adds progress option entries */
+ a_group = g_option_group_new ("progress",
+ N_ ("Progress options"),
+ N_ ("Show progress options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, progress_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_progress_pre_callback, zenity_progress_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds question option entries */
+ a_group = g_option_group_new ("question",
+ N_ ("Question options"),
+ N_ ("Show question options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, question_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_question_pre_callback, zenity_question_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds warning option entries */
+ a_group = g_option_group_new ("warning",
+ N_ ("Warning options"),
+ N_ ("Show warning options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, warning_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_warning_pre_callback, zenity_warning_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds scale option entries */
+ a_group = g_option_group_new (
+ "scale", N_ ("Scale options"), N_ ("Show scale options"), NULL, NULL);
+ g_option_group_add_entries (a_group, scale_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_scale_pre_callback, zenity_scale_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds text option entries */
+ a_group = g_option_group_new ("text-info",
+ N_ ("Text information options"),
+ N_ ("Show text information options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, text_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_text_pre_callback, zenity_text_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds color selection option entries */
+ a_group = g_option_group_new ("color-selection",
+ N_ ("Color selection options"),
+ N_ ("Show color selection options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, color_selection_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_color_pre_callback, zenity_color_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds password dialog option entries */
+ a_group = g_option_group_new ("password",
+ N_ ("Password dialog options"),
+ N_ ("Show password dialog options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, password_dialog_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_password_pre_callback, zenity_password_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds forms dialog option entries */
+ a_group = g_option_group_new ("forms",
+ N_ ("Forms dialog options"),
+ N_ ("Show forms dialog options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, forms_dialog_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_forms_pre_callback, zenity_forms_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds misc option entries */
+ a_group = g_option_group_new ("misc",
+ N_ ("Miscellaneous options"),
+ N_ ("Show miscellaneous options"),
+ NULL,
+ NULL);
+ g_option_group_add_entries (a_group, miscellaneous_options);
+ g_option_group_set_parse_hooks (
+ a_group, zenity_misc_pre_callback, zenity_misc_post_callback);
+ g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Adds gtk option entries */
+ a_group = gtk_get_option_group (TRUE);
+ g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+ g_option_context_add_group (tmp_ctx, a_group);
+
+ /* Enable help options */
+ g_option_context_set_help_enabled (tmp_ctx, TRUE);
+ g_option_context_set_ignore_unknown_options (tmp_ctx, FALSE);
+
+ return tmp_ctx;
}
void
-zenity_option_error (gchar *string, ZenityError error)
-{
- switch (error) {
- case ERROR_SYNTAX:
- g_printerr (_("This option is not available. Please see --help for all possible usages.\n"));
- zenity_option_free ();
- exit (-1);
- case ERROR_SUPPORT:
- g_printerr (_("--%s is not supported for this dialog\n"), string);
- zenity_option_free ();
- exit (-1);
- case ERROR_DIALOG:
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_option_free ();
- exit (-1);
- default:
- return;
- }
+zenity_option_error (gchar *string, ZenityError error) {
+ switch (error) {
+ case ERROR_SYNTAX:
+ g_printerr (_ ("This option is not available. Please see --help "
+ "for all possible usages.\n"));
+ zenity_option_free ();
+ exit (-1);
+ case ERROR_SUPPORT:
+ g_printerr (_ ("--%s is not supported for this dialog\n"), string);
+ zenity_option_free ();
+ exit (-1);
+ case ERROR_DIALOG:
+ g_printerr (_ ("Two or more dialog options specified\n"));
+ zenity_option_free ();
+ exit (-1);
+ default:
+ return;
+ }
}
ZenityParsingOptions *
-zenity_option_parse (gint argc, gchar **argv)
-{
- GError *error = NULL;
-
- zenity_option_init ();
-
- ctx = zenity_create_context ();
-
- g_option_context_parse (ctx, &argc, &argv, &error);
-
- /* Some option pointer a shared among more than one group and don't
- have their post condition tested. This test is done here. */
-
- if (zenity_general_dialog_text)
- if (results->mode == MODE_ABOUT || results->mode == MODE_VERSION)
- zenity_option_error (zenity_option_get_name (calendar_options, &zenity_general_dialog_text), ERROR_SUPPORT);
-
- if (strcmp (zenity_general_separator, "|") != 0)
- if (results->mode != MODE_LIST && results->mode != MODE_FILE && results->mode != MODE_FORMS)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_general_separator), ERROR_SUPPORT);
-
- if (zenity_general_multiple)
- if (results->mode != MODE_FILE && results->mode != MODE_LIST)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_general_multiple), ERROR_SUPPORT);
-
- if (zenity_general_editable)
- if (results->mode != MODE_TEXTINFO && results->mode != MODE_LIST)
- zenity_option_error (zenity_option_get_name (list_options, &zenity_general_editable), ERROR_SUPPORT);
-
- if (zenity_general_uri)
- if (results->mode != MODE_FILE && results->mode != MODE_TEXTINFO)
- zenity_option_error (zenity_option_get_name (text_options, &zenity_general_uri), ERROR_SUPPORT);
-
- if (zenity_general_ok_button)
- if(results->mode == MODE_FILE)
- zenity_option_error (zenity_option_get_name (general_options, &zenity_general_ok_button), ERROR_SUPPORT);
-
- if (zenity_general_cancel_button)
- if(results->mode == MODE_FILE || results->mode == MODE_ERROR || results->mode == MODE_WARNING || results->mode == MODE_INFO)
- zenity_option_error (zenity_option_get_name (general_options, &zenity_general_cancel_button), ERROR_SUPPORT);
-
- if (zenity_general_dialog_no_wrap)
- if (results->mode != MODE_INFO && results->mode != MODE_ERROR && results->mode != MODE_QUESTION && results->mode != MODE_WARNING && results->mode != MODE_TEXTINFO)
- zenity_option_error (zenity_option_get_name (text_options, &zenity_general_dialog_no_wrap), ERROR_SUPPORT);
-
- if (zenity_general_dialog_ellipsize)
- if (results->mode != MODE_INFO && results->mode != MODE_ERROR && results->mode != MODE_QUESTION && results->mode != MODE_WARNING)
- zenity_option_error (zenity_option_get_name (text_options, &zenity_general_dialog_ellipsize), ERROR_SUPPORT);
-
-
- return results;
+zenity_option_parse (gint argc, gchar **argv) {
+ GError *error = NULL;
+
+ zenity_option_init ();
+
+ ctx = zenity_create_context ();
+
+ g_option_context_parse (ctx, &argc, &argv, &error);
+
+ /* Some option pointer a shared among more than one group and don't
+ have their post condition tested. This test is done here. */
+
+ if (zenity_general_dialog_text)
+ if (results->mode == MODE_ABOUT || results->mode == MODE_VERSION)
+ zenity_option_error (zenity_option_get_name (calendar_options,
+ &zenity_general_dialog_text),
+ ERROR_SUPPORT);
+
+ if (strcmp (zenity_general_separator, "|") != 0)
+ if (results->mode != MODE_LIST && results->mode != MODE_FILE &&
+ results->mode != MODE_FORMS)
+ zenity_option_error (zenity_option_get_name (
+ list_options, &zenity_general_separator),
+ ERROR_SUPPORT);
+
+ if (zenity_general_multiple)
+ if (results->mode != MODE_FILE && results->mode != MODE_LIST)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_general_multiple),
+ ERROR_SUPPORT);
+
+ if (zenity_general_editable)
+ if (results->mode != MODE_TEXTINFO && results->mode != MODE_LIST)
+ zenity_option_error (
+ zenity_option_get_name (list_options, &zenity_general_editable),
+ ERROR_SUPPORT);
+
+ if (zenity_general_uri)
+ if (results->mode != MODE_FILE && results->mode != MODE_TEXTINFO)
+ zenity_option_error (
+ zenity_option_get_name (text_options, &zenity_general_uri),
+ ERROR_SUPPORT);
+
+ if (zenity_general_ok_button)
+ if (results->mode == MODE_FILE)
+ zenity_option_error (zenity_option_get_name (general_options,
+ &zenity_general_ok_button),
+ ERROR_SUPPORT);
+
+ if (zenity_general_cancel_button)
+ if (results->mode == MODE_FILE || results->mode == MODE_ERROR ||
+ results->mode == MODE_WARNING || results->mode == MODE_INFO)
+ zenity_option_error (zenity_option_get_name (general_options,
+ &zenity_general_cancel_button),
+ ERROR_SUPPORT);
+
+ if (zenity_general_dialog_no_wrap)
+ if (results->mode != MODE_INFO && results->mode != MODE_ERROR &&
+ results->mode != MODE_QUESTION && results->mode != MODE_WARNING &&
+ results->mode != MODE_TEXTINFO)
+ zenity_option_error (zenity_option_get_name (text_options,
+ &zenity_general_dialog_no_wrap),
+ ERROR_SUPPORT);
+
+ if (zenity_general_dialog_ellipsize)
+ if (results->mode != MODE_INFO && results->mode != MODE_ERROR &&
+ results->mode != MODE_QUESTION && results->mode != MODE_WARNING)
+ zenity_option_error (zenity_option_get_name (text_options,
+ &zenity_general_dialog_ellipsize),
+ ERROR_SUPPORT);
+
+ return results;
}
diff --git a/src/option.h b/src/option.h
index d77c5631..b495e0e7 100644
--- a/src/option.h
+++ b/src/option.h
@@ -31,61 +31,59 @@
#endif
typedef enum {
- MODE_CALENDAR,
- MODE_ENTRY,
- MODE_ERROR,
- MODE_FILE,
- MODE_LIST,
- MODE_PROGRESS,
- MODE_QUESTION,
- MODE_TEXTINFO,
- MODE_WARNING,
- MODE_SCALE,
- MODE_INFO,
+ MODE_CALENDAR,
+ MODE_ENTRY,
+ MODE_ERROR,
+ MODE_FILE,
+ MODE_LIST,
+ MODE_PROGRESS,
+ MODE_QUESTION,
+ MODE_TEXTINFO,
+ MODE_WARNING,
+ MODE_SCALE,
+ MODE_INFO,
#ifdef HAVE_LIBNOTIFY
- MODE_NOTIFICATION,
+ MODE_NOTIFICATION,
#endif
- MODE_COLOR,
- MODE_PASSWORD,
- MODE_FORMS,
- MODE_ABOUT,
- MODE_VERSION,
- MODE_LAST
+ MODE_COLOR,
+ MODE_PASSWORD,
+ MODE_FORMS,
+ MODE_ABOUT,
+ MODE_VERSION,
+ MODE_LAST
} ZenityDialogMode;
typedef enum {
- ERROR_SYNTAX,
- ERROR_SUPPORT,
- ERROR_DIALOG,
- ERROR_LAST
+ ERROR_SYNTAX,
+ ERROR_SUPPORT,
+ ERROR_DIALOG,
+ ERROR_LAST
} ZenityError;
typedef struct {
- ZenityDialogMode mode;
- ZenityData *data;
+ ZenityDialogMode mode;
+ ZenityData *data;
- ZenityCalendarData *calendar_data;
- ZenityMsgData *msg_data;
- ZenityScaleData *scale_data;
- ZenityFileData *file_data;
- ZenityEntryData *entry_data;
- ZenityProgressData *progress_data;
- ZenityTextData *text_data;
- ZenityTreeData *tree_data;
+ ZenityCalendarData *calendar_data;
+ ZenityMsgData *msg_data;
+ ZenityScaleData *scale_data;
+ ZenityFileData *file_data;
+ ZenityEntryData *entry_data;
+ ZenityProgressData *progress_data;
+ ZenityTextData *text_data;
+ ZenityTreeData *tree_data;
#ifdef HAVE_LIBNOTIFY
- ZenityNotificationData *notification_data;
+ ZenityNotificationData *notification_data;
#endif
- ZenityColorData *color_data;
- ZenityPasswordData *password_data;
- ZenityFormsData *forms_data;
+ ZenityColorData *color_data;
+ ZenityPasswordData *password_data;
+ ZenityFormsData *forms_data;
} ZenityParsingOptions;
-void zenity_option_error (gchar *string,
- ZenityError error);
+void zenity_option_error (gchar *string, ZenityError error);
-ZenityParsingOptions * zenity_option_parse (gint argc,
- gchar **argv);
+ZenityParsingOptions *zenity_option_parse (gint argc, gchar **argv);
-void zenity_option_free (void);
+void zenity_option_free (void);
#endif /* OPTION_H */
diff --git a/src/password.c b/src/password.c
index d8f492f6..44a2a204 100644
--- a/src/password.c
+++ b/src/password.c
@@ -22,168 +22,152 @@
*/
#include "config.h"
-#include <string.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
+#include <string.h>
static ZenityData *zen_data;
-static void zenity_password_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void zenity_password_dialog (ZenityData *data, ZenityPasswordData *password_data)
-{
- GtkWidget *dialog;
- GtkWidget *image;
- GtkWidget *hbox;
- GtkWidget *vbox_labels;
- GtkWidget *vbox_entries;
- GtkWidget *label;
-
- zen_data = data;
-
- dialog = gtk_dialog_new ();
-
- 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++;
- }
- }
-
- gtk_dialog_add_button(GTK_DIALOG(dialog),
- data->cancel_label != NULL ? data->cancel_label : _("_Cancel"),
- GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button(GTK_DIALOG(dialog),
- data->ok_label != NULL ? data->ok_label : _("_OK"),
- GTK_RESPONSE_OK);
-
- image = gtk_image_new_from_icon_name("dialog-password",
- GTK_ICON_SIZE_DIALOG);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog),
- GTK_RESPONSE_OK);
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
- gtk_box_pack_start(GTK_BOX(hbox),
- image,
- FALSE,
- FALSE,
- 12);
-
- /* Checks if username has been passed as a parameter */
- gchar *title_text = N_("Type your password");
-
- if(password_data->username)
- title_text = N_("Type your username and password");
-
- label = gtk_label_new(title_text);
-
- gtk_box_pack_start(GTK_BOX(hbox),
- label,
- FALSE,
- FALSE,
- 12);
- gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),
- hbox,
- FALSE,
- TRUE,
- 5);
-
- vbox_labels = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
- vbox_entries = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
- gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),
- hbox,
- FALSE,
- TRUE,
- 5);
-
- gtk_box_pack_start(GTK_BOX(hbox),
- vbox_labels,
- FALSE,
- TRUE,
- 12);
- gtk_box_pack_start(GTK_BOX(hbox),
- vbox_entries,
- TRUE,
- TRUE,
- 12);
-
- if(password_data->username) {
- label = gtk_label_new(_("Username:"));
- gtk_box_pack_start(GTK_BOX(vbox_labels),
- label,
- TRUE,
- FALSE,
- 12);
- password_data->entry_username = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(vbox_entries),
- password_data->entry_username,
- TRUE,
- TRUE,
- 12);
- }
-
- label = gtk_label_new(_("Password:"));
- gtk_box_pack_start(GTK_BOX(vbox_labels),
- label,
- TRUE,
- FALSE,
- 12);
- password_data->entry_password = gtk_entry_new();
- gtk_entry_set_visibility(GTK_ENTRY(password_data->entry_password),
- FALSE);
- gtk_entry_set_activates_default (GTK_ENTRY(password_data->entry_password),
- TRUE);
- gtk_box_pack_start(GTK_BOX(vbox_entries),
- password_data->entry_password,
- TRUE,
- TRUE,
- 12);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- if (data->modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_password_dialog_response),
- password_data);
- gtk_widget_show_all(GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dialog))));
- zenity_util_show_dialog (dialog, data->attach);
-
- if (data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay,
- (GSourceFunc) zenity_util_timeout_handle,
- dialog);
- }
- gtk_main();
+static void zenity_password_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_password_dialog (ZenityData *data, ZenityPasswordData *password_data) {
+ GtkWidget *dialog;
+ GtkWidget *image;
+ GtkWidget *hbox;
+ GtkWidget *vbox_labels;
+ GtkWidget *vbox_entries;
+ GtkWidget *label;
+
+ zen_data = data;
+
+ dialog = gtk_dialog_new ();
+
+ 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++;
+ }
+ }
+
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ data->cancel_label != NULL ? data->cancel_label : _ ("_Cancel"),
+ GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button (GTK_DIALOG (dialog),
+ data->ok_label != NULL ? data->ok_label : _ ("_OK"),
+ GTK_RESPONSE_OK);
+
+ image =
+ gtk_image_new_from_icon_name ("dialog-password", GTK_ICON_SIZE_DIALOG);
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 12);
+
+ /* Checks if username has been passed as a parameter */
+ gchar *title_text = N_ ("Type your password");
+
+ if (password_data->username)
+ title_text = N_ ("Type your username and password");
+
+ label = gtk_label_new (title_text);
+
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 12);
+ gtk_box_pack_start (
+ GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+ hbox,
+ FALSE,
+ TRUE,
+ 5);
+
+ vbox_labels = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+ vbox_entries = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+ gtk_box_pack_start (
+ GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+ hbox,
+ FALSE,
+ TRUE,
+ 5);
+
+ gtk_box_pack_start (GTK_BOX (hbox), vbox_labels, FALSE, TRUE, 12);
+ gtk_box_pack_start (GTK_BOX (hbox), vbox_entries, TRUE, TRUE, 12);
+
+ if (password_data->username) {
+ label = gtk_label_new (_ ("Username:"));
+ gtk_box_pack_start (GTK_BOX (vbox_labels), label, TRUE, FALSE, 12);
+ password_data->entry_username = gtk_entry_new ();
+ gtk_box_pack_start (GTK_BOX (vbox_entries),
+ password_data->entry_username,
+ TRUE,
+ TRUE,
+ 12);
+ }
+
+ label = gtk_label_new (_ ("Password:"));
+ gtk_box_pack_start (GTK_BOX (vbox_labels), label, TRUE, FALSE, 12);
+ password_data->entry_password = gtk_entry_new ();
+ gtk_entry_set_visibility (GTK_ENTRY (password_data->entry_password), FALSE);
+ gtk_entry_set_activates_default (
+ GTK_ENTRY (password_data->entry_password), TRUE);
+ gtk_box_pack_start (
+ GTK_BOX (vbox_entries), password_data->entry_password, TRUE, TRUE, 12);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ if (data->modal)
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_password_dialog_response),
+ password_data);
+ gtk_widget_show_all (
+ GTK_WIDGET (gtk_dialog_get_content_area (GTK_DIALOG (dialog))));
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+ gtk_main ();
}
static void
-zenity_password_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityPasswordData *password_data = (ZenityPasswordData *) data;
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- if (password_data->username)
- g_print("%s|%s\n", gtk_entry_get_text (GTK_ENTRY(password_data->entry_username)), gtk_entry_get_text (GTK_ENTRY(password_data->entry_password)));
- else
- g_print ("%s\n", gtk_entry_get_text (GTK_ENTRY(password_data->entry_password)));
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
-
- gtk_main_quit ();
+zenity_password_dialog_response (
+ GtkWidget *widget, int response, gpointer data) {
+ ZenityPasswordData *password_data = (ZenityPasswordData *) data;
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ if (password_data->username)
+ g_print ("%s|%s\n",
+ gtk_entry_get_text (
+ GTK_ENTRY (password_data->entry_username)),
+ gtk_entry_get_text (
+ GTK_ENTRY (password_data->entry_password)));
+ else
+ g_print ("%s\n",
+ gtk_entry_get_text (
+ GTK_ENTRY (password_data->entry_password)));
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+
+ gtk_main_quit ();
}
diff --git a/src/progress.c b/src/progress.c
index 4995c5fd..1a5a68fd 100644
--- a/src/progress.c
+++ b/src/progress.c
@@ -23,15 +23,15 @@
#include "config.h"
+#include "util.h"
+#include "zenity.h"
+#include <signal.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/types.h>
-#include <unistd.h>
-#include <signal.h>
#include <time.h>
-#include "zenity.h"
-#include "util.h"
+#include <unistd.h>
static GtkBuilder *builder;
static ZenityData *zen_data;
@@ -45,358 +45,385 @@ static gboolean auto_close;
gint zenity_progress_timeout (gpointer data);
gint zenity_progress_pulsate_timeout (gpointer data);
-static void zenity_progress_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_progress_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
static gboolean
-zenity_progress_pulsate_progress_bar (gpointer user_data)
-{
- gtk_progress_bar_pulse (GTK_PROGRESS_BAR (user_data));
- return TRUE;
+zenity_progress_pulsate_progress_bar (gpointer user_data) {
+ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (user_data));
+ return TRUE;
}
static void
-zenity_progress_pulsate_stop (void)
-{
- if (pulsate_timeout > 0) {
- g_source_remove (pulsate_timeout);
- pulsate_timeout = -1;
- }
+zenity_progress_pulsate_stop (void) {
+ if (pulsate_timeout > 0) {
+ g_source_remove (pulsate_timeout);
+ pulsate_timeout = -1;
+ }
}
static void
-zenity_progress_pulsate_start (GObject *progress_bar)
-{
- if (pulsate_timeout == -1) {
- pulsate_timeout = g_timeout_add (100,
- zenity_progress_pulsate_progress_bar,
- progress_bar);
- }
+zenity_progress_pulsate_start (GObject *progress_bar) {
+ if (pulsate_timeout == -1) {
+ pulsate_timeout = g_timeout_add (
+ 100, zenity_progress_pulsate_progress_bar, progress_bar);
+ }
}
static void
-zenity_progress_update_time_remaining (ZenityProgressData *progress_data)
-{
- static GObject *progress_time = NULL;
- static time_t start_time = (time_t)(-1);
- float percentage = progress_data->percentage;
-
- if (progress_time == NULL)
- progress_time = gtk_builder_get_object (builder, "zenity_progress_time");
- if (start_time == (time_t)(-1) || percentage <= 0.0 || percentage >= 100.0) {
- start_time = time(NULL);
- gtk_label_set_text (GTK_LABEL (progress_time), "");
- } else {
- time_t current_time = time (NULL);
- time_t elapsed_time = current_time - start_time;
- time_t total_time = (time_t) (100.0*elapsed_time/progress_data->percentage);
- time_t remaining_time = total_time - elapsed_time;
- gulong hours, minutes, seconds;
- gchar *remaining_message;
-
- seconds = (gulong) (remaining_time%60);
- remaining_time /= 60;
- minutes = (gulong) (remaining_time%60);
- remaining_time /= 60;
- hours = (gulong) remaining_time;
-
- remaining_message = g_strdup_printf (_("Time remaining: %lu:%02lu:%02lu"),
- hours, minutes, seconds);
- gtk_label_set_text (GTK_LABEL (progress_time), remaining_message);
- g_free (remaining_message);
- }
+zenity_progress_update_time_remaining (ZenityProgressData *progress_data) {
+ static GObject *progress_time = NULL;
+ static time_t start_time = (time_t) (-1);
+ float percentage = progress_data->percentage;
+
+ if (progress_time == NULL)
+ progress_time =
+ gtk_builder_get_object (builder, "zenity_progress_time");
+ if (start_time == (time_t) (-1) || percentage <= 0.0 ||
+ percentage >= 100.0) {
+ start_time = time (NULL);
+ gtk_label_set_text (GTK_LABEL (progress_time), "");
+ } else {
+ time_t current_time = time (NULL);
+ time_t elapsed_time = current_time - start_time;
+ time_t total_time =
+ (time_t) (100.0 * elapsed_time / progress_data->percentage);
+ time_t remaining_time = total_time - elapsed_time;
+ gulong hours, minutes, seconds;
+ gchar *remaining_message;
+
+ seconds = (gulong) (remaining_time % 60);
+ remaining_time /= 60;
+ minutes = (gulong) (remaining_time % 60);
+ remaining_time /= 60;
+ hours = (gulong) remaining_time;
+
+ remaining_message = g_strdup_printf (
+ _ ("Time remaining: %lu:%02lu:%02lu"), hours, minutes, seconds);
+ gtk_label_set_text (GTK_LABEL (progress_time), remaining_message);
+ g_free (remaining_message);
+ }
}
static gboolean
-zenity_progress_handle_stdin (GIOChannel *channel,
- GIOCondition condition,
- gpointer data)
-{
- static ZenityProgressData *progress_data;
- static GObject *progress_bar;
- static GObject *progress_label;
- float percentage = 0.0;
- GIOStatus status = G_IO_STATUS_NORMAL;
-
- progress_data = (ZenityProgressData *) data;
- progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
- progress_label = gtk_builder_get_object (builder, "zenity_progress_text");
-
- if ((condition & G_IO_IN) != 0) {
- GString *string;
- GError *error = NULL;
-
- string = g_string_new (NULL);
-
- while (channel->is_readable != TRUE)
- ;
- do {
- do {
- status = g_io_channel_read_line_string (channel, string, NULL, &error);
-
- while (gtk_events_pending ())
- gtk_main_iteration ();
-
- } while (status == G_IO_STATUS_AGAIN);
-
- if (status != G_IO_STATUS_NORMAL) {
- if (error) {
- g_warning ("zenity_progress_handle_stdin () : %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- continue;
- }
-
- if (!g_ascii_strncasecmp (string->str, "#", 1)) {
- gchar *match;
-
- /* We have a comment, so let's try to change the label */
- match = g_strstr_len (string->str, strlen (string->str), "#");
- match++;
- gtk_label_set_text (GTK_LABEL (progress_label), g_strcompress(g_strchomp (g_strchug (match))));
-
- } else if (g_str_has_prefix (string->str, "pulsate")) {
- gchar *colon, *command, *value;
-
- zenity_util_strip_newline (string->str);
-
- colon = strchr(string->str, ':');
- if (colon == NULL) {
- continue;
- }
-
- /* split off the command and value */
- command = g_strstrip (g_strndup (string->str, colon - string->str));
-
- value = colon + 1;
- while (*value && g_ascii_isspace (*value)) value++;
-
- if (!g_ascii_strcasecmp (value, "false")) {
- zenity_progress_pulsate_stop ();
-
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
- progress_data->percentage / 100.0);
- } else {
- zenity_progress_pulsate_start (progress_bar);
- }
-
- g_free (command);
- } else {
-
- if (!g_ascii_isdigit (*(string->str)))
- continue;
-
- /* Now try to convert the thing to a number */
- percentage = CLAMP(atoi (string->str), 0, 100);
-
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
- percentage / 100.0);
-
- progress_data->percentage = percentage;
-
- if (progress_data->time_remaining == TRUE)
- zenity_progress_update_time_remaining (progress_data);
+zenity_progress_handle_stdin (
+ GIOChannel *channel, GIOCondition condition, gpointer data) {
+ static ZenityProgressData *progress_data;
+ static GObject *progress_bar;
+ static GObject *progress_label;
+ float percentage = 0.0;
+ GIOStatus status = G_IO_STATUS_NORMAL;
+
+ progress_data = (ZenityProgressData *) data;
+ progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
+ progress_label = gtk_builder_get_object (builder, "zenity_progress_text");
+
+ if ((condition & G_IO_IN) != 0) {
+ GString *string;
+ GError *error = NULL;
+
+ string = g_string_new (NULL);
+
+ while (channel->is_readable != TRUE)
+ ;
+ do {
+ do {
+ status = g_io_channel_read_line_string (
+ channel, string, NULL, &error);
+
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+
+ } while (status == G_IO_STATUS_AGAIN);
+
+ if (status != G_IO_STATUS_NORMAL) {
+ if (error) {
+ g_warning (
+ "zenity_progress_handle_stdin () : %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ continue;
+ }
+
+ if (!g_ascii_strncasecmp (string->str, "#", 1)) {
+ gchar *match;
- if (percentage == 100) {
- GObject *button;
+ /* We have a comment, so let's try to change the label */
+ match = g_strstr_len (string->str, strlen (string->str), "#");
+ match++;
+ gtk_label_set_text (GTK_LABEL (progress_label),
+ g_strcompress (g_strchomp (g_strchug (match))));
+
+ } else if (g_str_has_prefix (string->str, "pulsate")) {
+ gchar *colon, *command, *value;
+
+ zenity_util_strip_newline (string->str);
+
+ colon = strchr (string->str, ':');
+ if (colon == NULL) {
+ continue;
+ }
+
+ /* split off the command and value */
+ command =
+ g_strstrip (g_strndup (string->str, colon - string->str));
+
+ value = colon + 1;
+ while (*value && g_ascii_isspace (*value))
+ value++;
+
+ if (!g_ascii_strcasecmp (value, "false")) {
+ zenity_progress_pulsate_stop ();
+
+ gtk_progress_bar_set_fraction (
+ GTK_PROGRESS_BAR (progress_bar),
+ progress_data->percentage / 100.0);
+ } else {
+ zenity_progress_pulsate_start (progress_bar);
+ }
+
+ g_free (command);
+ } else {
+
+ if (!g_ascii_isdigit (*(string->str)))
+ continue;
+
+ /* Now try to convert the thing to a number */
+ percentage = CLAMP (atoi (string->str), 0, 100);
+
+ gtk_progress_bar_set_fraction (
+ GTK_PROGRESS_BAR (progress_bar), percentage / 100.0);
+
+ progress_data->percentage = percentage;
+
+ if (progress_data->time_remaining == TRUE)
+ zenity_progress_update_time_remaining (progress_data);
+
+ if (percentage == 100) {
+ GObject *button;
+
+ button = gtk_builder_get_object (
+ builder, "zenity_progress_ok_button");
+ gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE);
+ gtk_widget_grab_focus (GTK_WIDGET (button));
+
+ if (progress_data->autoclose) {
+ zen_data->exit_code =
+ zenity_util_return_exit_code (ZENITY_OK);
+ gtk_main_quit ();
+ }
+ }
+ }
- button = gtk_builder_get_object(builder, "zenity_progress_ok_button");
- gtk_widget_set_sensitive(GTK_WIDGET (button), TRUE);
- gtk_widget_grab_focus(GTK_WIDGET (button));
+ } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) ==
+ G_IO_IN &&
+ status != G_IO_STATUS_EOF);
+ g_string_free (string, TRUE);
+ }
- if (progress_data->autoclose) {
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- gtk_main_quit();
- }
- }
- }
+ if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
+ /* We assume that we are done, so stop the pulsating and de-sensitize
+ * the buttons */
+ GtkWidget *button;
- } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) == G_IO_IN && status != G_IO_STATUS_EOF);
- g_string_free (string, TRUE);
- }
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_progress_ok_button"));
+ gtk_widget_set_sensitive (button, TRUE);
+ gtk_widget_grab_focus (button);
- if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
- /* We assume that we are done, so stop the pulsating and de-sensitize the buttons */
- GtkWidget *button;
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_progress_cancel_button"));
- button = GTK_WIDGET (gtk_builder_get_object (builder,
- "zenity_progress_ok_button"));
- gtk_widget_set_sensitive (button, TRUE);
- gtk_widget_grab_focus (button);
+ gtk_widget_set_sensitive (button, FALSE);
+
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0);
- button = GTK_WIDGET (gtk_builder_get_object (builder,
- "zenity_progress_cancel_button"));
+ zenity_progress_pulsate_stop ();
- gtk_widget_set_sensitive (button, FALSE);
+ g_object_unref (builder);
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0);
+ if (progress_data->autoclose) {
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+ gtk_main_quit ();
+ }
- zenity_progress_pulsate_stop ();
-
- g_object_unref (builder);
-
- if (progress_data->autoclose) {
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- gtk_main_quit();
- }
-
- g_io_channel_shutdown (channel, TRUE, NULL);
- return FALSE;
- }
- return TRUE;
+ g_io_channel_shutdown (channel, TRUE, NULL);
+ return FALSE;
+ }
+ return TRUE;
}
static void
-zenity_progress_read_info (ZenityProgressData *progress_data)
-{
- channel = g_io_channel_unix_new (0);
- g_io_channel_set_encoding (channel, NULL, NULL);
- g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
- g_io_add_watch (channel, G_IO_IN | G_IO_HUP, zenity_progress_handle_stdin, progress_data);
- /* We need to check the pulsate state here, because, the g_io_add_watch
- doesn't call the zenity_progress_handle_stdin function if there's no
- input. This fix the Bug 567663 */
- if (progress_data->pulsate) {
- GObject *progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
- zenity_progress_pulsate_start (progress_bar);
- }
+zenity_progress_read_info (ZenityProgressData *progress_data) {
+ channel = g_io_channel_unix_new (0);
+ g_io_channel_set_encoding (channel, NULL, NULL);
+ g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+ g_io_add_watch (channel,
+ G_IO_IN | G_IO_HUP,
+ zenity_progress_handle_stdin,
+ progress_data);
+ /* We need to check the pulsate state here, because, the g_io_add_watch
+ doesn't call the zenity_progress_handle_stdin function if there's no
+ input. This fix the Bug 567663 */
+ if (progress_data->pulsate) {
+ GObject *progress_bar =
+ gtk_builder_get_object (builder, "zenity_progress_bar");
+ zenity_progress_pulsate_start (progress_bar);
+ }
}
static void
-zenity_text_size_allocate (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
-{
- gtk_widget_set_size_request (widget, allocation->width/2, -1);
+zenity_text_size_allocate (
+ GtkWidget *widget, GtkAllocation *allocation, gpointer data) {
+ gtk_widget_set_size_request (widget, allocation->width / 2, -1);
}
void
-zenity_progress (ZenityData *data, ZenityProgressData *progress_data)
-{
- GtkWidget *dialog;
- GtkWidget *button;
- GObject *text;
- GObject *progress_bar;
- GObject *cancel_button,*ok_button;
-
- zen_data = data;
- builder = zenity_util_load_ui_file ("zenity_progress_dialog", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals (builder, NULL);
-
- text = gtk_builder_get_object (builder, "zenity_progress_text");
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder,
- "zenity_progress_dialog"));
-
- progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_progress_dialog_response), data);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-progress.png"));
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- if (data->width > -1) {
- gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
- }
- else {
- g_signal_connect_after (G_OBJECT (text), "size-allocate",
- G_CALLBACK (zenity_text_size_allocate), data);
- g_signal_connect_after (G_OBJECT (progress_bar), "size-allocate",
- G_CALLBACK (zenity_text_size_allocate), 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_progress_ok_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
- }
-
- if (data->cancel_label) {
- button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_progress_cancel_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- }
-
- if (progress_data->dialog_text)
- gtk_label_set_markup (GTK_LABEL (text), g_strcompress (progress_data->dialog_text));
-
- if (progress_data->percentage > -1)
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
- progress_data->percentage/100.0);
-
- autokill = progress_data->autokill;
-
- auto_close = progress_data->autoclose;
- ok_button = gtk_builder_get_object (builder, "zenity_progress_ok_button");
-
- no_cancel = progress_data->no_cancel;
- cancel_button = gtk_builder_get_object (builder, "zenity_progress_cancel_button");
-
- if (no_cancel) {
- gtk_widget_hide (GTK_WIDGET(cancel_button));
- gtk_window_set_deletable (GTK_WINDOW (dialog), FALSE);
- }
-
- if (no_cancel && auto_close)
- gtk_widget_hide(GTK_WIDGET(ok_button));
-
- zenity_util_show_dialog (dialog, data->attach);
- zenity_progress_read_info (progress_data);
-
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, NULL);
- }
-
- gtk_main ();
+zenity_progress (ZenityData *data, ZenityProgressData *progress_data) {
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GObject *text;
+ GObject *progress_bar;
+ GObject *cancel_button, *ok_button;
+
+ zen_data = data;
+ builder = zenity_util_load_ui_file ("zenity_progress_dialog", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ text = gtk_builder_get_object (builder, "zenity_progress_text");
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_progress_dialog"));
+
+ progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_progress_dialog_response),
+ data);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ zenity_util_set_window_icon (dialog,
+ data->window_icon,
+ ZENITY_IMAGE_FULLPATH ("zenity-progress.png"));
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ if (data->width > -1) {
+ gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
+ } else {
+ g_signal_connect_after (G_OBJECT (text),
+ "size-allocate",
+ G_CALLBACK (zenity_text_size_allocate),
+ data);
+ g_signal_connect_after (G_OBJECT (progress_bar),
+ "size-allocate",
+ G_CALLBACK (zenity_text_size_allocate),
+ 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_progress_ok_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+ }
+
+ if (data->cancel_label) {
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_progress_cancel_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ }
+
+ if (progress_data->dialog_text)
+ gtk_label_set_markup (
+ GTK_LABEL (text), g_strcompress (progress_data->dialog_text));
+
+ if (progress_data->percentage > -1)
+ gtk_progress_bar_set_fraction (
+ GTK_PROGRESS_BAR (progress_bar), progress_data->percentage / 100.0);
+
+ autokill = progress_data->autokill;
+
+ auto_close = progress_data->autoclose;
+ ok_button = gtk_builder_get_object (builder, "zenity_progress_ok_button");
+
+ no_cancel = progress_data->no_cancel;
+ cancel_button =
+ gtk_builder_get_object (builder, "zenity_progress_cancel_button");
+
+ if (no_cancel) {
+ gtk_widget_hide (GTK_WIDGET (cancel_button));
+ gtk_window_set_deletable (GTK_WINDOW (dialog), FALSE);
+ }
+
+ if (no_cancel && auto_close)
+ gtk_widget_hide (GTK_WIDGET (ok_button));
+
+ zenity_util_show_dialog (dialog, data->attach);
+ zenity_progress_read_info (progress_data);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ NULL);
+ }
+
+ gtk_main ();
}
static void
-zenity_progress_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- break;
-
- case GTK_RESPONSE_CANCEL:
- /* We do not want to kill the parent process, in order to give the user
- the ability to choose the action to be taken. See bug #310824.
- But we want to give people the option to choose this behavior.
- -- Monday 27, March 2006
- */
- if (autokill) {
- kill (getppid (), 1);
- }
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_util_exit_code_with_data (ZENITY_TIMEOUT, zen_data);
- break;
- default:
- if (zen_data->extra_label && 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;
- }
- gtk_main_quit ();
+zenity_progress_dialog_response (
+ GtkWidget *widget, int response, gpointer data) {
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ /* We do not want to kill the parent process, in order to give the
+ user
+ the ability to choose the action to be taken. See bug #310824.
+ But we want to give people the option to choose this behavior.
+ -- Monday 27, March 2006
+ */
+ if (autokill) {
+ kill (getppid (), 1);
+ }
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_util_exit_code_with_data (ZENITY_TIMEOUT, zen_data);
+ break;
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ gtk_main_quit ();
}
diff --git a/src/scale.c b/src/scale.c
index 3eb5c174..7e6686b3 100644
--- a/src/scale.c
+++ b/src/scale.c
@@ -23,136 +23,151 @@
#include "config.h"
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
static GtkWidget *scale;
static void zenity_scale_value_changed (GtkWidget *widget, gpointer data);
-static void zenity_scale_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void
-zenity_scale (ZenityData *data, ZenityScaleData *scale_data)
-{
- GtkBuilder *builder;
- GtkWidget *dialog;
- GtkWidget *button;
- GObject *text;
-
- builder = zenity_util_load_ui_file ("zenity_scale_dialog", "adjustment1", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_dialog"));
- scale = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_hscale"));
- text = gtk_builder_get_object (builder, "zenity_scale_text");
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_scale_dialog_response), data);
-
- if (scale_data->min_value >= scale_data->max_value) {
- g_printerr (_("Maximum value must be greater than minimum value.\n"));
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- if (scale_data->value < scale_data->min_value ||
- scale_data->value > scale_data->max_value) {
- g_printerr (_("Value out of range.\n"));
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals (builder, NULL);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-scale.png"));
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- 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_scale_ok_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
- }
-
- if (data->cancel_label) {
- button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_cancel_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- }
-
- if (scale_data->dialog_text)
- gtk_label_set_markup (GTK_LABEL (text), g_strcompress (scale_data->dialog_text));
-
- gtk_range_set_range (GTK_RANGE (scale), scale_data->min_value, scale_data->max_value);
- gtk_range_set_value (GTK_RANGE (scale), scale_data->value);
- gtk_range_set_increments (GTK_RANGE (scale), scale_data->step, 0);
-
- if (scale_data->print_partial)
- g_signal_connect (G_OBJECT (scale), "value-changed",
- G_CALLBACK (zenity_scale_value_changed), data);
-
- if (scale_data->hide_value)
- gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
-
- zenity_util_show_dialog (dialog, data->attach);
-
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
-
- g_object_unref (builder);
-
- gtk_main ();
+static void zenity_scale_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_scale (ZenityData *data, ZenityScaleData *scale_data) {
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GObject *text;
+
+ builder =
+ zenity_util_load_ui_file ("zenity_scale_dialog", "adjustment1", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_dialog"));
+ scale =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_hscale"));
+ text = gtk_builder_get_object (builder, "zenity_scale_text");
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_scale_dialog_response),
+ data);
+
+ if (scale_data->min_value >= scale_data->max_value) {
+ g_printerr (_ ("Maximum value must be greater than minimum value.\n"));
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ if (scale_data->value < scale_data->min_value ||
+ scale_data->value > scale_data->max_value) {
+ g_printerr (_ ("Value out of range.\n"));
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ zenity_util_set_window_icon (
+ dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-scale.png"));
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ 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_scale_ok_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+ }
+
+ if (data->cancel_label) {
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_scale_cancel_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ }
+
+ if (scale_data->dialog_text)
+ gtk_label_set_markup (
+ GTK_LABEL (text), g_strcompress (scale_data->dialog_text));
+
+ gtk_range_set_range (
+ GTK_RANGE (scale), scale_data->min_value, scale_data->max_value);
+ gtk_range_set_value (GTK_RANGE (scale), scale_data->value);
+ gtk_range_set_increments (GTK_RANGE (scale), scale_data->step, 0);
+
+ if (scale_data->print_partial)
+ g_signal_connect (G_OBJECT (scale),
+ "value-changed",
+ G_CALLBACK (zenity_scale_value_changed),
+ data);
+
+ if (scale_data->hide_value)
+ gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
+
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ g_object_unref (builder);
+
+ gtk_main ();
}
static void
-zenity_scale_value_changed (GtkWidget *widget, gpointer data)
-{
- g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (widget)));
+zenity_scale_value_changed (GtkWidget *widget, gpointer data) {
+ g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (widget)));
}
static void
-zenity_scale_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data = data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
- gtk_main_quit ();
+zenity_scale_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ gtk_main_quit ();
}
diff --git a/src/text.c b/src/text.c
index 1deecc64..ffe7b35e 100644
--- a/src/text.c
+++ b/src/text.c
@@ -23,375 +23,426 @@
#include "config.h"
-#include <gio/gio.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
+#include <gio/gio.h>
#ifdef HAVE_WEBKITGTK
#include <webkit2/webkit2.h>
#endif
-static ZenityTextData *zen_text_data;
+static ZenityTextData *zen_text_data;
-static void zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_text_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
static void zenity_text_toggle_button (GtkToggleButton *button, gpointer data);
#ifdef HAVE_WEBKITGTK
static void
-zenity_configure_webkit (WebKitWebView *web_view)
-{
- WebKitSettings *settings;
- settings = webkit_web_view_get_settings(web_view);
- g_object_set(G_OBJECT(settings), "auto-load-images", TRUE, NULL);
- /*
- Stick to the defaults
- "cursive-font-family" gchar* : Read / Write / Construct
- "default-encoding" gchar* : Read / Write / Construct
- "default-font-family" gchar* : Read / Write / Construct
- "default-font-size" gint : Read / Write / Construct
- "default-monospace-font-size" gint : Read / Write / Construct
- "editing-behavior" WebKitEditingBehavior : Read / Write / Construct
- */
- g_object_set(G_OBJECT(settings), "enable-caret-browsing", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-developer-extras", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-fullscreen", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-html5-database", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-html5-local-storage", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-java", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-javascript", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-offline-web-application-cache", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-page-cache", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-plugins", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "enable-private-browsing", TRUE, NULL);
- /*
- Stick to defaults
- "enforce-96-dpi" gboolean : Read / Write / Construct
- "fantasy-font-family" gchar* : Read / Write / Construct
- */
- /*
- Stick to defaults
- "minimum-font-size" gint : Read / Write / Construct
- "minimum-logical-font-size" gint : Read / Write / Construct
- "monospace-font-family" gchar* : Read / Write / Construct
- "print-backgrounds" gboolean : Read / Write / Construct
- "resizable-text-areas" gboolean : Read / Write / Construct
- "sans-serif-font-family" gchar* : Read / Write / Construct
- "serif-font-family" gchar* : Read / Write / Construct
- "spell-checking-languages" gchar* : Read / Write / Construct
- */
- g_object_set(G_OBJECT(settings), "enable-tabs-to-links", FALSE, NULL);
- g_object_set(G_OBJECT(settings), "user-agent",
- "Zenity with WebKit (KHTML, like Gecko) support", NULL);
- /*
- Stick to defaults
- "user-stylesheet-uri" gchar* : Read / Write / Construct
- "zoom-step" gfloat : Read / Write / Construct
- */
+zenity_configure_webkit (WebKitWebView *web_view) {
+ WebKitSettings *settings;
+ settings = webkit_web_view_get_settings (web_view);
+ g_object_set (G_OBJECT (settings), "auto-load-images", TRUE, NULL);
+ /*
+ Stick to the defaults
+ "cursive-font-family" gchar* : Read / Write /
+ Construct
+ "default-encoding" gchar* : Read / Write /
+ Construct
+ "default-font-family" gchar* : Read / Write /
+ Construct
+ "default-font-size" gint : Read / Write /
+ Construct
+ "default-monospace-font-size" gint : Read / Write /
+ Construct
+ "editing-behavior" WebKitEditingBehavior : Read / Write /
+ Construct
+ */
+ g_object_set (G_OBJECT (settings), "enable-caret-browsing", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-developer-extras", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-fullscreen", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-html5-database", FALSE, NULL);
+ g_object_set (
+ G_OBJECT (settings), "enable-html5-local-storage", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-java", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-javascript", FALSE, NULL);
+ g_object_set (G_OBJECT (settings),
+ "enable-offline-web-application-cache",
+ FALSE,
+ NULL);
+ g_object_set (G_OBJECT (settings), "enable-page-cache", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-plugins", FALSE, NULL);
+ g_object_set (G_OBJECT (settings), "enable-private-browsing", TRUE, NULL);
+ /*
+ Stick to defaults
+ "enforce-96-dpi" gboolean : Read / Write /
+ Construct
+ "fantasy-font-family" gchar* : Read / Write /
+ Construct
+ */
+ /*
+ Stick to defaults
+ "minimum-font-size" gint : Read / Write /
+ Construct
+ "minimum-logical-font-size" gint : Read / Write /
+ Construct
+ "monospace-font-family" gchar* : Read / Write /
+ Construct
+ "print-backgrounds" gboolean : Read / Write /
+ Construct
+ "resizable-text-areas" gboolean : Read / Write /
+ Construct
+ "sans-serif-font-family" gchar* : Read / Write /
+ Construct
+ "serif-font-family" gchar* : Read / Write /
+ Construct
+ "spell-checking-languages" gchar* : Read / Write /
+ Construct
+ */
+ g_object_set (G_OBJECT (settings), "enable-tabs-to-links", FALSE, NULL);
+ g_object_set (G_OBJECT (settings),
+ "user-agent",
+ "Zenity with WebKit (KHTML, like Gecko) support",
+ NULL);
+ /*
+ Stick to defaults
+ "user-stylesheet-uri" gchar* : Read / Write /
+ Construct
+ "zoom-step" gfloat : Read / Write /
+ Construct
+ */
}
static gboolean
zenity_text_webview_decision_request (WebKitWebView *web_view,
- WebKitPolicyDecision *decision,
- WebKitPolicyDecisionType type)
-{
- if (type == WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) {
- WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
- WebKitNavigationAction *navigation_action = webkit_navigation_policy_decision_get_navigation_action(navigation_decision);
- webkit_policy_decision_ignore (decision);
- if (!zen_text_data->no_interaction &&
- webkit_navigation_action_get_navigation_type (navigation_action) == WEBKIT_NAVIGATION_TYPE_LINK_CLICKED) {
- WebKitURIRequest *request = webkit_navigation_action_get_request(navigation_action);
- g_app_info_launch_default_for_uri (webkit_uri_request_get_uri(request), NULL, NULL);
- }
- }
- return TRUE;
+ WebKitPolicyDecision *decision, WebKitPolicyDecisionType type) {
+ if (type == WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) {
+ WebKitNavigationPolicyDecision *navigation_decision =
+ WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+ WebKitNavigationAction *navigation_action =
+ webkit_navigation_policy_decision_get_navigation_action (
+ navigation_decision);
+ webkit_policy_decision_ignore (decision);
+ if (!zen_text_data->no_interaction &&
+ webkit_navigation_action_get_navigation_type (navigation_action) ==
+ WEBKIT_NAVIGATION_TYPE_LINK_CLICKED) {
+ WebKitURIRequest *request =
+ webkit_navigation_action_get_request (navigation_action);
+ g_app_info_launch_default_for_uri (
+ webkit_uri_request_get_uri (request), NULL, NULL);
+ }
+ }
+ return TRUE;
}
static void
-zenity_text_webview_load_changed (WebKitWebView *webkitwebview,
- WebKitLoadEvent event,
- gpointer user_data)
-{
- if (event == WEBKIT_LOAD_FINISHED) {
- g_signal_connect (G_OBJECT (webkitwebview), "decide-policy",
- G_CALLBACK (zenity_text_webview_decision_request), NULL);
- }
+zenity_text_webview_load_changed (
+ WebKitWebView *webkitwebview, WebKitLoadEvent event, gpointer user_data) {
+ if (event == WEBKIT_LOAD_FINISHED) {
+ g_signal_connect (G_OBJECT (webkitwebview),
+ "decide-policy",
+ G_CALLBACK (zenity_text_webview_decision_request),
+ NULL);
+ }
}
#endif
static gboolean
-zenity_text_handle_stdin (GIOChannel *channel,
- GIOCondition condition,
- gpointer data)
-{
- static GtkTextBuffer *buffer;
- static GtkTextView *text_view;
- gchar buf[1024];
-
- gsize len;
-
- text_view = GTK_TEXT_VIEW (data);
- buffer = gtk_text_view_get_buffer (text_view);
-
- if ((condition & G_IO_IN) || (condition & (G_IO_IN | G_IO_HUP))) {
- GError *error = NULL;
- gint status;
-
- while (channel->is_readable != TRUE)
- ;
-
- do {
- status = g_io_channel_read_chars (channel, buf, 1024, &len, &error);
-
- while (gtk_events_pending ())
- gtk_main_iteration ();
-
- } while (status == G_IO_STATUS_AGAIN);
-
- if (status != G_IO_STATUS_NORMAL) {
- if (error) {
- g_warning ("zenity_text_handle_stdin () : %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- return FALSE;
- }
-
- if (len > 0) {
- GtkTextIter end;
- gchar *utftext;
- gsize localelen;
- gsize utflen;
-
- gtk_text_buffer_get_end_iter (buffer, &end);
-
- if (!g_utf8_validate (buf, len, NULL)) {
- utftext = g_convert_with_fallback (buf, len, "UTF-8", "ISO-8859-1", NULL, &localelen, &utflen, NULL);
- gtk_text_buffer_insert (buffer, &end, utftext, utflen);
- g_free (utftext);
- } else {
- gtk_text_buffer_insert (buffer, &end, buf, len);
- }
- if (zen_text_data->auto_scroll) {
- GtkTextMark *mark = NULL;
- mark = gtk_text_buffer_get_insert (buffer);
- if (mark != NULL)
- gtk_text_view_scroll_to_mark (text_view, mark, 0.0, FALSE, 0, 0);
- }
- }
- }
-
- return TRUE;
+zenity_text_handle_stdin (
+ GIOChannel *channel, GIOCondition condition, gpointer data) {
+ static GtkTextBuffer *buffer;
+ static GtkTextView *text_view;
+ gchar buf[1024];
+
+ gsize len;
+
+ text_view = GTK_TEXT_VIEW (data);
+ buffer = gtk_text_view_get_buffer (text_view);
+
+ if ((condition & G_IO_IN) || (condition & (G_IO_IN | G_IO_HUP))) {
+ GError *error = NULL;
+ gint status;
+
+ while (channel->is_readable != TRUE)
+ ;
+
+ do {
+ status = g_io_channel_read_chars (channel, buf, 1024, &len, &error);
+
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+
+ } while (status == G_IO_STATUS_AGAIN);
+
+ if (status != G_IO_STATUS_NORMAL) {
+ if (error) {
+ g_warning ("zenity_text_handle_stdin () : %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ return FALSE;
+ }
+
+ if (len > 0) {
+ GtkTextIter end;
+ gchar *utftext;
+ gsize localelen;
+ gsize utflen;
+
+ gtk_text_buffer_get_end_iter (buffer, &end);
+
+ if (!g_utf8_validate (buf, len, NULL)) {
+ utftext = g_convert_with_fallback (buf,
+ len,
+ "UTF-8",
+ "ISO-8859-1",
+ NULL,
+ &localelen,
+ &utflen,
+ NULL);
+ gtk_text_buffer_insert (buffer, &end, utftext, utflen);
+ g_free (utftext);
+ } else {
+ gtk_text_buffer_insert (buffer, &end, buf, len);
+ }
+ if (zen_text_data->auto_scroll) {
+ GtkTextMark *mark = NULL;
+ mark = gtk_text_buffer_get_insert (buffer);
+ if (mark != NULL)
+ gtk_text_view_scroll_to_mark (
+ text_view, mark, 0.0, FALSE, 0, 0);
+ }
+ }
+ }
+
+ return TRUE;
}
static void
-zenity_text_fill_entries_from_stdin (GtkTextView *text_view)
-{
- GIOChannel *channel;
-
- channel = g_io_channel_unix_new (0);
- g_io_channel_set_encoding (channel, "UTF-8", NULL);
- g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
- g_io_add_watch (channel, G_IO_IN | G_IO_HUP, zenity_text_handle_stdin, text_view);
+zenity_text_fill_entries_from_stdin (GtkTextView *text_view) {
+ GIOChannel *channel;
+
+ channel = g_io_channel_unix_new (0);
+ g_io_channel_set_encoding (channel, "UTF-8", NULL);
+ g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+ g_io_add_watch (
+ channel, G_IO_IN | G_IO_HUP, zenity_text_handle_stdin, text_view);
}
void
-zenity_text (ZenityData *data, ZenityTextData *text_data)
-{
- GtkBuilder *builder;
- GtkWidget *dialog;
- GtkWidget *ok_button;
- GtkWidget *checkbox;
- GtkWidget *cancel_button;
+zenity_text (ZenityData *data, ZenityTextData *text_data) {
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ GtkWidget *ok_button;
+ GtkWidget *checkbox;
+ GtkWidget *cancel_button;
- GObject *text_view;
- GtkTextBuffer *text_buffer;
+ GObject *text_view;
+ GtkTextBuffer *text_buffer;
#ifdef HAVE_WEBKITGTK
- GtkWidget *web_kit;
- GtkWidget *scrolled_window;
- GtkTextIter start_iter, end_iter;
- gchar *content;
+ GtkWidget *web_kit;
+ GtkWidget *scrolled_window;
+ GtkTextIter start_iter, end_iter;
+ gchar *content;
#endif
- zen_text_data = text_data;
- builder = zenity_util_load_ui_file ("zenity_text_dialog",
- "textbuffer1", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals (builder, NULL);
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_dialog"));
-
- ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_close_button"));
- cancel_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_cancel_button"));
- checkbox = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_checkbox"));
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_text_dialog_response), data);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-text.png"));
-
- gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
-
- text_buffer = gtk_text_buffer_new (NULL);
- text_view = gtk_builder_get_object (builder, "zenity_text_view");
- gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), text_buffer);
- gtk_text_view_set_editable (GTK_TEXT_VIEW(text_view), text_data->editable);
-
- if (text_data->no_wrap)
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(text_view), GTK_WRAP_NONE);
-
- if (text_data->font) {
- PangoFontDescription *fontDesc = pango_font_description_from_string (text_data->font);
- gtk_widget_override_font (GTK_WIDGET(text_view), fontDesc);
- }
-
- if (text_data->uri)
- zenity_util_fill_file_buffer (text_buffer, text_data->uri);
- else
- zenity_text_fill_entries_from_stdin (GTK_TEXT_VIEW(text_view));
-
- if (text_data->editable)
- zen_text_data->buffer = text_buffer;
-
- 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) {
- gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
- }
-
- if (data->cancel_label) {
- gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
- }
-
- if (text_data->checkbox) {
- gtk_widget_set_visible (GTK_WIDGET (checkbox), TRUE);
- gtk_widget_set_sensitive (GTK_WIDGET (ok_button), FALSE);
- gtk_button_set_label (GTK_BUTTON (checkbox), text_data->checkbox);
-
- g_signal_connect (G_OBJECT (checkbox), "toggled",
- G_CALLBACK (zenity_text_toggle_button), ok_button);
- }
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
- else
- gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 400);
-
- if (data->modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ zen_text_data = text_data;
+ builder =
+ zenity_util_load_ui_file ("zenity_text_dialog", "textbuffer1", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_dialog"));
+
+ ok_button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_text_close_button"));
+ cancel_button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_text_cancel_button"));
+ checkbox =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_checkbox"));
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_text_dialog_response),
+ data);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ zenity_util_set_window_icon (
+ dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-text.png"));
+
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
+
+ text_buffer = gtk_text_buffer_new (NULL);
+ text_view = gtk_builder_get_object (builder, "zenity_text_view");
+ gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), text_buffer);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), text_data->editable);
+
+ if (text_data->no_wrap)
+ gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_NONE);
+
+ if (text_data->font) {
+ PangoFontDescription *fontDesc =
+ pango_font_description_from_string (text_data->font);
+ gtk_widget_override_font (GTK_WIDGET (text_view), fontDesc);
+ }
+
+ if (text_data->uri)
+ zenity_util_fill_file_buffer (text_buffer, text_data->uri);
+ else
+ zenity_text_fill_entries_from_stdin (GTK_TEXT_VIEW (text_view));
+
+ if (text_data->editable)
+ zen_text_data->buffer = text_buffer;
+
+ 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) {
+ gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
+ }
+
+ if (data->cancel_label) {
+ gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
+ }
+
+ if (text_data->checkbox) {
+ gtk_widget_set_visible (GTK_WIDGET (checkbox), TRUE);
+ gtk_widget_set_sensitive (GTK_WIDGET (ok_button), FALSE);
+ gtk_button_set_label (GTK_BUTTON (checkbox), text_data->checkbox);
+
+ g_signal_connect (G_OBJECT (checkbox),
+ "toggled",
+ G_CALLBACK (zenity_text_toggle_button),
+ ok_button);
+ }
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+ else
+ gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 400);
+
+ if (data->modal)
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
#ifdef HAVE_WEBKITGTK
- if(text_data->html) {
- web_kit = webkit_web_view_new();
- scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_scrolled_window"));
-
- zenity_configure_webkit (WEBKIT_WEB_VIEW (web_kit));
-
- if (text_data->url)
- {
- if (!(g_str_has_prefix (text_data->url, "http://") || g_str_has_prefix (text_data->url, "https://")))
- text_data->url = g_strdup_printf ("http://%s", text_data->url);
-
-
- webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_kit), text_data->url);
- }
- else
- {
- gchar *cwd;
- gchar *dirname;
- gchar *dirname_uri;
- dirname = text_data->uri ? g_path_get_dirname (text_data->uri) : g_strdup ("/");
- cwd = g_get_current_dir ();
- dirname_uri = g_strconcat ("file://", cwd, "/", dirname, "/", NULL);
- g_free (cwd);
- g_free (dirname);
- gtk_text_buffer_get_start_iter (text_buffer, &start_iter);
- gtk_text_buffer_get_end_iter (text_buffer, &end_iter);
- content = gtk_text_buffer_get_text (text_buffer, &start_iter, &end_iter, TRUE);
- webkit_web_view_load_html (WEBKIT_WEB_VIEW(web_kit), content, dirname_uri);
- g_free (dirname_uri);
- g_free (content);
- }
-
- // We don't want user to click on links and navigate to another page.
- // So, when the page finishes loading, we take handle of the requests.
-
- g_signal_connect (G_OBJECT (web_kit), "load-changed",
- G_CALLBACK (zenity_text_webview_load_changed), NULL);
-
- gtk_widget_destroy (GTK_WIDGET (text_view));
- gtk_container_add (GTK_CONTAINER(scrolled_window), web_kit);
- gtk_widget_show (GTK_WIDGET (web_kit));
- }
+ if (text_data->html) {
+ web_kit = webkit_web_view_new ();
+ scrolled_window = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_text_scrolled_window"));
+
+ zenity_configure_webkit (WEBKIT_WEB_VIEW (web_kit));
+
+ if (text_data->url) {
+ if (!(g_str_has_prefix (text_data->url, "http://") ||
+ g_str_has_prefix (text_data->url, "https://")))
+ text_data->url = g_strdup_printf ("http://%s", text_data->url);
+
+ webkit_web_view_load_uri (
+ WEBKIT_WEB_VIEW (web_kit), text_data->url);
+ } else {
+ gchar *cwd;
+ gchar *dirname;
+ gchar *dirname_uri;
+ dirname = text_data->uri ? g_path_get_dirname (text_data->uri)
+ : g_strdup ("/");
+ cwd = g_get_current_dir ();
+ dirname_uri = g_strconcat ("file://", cwd, "/", dirname, "/", NULL);
+ g_free (cwd);
+ g_free (dirname);
+ gtk_text_buffer_get_start_iter (text_buffer, &start_iter);
+ gtk_text_buffer_get_end_iter (text_buffer, &end_iter);
+ content = gtk_text_buffer_get_text (
+ text_buffer, &start_iter, &end_iter, TRUE);
+ webkit_web_view_load_html (
+ WEBKIT_WEB_VIEW (web_kit), content, dirname_uri);
+ g_free (dirname_uri);
+ g_free (content);
+ }
+
+ // We don't want user to click on links and navigate to another page.
+ // So, when the page finishes loading, we take handle of the requests.
+
+ g_signal_connect (G_OBJECT (web_kit),
+ "load-changed",
+ G_CALLBACK (zenity_text_webview_load_changed),
+ NULL);
+
+ gtk_widget_destroy (GTK_WIDGET (text_view));
+ gtk_container_add (GTK_CONTAINER (scrolled_window), web_kit);
+ gtk_widget_show (GTK_WIDGET (web_kit));
+ }
#endif
- zenity_util_show_dialog (dialog, data->attach);
+ zenity_util_show_dialog (dialog, data->attach);
- g_object_unref (builder);
+ g_object_unref (builder);
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
- gtk_main ();
+ gtk_main ();
}
static void
-zenity_text_toggle_button (GtkToggleButton *button, gpointer data)
-{
- GtkWidget *ok_button = (GtkWidget *)data;
- gtk_widget_set_sensitive (GTK_WIDGET(ok_button), gtk_toggle_button_get_active(button));
+zenity_text_toggle_button (GtkToggleButton *button, gpointer data) {
+ GtkWidget *ok_button = (GtkWidget *) data;
+ gtk_widget_set_sensitive (
+ GTK_WIDGET (ok_button), gtk_toggle_button_get_active (button));
}
static void
-zenity_text_dialog_output (ZenityData *zen_data)
-{
- if (zen_text_data->editable) {
- GtkTextIter start, end;
- gchar *text;
- gtk_text_buffer_get_bounds (zen_text_data->buffer, &start, &end);
- text = gtk_text_buffer_get_text (zen_text_data->buffer, &start, &end, 0);
- g_print ("%s", text);
- g_free (text);
- }
+zenity_text_dialog_output (ZenityData *zen_data) {
+ if (zen_text_data->editable) {
+ GtkTextIter start, end;
+ gchar *text;
+ gtk_text_buffer_get_bounds (zen_text_data->buffer, &start, &end);
+ text =
+ gtk_text_buffer_get_text (zen_text_data->buffer, &start, &end, 0);
+ g_print ("%s", text);
+ g_free (text);
+ }
}
static void
-zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data = data;
-
- switch (response) {
- case GTK_RESPONSE_CLOSE:
- zenity_text_dialog_output (zen_data);
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_text_dialog_output (zen_data);
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- break;
-
- default:
- if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
- printf("%s\n",zen_data->extra_label[response]);
- zenity_util_exit_code_with_data(ZENITY_ESC, zen_data);
- break;
- }
- gtk_main_quit ();
+zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_CLOSE:
+ zenity_text_dialog_output (zen_data);
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_text_dialog_output (zen_data);
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ response < g_strv_length (zen_data->extra_label))
+ printf ("%s\n", zen_data->extra_label[response]);
+ zenity_util_exit_code_with_data (ZENITY_ESC, zen_data);
+ break;
+ }
+ gtk_main_quit ();
}
diff --git a/src/tree.c b/src/tree.c
index 058b6b61..d94ce7e8 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -25,10 +25,10 @@
#include "config.h"
-#include <string.h>
-#include <stdlib.h>
-#include "zenity.h"
#include "util.h"
+#include "zenity.h"
+#include <stdlib.h>
+#include <string.h>
#define MAX_ELEMENTS_BEFORE_SCROLLING 5
#define PRINT_HIDE_COLUMN_SEPARATOR ","
@@ -43,733 +43,803 @@ static GIOChannel *channel;
static int *zenity_tree_extract_column_indexes (char *indexes, gint n_columns);
static gboolean zenity_tree_column_is_hidden (gint column_index);
-static void zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data);
-static void zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path,
- GtkTreeViewColumn *tree_col, gpointer data);
+static void zenity_tree_dialog_response (
+ GtkWidget *widget, int response, gpointer data);
+static void zenity_tree_row_activated (GtkTreeView *tree_view,
+ GtkTreePath *tree_path, GtkTreeViewColumn *tree_col, gpointer data);
static gboolean
-zenity_tree_dialog_untoggle (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
-{
- GValue toggle_value = {0, };
+zenity_tree_dialog_untoggle (
+ GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) {
+ GValue toggle_value = {
+ 0,
+ };
- gtk_tree_model_get_value (model, iter, 0, &toggle_value);
+ gtk_tree_model_get_value (model, iter, 0, &toggle_value);
- if (g_value_get_boolean (&toggle_value))
- gtk_list_store_set (GTK_LIST_STORE (model), iter, 0, FALSE, -1);
- return FALSE;
+ if (g_value_get_boolean (&toggle_value))
+ gtk_list_store_set (GTK_LIST_STORE (model), iter, 0, FALSE, -1);
+ return FALSE;
}
static void
-zenity_tree_toggled_callback (GtkCellRendererToggle *cell, gchar *path_string, gpointer data)
-{
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreePath *path;
- gboolean value;
+zenity_tree_toggled_callback (
+ GtkCellRendererToggle *cell, gchar *path_string, gpointer data) {
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ gboolean value;
- model = GTK_TREE_MODEL (data);
+ model = GTK_TREE_MODEL (data);
- /* Because this is a radio list, we should untoggle the previous toggle so that
- * we only have one selection at any given time
- */
+ /* Because this is a radio list, we should untoggle the previous toggle so
+ * that
+ * we only have one selection at any given time
+ */
- if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (model), "radio")) == 1) {
- gtk_tree_model_foreach (model, zenity_tree_dialog_untoggle, NULL);
- }
+ if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (model), "radio")) == 1) {
+ gtk_tree_model_foreach (model, zenity_tree_dialog_untoggle, NULL);
+ }
- path = gtk_tree_path_new_from_string (path_string);
- gtk_tree_model_get_iter (model, &iter, path);
- gtk_tree_model_get (model, &iter, 0, &value, -1);
+ path = gtk_tree_path_new_from_string (path_string);
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_model_get (model, &iter, 0, &value, -1);
- value = !value;
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, value, -1);
+ value = !value;
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, value, -1);
- gtk_tree_path_free (path);
+ gtk_tree_path_free (path);
}
static void
-zenity_load_pixbuf (GtkTreeViewColumn *tree_column,
- GtkCellRenderer *cell,
- GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gpointer data)
-{
- static GHashTable *pixbuf_cache = NULL;
- GError *error = NULL;
- GdkPixbuf *pixbuf;
- gchar *str;
+zenity_load_pixbuf (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell,
+ GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) {
+ static GHashTable *pixbuf_cache = NULL;
+ GError *error = NULL;
+ GdkPixbuf *pixbuf;
+ gchar *str;
- gtk_tree_model_get (tree_model, iter, 0, &str, -1);
+ gtk_tree_model_get (tree_model, iter, 0, &str, -1);
- if (!str)
- return;
+ if (!str)
+ return;
- if (!pixbuf_cache) {
- pixbuf_cache = g_hash_table_new (g_str_hash, g_str_equal);
- g_assert(pixbuf_cache);
- }
+ if (!pixbuf_cache) {
+ pixbuf_cache = g_hash_table_new (g_str_hash, g_str_equal);
+ g_assert (pixbuf_cache);
+ }
- pixbuf = g_hash_table_lookup (pixbuf_cache, str);
+ pixbuf = g_hash_table_lookup (pixbuf_cache, str);
- if (!pixbuf) {
- pixbuf = gdk_pixbuf_new_from_file (str, &error);
- if (!pixbuf)
- g_warning ("Failed to load '%s'", str);
+ if (!pixbuf) {
+ pixbuf = gdk_pixbuf_new_from_file (str, &error);
+ if (!pixbuf)
+ g_warning ("Failed to load '%s'", str);
- g_hash_table_insert (pixbuf_cache, g_strdup (str), pixbuf);
- }
+ g_hash_table_insert (pixbuf_cache, g_strdup (str), pixbuf);
+ }
- if (pixbuf)
- g_object_set (cell, "pixbuf", pixbuf, NULL);
+ if (pixbuf)
+ g_object_set (cell, "pixbuf", pixbuf, NULL);
- g_free (str);
+ g_free (str);
}
static gboolean
-zenity_tree_handle_stdin (GIOChannel *channel,
- GIOCondition condition,
- gpointer data)
-{
- static GtkTreeView *tree_view;
- GtkTreeModel *model;
- static GtkTreeIter iter;
- static gint column_count = 0;
- static gint row_count = 0;
- static gint n_columns;
- static gboolean editable;
- static gboolean toggles;
- static gboolean first_time = TRUE;
- GIOStatus status = G_IO_STATUS_NORMAL;
-
- tree_view = GTK_TREE_VIEW (data);
- n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
- editable = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "editable"));
- toggles = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "toggles"));
-
- model = gtk_tree_view_get_model (tree_view);
-
- if (first_time) {
- first_time = FALSE;
- gtk_list_store_append (GTK_LIST_STORE (model), &iter);
- }
-
- if ((condition & G_IO_IN) == G_IO_IN) {
- GString *string;
- GError *error = NULL;
-
- string = g_string_new (NULL);
-
- while ((g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE) != G_IO_FLAG_IS_READABLE)
- ;
- do {
- do {
- if (g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE)
- status = g_io_channel_read_line_string (channel, string, NULL, &error);
- else
- return FALSE;
-
- while (gtk_events_pending ())
- gtk_main_iteration ();
-
- // TODO: Find a better way to avoid 100% cpu utilization
- g_usleep(10000);
-
- } while (status == G_IO_STATUS_AGAIN);
-
- if (status != G_IO_STATUS_NORMAL) {
- if (error) {
- g_warning ("zenity_tree_handle_stdin () : %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- continue;
- }
-
- if (column_count == n_columns) {
- /* We're starting a new row */
- column_count = 0;
- row_count++;
- gtk_list_store_append (GTK_LIST_STORE (model), &iter);
- }
-
- if (toggles && column_count == 0) {
- if (strcmp (g_ascii_strdown (zenity_util_strip_newline (string->str), -1), "true") == 0)
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, column_count, TRUE, -1);
- else
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, column_count, FALSE, -1);
- }
- else {
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, column_count, zenity_util_strip_newline (string->str), -1);
- }
-
- if (editable) {
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
- }
-
- if (row_count == MAX_ELEMENTS_BEFORE_SCROLLING) {
- GtkWidget *scrolled_window;
- GtkRequisition rectangle;
-
- gtk_widget_get_preferred_size (GTK_WIDGET (tree_view), &rectangle, NULL);
- scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder,
- "zenity_tree_window"));
- gtk_widget_set_size_request (scrolled_window, -1, rectangle.height);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- }
-
- column_count++;
-
- } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) == G_IO_IN && status != G_IO_STATUS_EOF);
- g_string_free (string, TRUE);
- }
-
- if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
- g_io_channel_shutdown (channel, TRUE, NULL);
- return FALSE;
- }
- return TRUE;
+zenity_tree_handle_stdin (
+ GIOChannel *channel, GIOCondition condition, gpointer data) {
+ static GtkTreeView *tree_view;
+ GtkTreeModel *model;
+ static GtkTreeIter iter;
+ static gint column_count = 0;
+ static gint row_count = 0;
+ static gint n_columns;
+ static gboolean editable;
+ static gboolean toggles;
+ static gboolean first_time = TRUE;
+ GIOStatus status = G_IO_STATUS_NORMAL;
+
+ tree_view = GTK_TREE_VIEW (data);
+ n_columns =
+ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+ editable =
+ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "editable"));
+ toggles =
+ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "toggles"));
+
+ model = gtk_tree_view_get_model (tree_view);
+
+ if (first_time) {
+ first_time = FALSE;
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+ }
+
+ if ((condition & G_IO_IN) == G_IO_IN) {
+ GString *string;
+ GError *error = NULL;
+
+ string = g_string_new (NULL);
+
+ while ((g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE) !=
+ G_IO_FLAG_IS_READABLE)
+ ;
+ do {
+ do {
+ if (g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE)
+ status = g_io_channel_read_line_string (
+ channel, string, NULL, &error);
+ else
+ return FALSE;
+
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+
+ // TODO: Find a better way to avoid 100% cpu utilization
+ g_usleep (10000);
+
+ } while (status == G_IO_STATUS_AGAIN);
+
+ if (status != G_IO_STATUS_NORMAL) {
+ if (error) {
+ g_warning (
+ "zenity_tree_handle_stdin () : %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ continue;
+ }
+
+ if (column_count == n_columns) {
+ /* We're starting a new row */
+ column_count = 0;
+ row_count++;
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+ }
+
+ if (toggles && column_count == 0) {
+ if (strcmp (g_ascii_strdown (
+ zenity_util_strip_newline (string->str), -1),
+ "true") == 0)
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, column_count, TRUE, -1);
+ else
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, column_count, FALSE, -1);
+ } else {
+ gtk_list_store_set (GTK_LIST_STORE (model),
+ &iter,
+ column_count,
+ zenity_util_strip_newline (string->str),
+ -1);
+ }
+
+ if (editable) {
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
+ }
+
+ if (row_count == MAX_ELEMENTS_BEFORE_SCROLLING) {
+ GtkWidget *scrolled_window;
+ GtkRequisition rectangle;
+
+ gtk_widget_get_preferred_size (
+ GTK_WIDGET (tree_view), &rectangle, NULL);
+ scrolled_window = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_tree_window"));
+ gtk_widget_set_size_request (
+ scrolled_window, -1, rectangle.height);
+ gtk_scrolled_window_set_policy (
+ GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ }
+
+ column_count++;
+
+ } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) ==
+ G_IO_IN &&
+ status != G_IO_STATUS_EOF);
+ g_string_free (string, TRUE);
+ }
+
+ if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
+ g_io_channel_shutdown (channel, TRUE, NULL);
+ return FALSE;
+ }
+ return TRUE;
}
static void
-zenity_tree_fill_entries_from_stdin (GtkTreeView *tree_view,
- gint n_columns,
- gboolean toggles,
- gboolean editable)
-{
- g_object_set_data (G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
- g_object_set_data (G_OBJECT (tree_view), "toggles", GINT_TO_POINTER (toggles));
- g_object_set_data (G_OBJECT (tree_view), "editable", GINT_TO_POINTER (editable));
-
- channel = g_io_channel_unix_new (0);
- g_io_channel_set_encoding (channel, NULL, NULL);
- g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
- g_io_add_watch (channel, G_IO_IN | G_IO_HUP, zenity_tree_handle_stdin, tree_view);
+zenity_tree_fill_entries_from_stdin (GtkTreeView *tree_view, gint n_columns,
+ gboolean toggles, gboolean editable) {
+ g_object_set_data (
+ G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
+ g_object_set_data (
+ G_OBJECT (tree_view), "toggles", GINT_TO_POINTER (toggles));
+ g_object_set_data (
+ G_OBJECT (tree_view), "editable", GINT_TO_POINTER (editable));
+
+ channel = g_io_channel_unix_new (0);
+ g_io_channel_set_encoding (channel, NULL, NULL);
+ g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+ g_io_add_watch (
+ channel, G_IO_IN | G_IO_HUP, zenity_tree_handle_stdin, tree_view);
}
static void
-zenity_tree_fill_entries (GtkTreeView *tree_view,
- const gchar **args,
- gint n_columns,
- gboolean toggles,
- gboolean editable)
-{
- GtkTreeModel *model;
- GtkTreeIter iter;
- gint i = 0;
-
- model = gtk_tree_view_get_model (tree_view);
-
- g_object_set_data (G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
-
- while (args[i] != NULL) {
- gint j;
-
- gtk_list_store_append (GTK_LIST_STORE (model), &iter);
-
- for (j = 0; j < n_columns; j++) {
-
- if (toggles && j == 0) {
- if (strcmp (g_ascii_strdown ((gchar *) args[i+j], -1), "true") == 0)
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, j, TRUE, -1);
- else
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, j, FALSE, -1);
- }
- else
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, j, args[i+j], -1);
- }
-
- if (editable)
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
-
- if (i == MAX_ELEMENTS_BEFORE_SCROLLING) {
- GtkWidget *scrolled_window;
- GtkRequisition rectangle;
-
- gtk_widget_get_preferred_size (GTK_WIDGET (tree_view), &rectangle, NULL);
- scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder,
- "zenity_tree_window"));
- gtk_widget_set_size_request (scrolled_window, -1, rectangle.height);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- }
-
- i += n_columns;
- }
+zenity_tree_fill_entries (GtkTreeView *tree_view, const gchar **args,
+ gint n_columns, gboolean toggles, gboolean editable) {
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gint i = 0;
+
+ model = gtk_tree_view_get_model (tree_view);
+
+ g_object_set_data (
+ G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
+
+ while (args[i] != NULL) {
+ gint j;
+
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+
+ for (j = 0; j < n_columns; j++) {
+
+ if (toggles && j == 0) {
+ if (strcmp (g_ascii_strdown ((gchar *) args[i + j], -1),
+ "true") == 0)
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, j, TRUE, -1);
+ else
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, j, FALSE, -1);
+ } else
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, j, args[i + j], -1);
+ }
+
+ if (editable)
+ gtk_list_store_set (
+ GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
+
+ if (i == MAX_ELEMENTS_BEFORE_SCROLLING) {
+ GtkWidget *scrolled_window;
+ GtkRequisition rectangle;
+
+ gtk_widget_get_preferred_size (
+ GTK_WIDGET (tree_view), &rectangle, NULL);
+ scrolled_window = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_tree_window"));
+ gtk_widget_set_size_request (scrolled_window, -1, rectangle.height);
+ gtk_scrolled_window_set_policy (
+ GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ }
+
+ i += n_columns;
+ }
}
static gboolean
-zenity_mid_search_func (GtkTreeModel *model, gint column,
- const gchar *key, GtkTreeIter *iter,
- gpointer search_data)
-{
- gchar *iter_string = NULL;
- gtk_tree_model_get (model, iter, column, &iter_string, -1);
- return ! (g_strrstr (g_utf8_strdown(iter_string, -1),
- g_utf8_strdown(key, -1)) != NULL);
-
+zenity_mid_search_func (GtkTreeModel *model, gint column, const gchar *key,
+ GtkTreeIter *iter, gpointer search_data) {
+ gchar *iter_string = NULL;
+ gtk_tree_model_get (model, iter, column, &iter_string, -1);
+ return !(g_strrstr (g_utf8_strdown (iter_string, -1),
+ g_utf8_strdown (key, -1)) != NULL);
}
static void
-zenity_cell_edited_callback (GtkCellRendererText *cell,
- const gchar *path_string,
- const gchar *new_text,
- gpointer data)
-{
- GtkTreeModel *model;
- GtkTreePath *path;
- GtkTreeIter iter;
- gint column;
-
- model = GTK_TREE_MODEL (data);
- path = gtk_tree_path_new_from_string (path_string);
-
- column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column"));
- gtk_tree_model_get_iter (model, &iter, path);
-
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, new_text, -1);
-
- gtk_tree_path_free (path);
-}
+zenity_cell_edited_callback (GtkCellRendererText *cell,
+ const gchar *path_string, const gchar *new_text, gpointer data) {
+ GtkTreeModel *model;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ gint column;
-void
-zenity_tree (ZenityData *data, ZenityTreeData *tree_data)
-{
- GtkWidget *dialog;
- GtkWidget *button;
- GObject *tree_view;
- GObject *text;
- GtkTreeViewColumn *column;
- GtkListStore *model;
- GType *column_types;
- GSList *tmp;
- gboolean first_column = FALSE;
- gint i, column_index, n_columns;
-
- builder = zenity_util_load_ui_file ("zenity_tree_dialog", NULL);
-
- if (builder == NULL) {
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- separator = g_strcompress (tree_data->separator);
-
- n_columns = g_slist_length (tree_data->columns);
-
- if (tree_data->print_column) {
- if (strcmp (g_ascii_strdown (tree_data->print_column, -1), "all") == 0)
- print_all_columns = TRUE;
- else
- print_columns = zenity_tree_extract_column_indexes (tree_data->print_column, n_columns);
- }
- else {
- print_columns = g_new (gint, 2);
- print_columns[0] = (tree_data->radiobox || tree_data->checkbox ? 2 : 1);
- print_columns[1] = 0;
- }
-
- if (tree_data->hide_column)
- hide_columns = zenity_tree_extract_column_indexes (tree_data->hide_column, n_columns);
-
- if (n_columns == 0) {
- g_printerr (_("No column titles specified for List dialog.\n"));
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- if (tree_data->checkbox + tree_data->radiobox + tree_data->imagebox > 1) {
- g_printerr (_("You should use only one List dialog type.\n"));
- data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
- return;
- }
-
- gtk_builder_connect_signals (builder, NULL);
-
- dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_dialog"));
-
- g_signal_connect (G_OBJECT (dialog), "response",
- G_CALLBACK (zenity_tree_dialog_response), data);
-
- if (data->dialog_title)
- gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
- 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);
- }
-
- if (data->cancel_label) {
- button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_cancel_button"));
- gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
- }
-
- text = gtk_builder_get_object (builder, "zenity_tree_text");
-
- if (tree_data->dialog_text)
- gtk_label_set_markup (GTK_LABEL (text), g_strcompress (tree_data->dialog_text));
-
- zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-list.png"));
-
- if (data->width > -1 || data->height > -1)
- gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
- tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
-
- if (!(tree_data->radiobox || tree_data->checkbox))
- g_signal_connect (tree_view, "row-activated",
- G_CALLBACK (zenity_tree_row_activated), data);
-
- /* Create an empty list store */
- model = g_object_new (GTK_TYPE_LIST_STORE, NULL);
-
- if (tree_data->editable)
- column_types = g_new (GType, n_columns + 1);
- else
- column_types = g_new (GType, n_columns);
-
- for (i = 0; i < n_columns; i++) {
- /* Have the limitation that the radioboxes and checkboxes are in the first column */
- if (i == 0 && (tree_data->checkbox || tree_data->radiobox))
- column_types[i] = G_TYPE_BOOLEAN;
- else
- column_types[i] = G_TYPE_STRING;
- }
-
- if (tree_data->editable)
- column_types[n_columns] = G_TYPE_BOOLEAN;
-
- if (tree_data->editable)
- gtk_list_store_set_column_types (model, n_columns + 1, column_types);
- else
- gtk_list_store_set_column_types (model, n_columns, column_types);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
-
- if (!(tree_data->radiobox || tree_data->checkbox)) {
- if (tree_data->multi)
- gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
- GTK_SELECTION_MULTIPLE);
- else
- gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
- GTK_SELECTION_SINGLE);
- }
- else
- gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
- GTK_SELECTION_NONE);
-
- column_index = 0;
-
- for (tmp = tree_data->columns; tmp; tmp = tmp->next) {
- if (!first_column) {
- if (tree_data->checkbox || tree_data->radiobox) {
- GtkCellRenderer *cell_renderer;
-
- cell_renderer = gtk_cell_renderer_toggle_new ();
-
- if (tree_data->radiobox) {
- g_object_set (G_OBJECT (cell_renderer), "radio", TRUE, NULL);
- g_object_set_data (G_OBJECT (model), "radio", GINT_TO_POINTER (1));
- }
-
- g_signal_connect (cell_renderer, "toggled",
- G_CALLBACK (zenity_tree_toggled_callback), model);
-
- column = gtk_tree_view_column_new_with_attributes (tmp->data,
- cell_renderer,
- "active", column_index, NULL);
- } else if (tree_data->imagebox) {
- GtkCellRenderer *cell_renderer = gtk_cell_renderer_pixbuf_new ();
- column = gtk_tree_view_column_new_with_attributes (tmp->data,
- cell_renderer, NULL);
- gtk_tree_view_column_set_cell_data_func (column, cell_renderer,
- zenity_load_pixbuf, NULL, NULL);
- }
- else {
- if (tree_data->editable) {
- GtkCellRenderer *cell_renderer;
-
- cell_renderer = gtk_cell_renderer_text_new ();
- g_signal_connect (G_OBJECT (cell_renderer), "edited",
- G_CALLBACK (zenity_cell_edited_callback),
- gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
- g_object_set_data (G_OBJECT (cell_renderer), "column", GINT_TO_POINTER (column_index));
-
- column = gtk_tree_view_column_new_with_attributes (tmp->data,
- cell_renderer,
- "text", column_index,
- "editable", n_columns,
- NULL);
- }
- else {
- column = gtk_tree_view_column_new_with_attributes (tmp->data,
- gtk_cell_renderer_text_new (),
- "text", column_index,
- NULL);
- }
-
- gtk_tree_view_column_set_sort_column_id (column, column_index);
- gtk_tree_view_column_set_resizable (column, TRUE);
- }
- if (zenity_tree_column_is_hidden (1))
- gtk_tree_view_column_set_visible (column, FALSE);
-
- first_column = TRUE;
- }
- else {
- if (tree_data->editable) {
- GtkCellRenderer *cell_renderer;
-
- cell_renderer = gtk_cell_renderer_text_new ();
- g_signal_connect (G_OBJECT (cell_renderer), "edited",
- G_CALLBACK (zenity_cell_edited_callback),
- gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
- g_object_set_data (G_OBJECT (cell_renderer), "column", GINT_TO_POINTER (column_index));
-
- column = gtk_tree_view_column_new_with_attributes (tmp->data,
- cell_renderer,
- "text", column_index,
- "editable", n_columns,
- NULL);
- }
- else {
- column = gtk_tree_view_column_new_with_attributes (tmp->data,
- gtk_cell_renderer_text_new (),
- "text", column_index, NULL);
- }
-
- gtk_tree_view_column_set_sort_column_id (column, column_index);
- gtk_tree_view_column_set_resizable (column, TRUE);
-
- if (zenity_tree_column_is_hidden (column_index + 1))
- gtk_tree_view_column_set_visible (column, FALSE);
- }
-
- gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
- column_index++;
- }
-
- if (tree_data->hide_header)
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
-
- if (tree_data->radiobox || tree_data->checkbox) {
- if (tree_data->data && *tree_data->data)
- zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view), tree_data->data, n_columns, TRUE, tree_data->editable);
- else
- zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view), n_columns, TRUE, tree_data->editable);
- }
- else {
- if (tree_data->data && *tree_data->data)
- zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view), tree_data->data, n_columns, FALSE, tree_data->editable);
- else
- zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view), n_columns, FALSE, tree_data->editable);
- }
-
- zenity_util_show_dialog (dialog, data->attach);
-
- if (tree_data->mid_search)
- gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(tree_view), (GtkTreeViewSearchEqualFunc) zenity_mid_search_func, model, NULL);
-
- if(data->timeout_delay > 0) {
- g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
- }
-
- gtk_main ();
-
- g_object_unref (builder);
-}
+ model = GTK_TREE_MODEL (data);
+ path = gtk_tree_path_new_from_string (path_string);
-static void
-zenity_tree_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf, GtkTreeIter *iter, GtkTreeView *tree_view)
-{
- GValue value = {0, };
- gint n_columns, i;
+ column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column"));
+ gtk_tree_model_get_iter (model, &iter, path);
- n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, new_text, -1);
- if (print_all_columns) {
- for (i = 0; i < n_columns; i++) {
- gtk_tree_model_get_value (model, iter, i, &value);
-
- selected = g_slist_append (selected, g_value_dup_string (&value));
- g_value_unset (&value);
- }
- return;
- }
+ gtk_tree_path_free (path);
+}
- for (i = 0; print_columns[i] != 0; i++) {
- gtk_tree_model_get_value (model, iter, print_columns[i] - 1, &value);
+void
+zenity_tree (ZenityData *data, ZenityTreeData *tree_data) {
+ GtkWidget *dialog;
+ GtkWidget *button;
+ GObject *tree_view;
+ GObject *text;
+ GtkTreeViewColumn *column;
+ GtkListStore *model;
+ GType *column_types;
+ GSList *tmp;
+ gboolean first_column = FALSE;
+ gint i, column_index, n_columns;
+
+ builder = zenity_util_load_ui_file ("zenity_tree_dialog", NULL);
+
+ if (builder == NULL) {
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ separator = g_strcompress (tree_data->separator);
+
+ n_columns = g_slist_length (tree_data->columns);
+
+ if (tree_data->print_column) {
+ if (strcmp (g_ascii_strdown (tree_data->print_column, -1), "all") == 0)
+ print_all_columns = TRUE;
+ else
+ print_columns = zenity_tree_extract_column_indexes (
+ tree_data->print_column, n_columns);
+ } else {
+ print_columns = g_new (gint, 2);
+ print_columns[0] = (tree_data->radiobox || tree_data->checkbox ? 2 : 1);
+ print_columns[1] = 0;
+ }
+
+ if (tree_data->hide_column)
+ hide_columns = zenity_tree_extract_column_indexes (
+ tree_data->hide_column, n_columns);
+
+ if (n_columns == 0) {
+ g_printerr (_ ("No column titles specified for List dialog.\n"));
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ if (tree_data->checkbox + tree_data->radiobox + tree_data->imagebox > 1) {
+ g_printerr (_ ("You should use only one List dialog type.\n"));
+ data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+ return;
+ }
+
+ gtk_builder_connect_signals (builder, NULL);
+
+ dialog =
+ GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_dialog"));
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (zenity_tree_dialog_response),
+ data);
+
+ if (data->dialog_title)
+ gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+ 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);
+ }
+
+ if (data->cancel_label) {
+ button = GTK_WIDGET (
+ gtk_builder_get_object (builder, "zenity_tree_cancel_button"));
+ gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+ }
+
+ text = gtk_builder_get_object (builder, "zenity_tree_text");
+
+ if (tree_data->dialog_text)
+ gtk_label_set_markup (
+ GTK_LABEL (text), g_strcompress (tree_data->dialog_text));
+
+ zenity_util_set_window_icon (
+ dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-list.png"));
+
+ if (data->width > -1 || data->height > -1)
+ gtk_window_set_default_size (
+ GTK_WINDOW (dialog), data->width, data->height);
+
+ tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
+
+ if (!(tree_data->radiobox || tree_data->checkbox))
+ g_signal_connect (tree_view,
+ "row-activated",
+ G_CALLBACK (zenity_tree_row_activated),
+ data);
+
+ /* Create an empty list store */
+ model = g_object_new (GTK_TYPE_LIST_STORE, NULL);
+
+ if (tree_data->editable)
+ column_types = g_new (GType, n_columns + 1);
+ else
+ column_types = g_new (GType, n_columns);
+
+ for (i = 0; i < n_columns; i++) {
+ /* Have the limitation that the radioboxes and checkboxes are in the
+ * first column */
+ if (i == 0 && (tree_data->checkbox || tree_data->radiobox))
+ column_types[i] = G_TYPE_BOOLEAN;
+ else
+ column_types[i] = G_TYPE_STRING;
+ }
+
+ if (tree_data->editable)
+ column_types[n_columns] = G_TYPE_BOOLEAN;
+
+ if (tree_data->editable)
+ gtk_list_store_set_column_types (model, n_columns + 1, column_types);
+ else
+ gtk_list_store_set_column_types (model, n_columns, column_types);
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
+
+ if (!(tree_data->radiobox || tree_data->checkbox)) {
+ if (tree_data->multi)
+ gtk_tree_selection_set_mode (
+ gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
+ GTK_SELECTION_MULTIPLE);
+ else
+ gtk_tree_selection_set_mode (
+ gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
+ GTK_SELECTION_SINGLE);
+ } else
+ gtk_tree_selection_set_mode (
+ gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
+ GTK_SELECTION_NONE);
+
+ column_index = 0;
+
+ for (tmp = tree_data->columns; tmp; tmp = tmp->next) {
+ if (!first_column) {
+ if (tree_data->checkbox || tree_data->radiobox) {
+ GtkCellRenderer *cell_renderer;
+
+ cell_renderer = gtk_cell_renderer_toggle_new ();
+
+ if (tree_data->radiobox) {
+ g_object_set (
+ G_OBJECT (cell_renderer), "radio", TRUE, NULL);
+ g_object_set_data (
+ G_OBJECT (model), "radio", GINT_TO_POINTER (1));
+ }
+
+ g_signal_connect (cell_renderer,
+ "toggled",
+ G_CALLBACK (zenity_tree_toggled_callback),
+ model);
+
+ column = gtk_tree_view_column_new_with_attributes (
+ tmp->data, cell_renderer, "active", column_index, NULL);
+ } else if (tree_data->imagebox) {
+ GtkCellRenderer *cell_renderer =
+ gtk_cell_renderer_pixbuf_new ();
+ column = gtk_tree_view_column_new_with_attributes (
+ tmp->data, cell_renderer, NULL);
+ gtk_tree_view_column_set_cell_data_func (
+ column, cell_renderer, zenity_load_pixbuf, NULL, NULL);
+ } else {
+ if (tree_data->editable) {
+ GtkCellRenderer *cell_renderer;
+
+ cell_renderer = gtk_cell_renderer_text_new ();
+ g_signal_connect (G_OBJECT (cell_renderer),
+ "edited",
+ G_CALLBACK (zenity_cell_edited_callback),
+ gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
+ g_object_set_data (G_OBJECT (cell_renderer),
+ "column",
+ GINT_TO_POINTER (column_index));
+
+ column =
+ gtk_tree_view_column_new_with_attributes (tmp->data,
+ cell_renderer,
+ "text",
+ column_index,
+ "editable",
+ n_columns,
+ NULL);
+ } else {
+ column =
+ gtk_tree_view_column_new_with_attributes (tmp->data,
+ gtk_cell_renderer_text_new (),
+ "text",
+ column_index,
+ NULL);
+ }
+
+ gtk_tree_view_column_set_sort_column_id (column, column_index);
+ gtk_tree_view_column_set_resizable (column, TRUE);
+ }
+ if (zenity_tree_column_is_hidden (1))
+ gtk_tree_view_column_set_visible (column, FALSE);
+
+ first_column = TRUE;
+ } else {
+ if (tree_data->editable) {
+ GtkCellRenderer *cell_renderer;
+
+ cell_renderer = gtk_cell_renderer_text_new ();
+ g_signal_connect (G_OBJECT (cell_renderer),
+ "edited",
+ G_CALLBACK (zenity_cell_edited_callback),
+ gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
+ g_object_set_data (G_OBJECT (cell_renderer),
+ "column",
+ GINT_TO_POINTER (column_index));
+
+ column = gtk_tree_view_column_new_with_attributes (tmp->data,
+ cell_renderer,
+ "text",
+ column_index,
+ "editable",
+ n_columns,
+ NULL);
+ } else {
+ column = gtk_tree_view_column_new_with_attributes (tmp->data,
+ gtk_cell_renderer_text_new (),
+ "text",
+ column_index,
+ NULL);
+ }
+
+ gtk_tree_view_column_set_sort_column_id (column, column_index);
+ gtk_tree_view_column_set_resizable (column, TRUE);
+
+ if (zenity_tree_column_is_hidden (column_index + 1))
+ gtk_tree_view_column_set_visible (column, FALSE);
+ }
+
+ gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+ column_index++;
+ }
+
+ if (tree_data->hide_header)
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
+
+ if (tree_data->radiobox || tree_data->checkbox) {
+ if (tree_data->data && *tree_data->data)
+ zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view),
+ tree_data->data,
+ n_columns,
+ TRUE,
+ tree_data->editable);
+ else
+ zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view),
+ n_columns,
+ TRUE,
+ tree_data->editable);
+ } else {
+ if (tree_data->data && *tree_data->data)
+ zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view),
+ tree_data->data,
+ n_columns,
+ FALSE,
+ tree_data->editable);
+ else
+ zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view),
+ n_columns,
+ FALSE,
+ tree_data->editable);
+ }
+
+ zenity_util_show_dialog (dialog, data->attach);
+
+ if (tree_data->mid_search)
+ gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (tree_view),
+ (GtkTreeViewSearchEqualFunc) zenity_mid_search_func,
+ model,
+ NULL);
+
+ if (data->timeout_delay > 0) {
+ g_timeout_add_seconds (data->timeout_delay,
+ (GSourceFunc) zenity_util_timeout_handle,
+ dialog);
+ }
+
+ gtk_main ();
+
+ g_object_unref (builder);
+}
- selected = g_slist_append (selected, g_value_dup_string (&value));
- g_value_unset (&value);
- }
+static void
+zenity_tree_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf,
+ GtkTreeIter *iter, GtkTreeView *tree_view) {
+ GValue value = {
+ 0,
+ };
+ gint n_columns, i;
+
+ n_columns =
+ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+
+ if (print_all_columns) {
+ for (i = 0; i < n_columns; i++) {
+ gtk_tree_model_get_value (model, iter, i, &value);
+
+ selected = g_slist_append (selected, g_value_dup_string (&value));
+ g_value_unset (&value);
+ }
+ return;
+ }
+
+ for (i = 0; print_columns[i] != 0; i++) {
+ gtk_tree_model_get_value (model, iter, print_columns[i] - 1, &value);
+
+ selected = g_slist_append (selected, g_value_dup_string (&value));
+ g_value_unset (&value);
+ }
}
static gboolean
-zenity_tree_dialog_toggle_get_selected (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GtkTreeView *tree_view)
-{
- GValue toggle_value = {0, };
- gint n_columns, i;
-
- n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
-
- gtk_tree_model_get_value (model, iter, 0, &toggle_value);
-
- if (g_value_get_boolean (&toggle_value)) {
- GValue value = {0, };
-
- if (print_all_columns) {
- for (i = 1; i < n_columns; i++) {
- gtk_tree_model_get_value (model, iter, i, &value);
-
- selected = g_slist_append (selected, g_value_dup_string (&value));
- g_value_unset (&value);
- }
- g_value_unset (&toggle_value);
- return FALSE;
- }
-
- for (i = 0; print_columns[i] != 0; i++) {
- gtk_tree_model_get_value (model, iter, print_columns[i] - 1, &value);
-
- selected = g_slist_append (selected, g_value_dup_string (&value));
- g_value_unset (&value);
- }
- }
-
- g_value_unset (&toggle_value);
-
- return FALSE;
+zenity_tree_dialog_toggle_get_selected (GtkTreeModel *model, GtkTreePath *path,
+ GtkTreeIter *iter, GtkTreeView *tree_view) {
+ GValue toggle_value = {
+ 0,
+ };
+ gint n_columns, i;
+
+ n_columns =
+ GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+
+ gtk_tree_model_get_value (model, iter, 0, &toggle_value);
+
+ if (g_value_get_boolean (&toggle_value)) {
+ GValue value = {
+ 0,
+ };
+
+ if (print_all_columns) {
+ for (i = 1; i < n_columns; i++) {
+ gtk_tree_model_get_value (model, iter, i, &value);
+
+ selected =
+ g_slist_append (selected, g_value_dup_string (&value));
+ g_value_unset (&value);
+ }
+ g_value_unset (&toggle_value);
+ return FALSE;
+ }
+
+ for (i = 0; print_columns[i] != 0; i++) {
+ gtk_tree_model_get_value (
+ model, iter, print_columns[i] - 1, &value);
+
+ selected = g_slist_append (selected, g_value_dup_string (&value));
+ g_value_unset (&value);
+ }
+ }
+
+ g_value_unset (&toggle_value);
+
+ return FALSE;
}
static void
-zenity_tree_dialog_output (void)
-{
-GObject *tree_view;
- GtkTreeSelection *selection;
- GtkTreeModel *model;
-
- tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
-
- if (gtk_tree_model_get_column_type (model, 0) == G_TYPE_BOOLEAN)
- gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) zenity_tree_dialog_toggle_get_selected,
- GTK_TREE_VIEW (tree_view));
- else {
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
- gtk_tree_selection_selected_foreach (selection,
- (GtkTreeSelectionForeachFunc) zenity_tree_dialog_get_selected,
- GTK_TREE_VIEW (tree_view));
- }
-
- GSList *tmp;
-
- for (tmp = selected; tmp; tmp = tmp->next) {
- if (tmp->next != NULL) {
- g_print ("%s%s", (gchar *) tmp->data, separator);
- }
- else
- g_print ("%s\n", (gchar *) tmp->data);
- }
-
- g_free (print_columns);
- g_free (hide_columns);
- g_free (separator);
- g_slist_foreach (selected, (GFunc) g_free, NULL);
- selected = NULL;
+zenity_tree_dialog_output (void) {
+ GObject *tree_view;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+
+ tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
+
+ if (gtk_tree_model_get_column_type (model, 0) == G_TYPE_BOOLEAN)
+ gtk_tree_model_foreach (model,
+ (GtkTreeModelForeachFunc) zenity_tree_dialog_toggle_get_selected,
+ GTK_TREE_VIEW (tree_view));
+ else {
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+ gtk_tree_selection_selected_foreach (selection,
+ (GtkTreeSelectionForeachFunc) zenity_tree_dialog_get_selected,
+ GTK_TREE_VIEW (tree_view));
+ }
+
+ GSList *tmp;
+
+ for (tmp = selected; tmp; tmp = tmp->next) {
+ if (tmp->next != NULL) {
+ g_print ("%s%s", (gchar *) tmp->data, separator);
+ } else
+ g_print ("%s\n", (gchar *) tmp->data);
+ }
+
+ g_free (print_columns);
+ g_free (hide_columns);
+ g_free (separator);
+ g_slist_foreach (selected, (GFunc) g_free, NULL);
+ selected = NULL;
}
static void
-zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
- ZenityData *zen_data = data;
-
- switch (response) {
- case GTK_RESPONSE_OK:
- zenity_tree_dialog_output ();
- zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
- break;
-
- case GTK_RESPONSE_CANCEL:
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
- break;
-
- case ZENITY_TIMEOUT:
- zenity_tree_dialog_output ();
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
- break;
-
- default:
- if (zen_data->extra_label && 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;
- }
- if (channel != NULL && g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE)
- g_io_channel_shutdown (channel, TRUE, NULL);
-
- gtk_main_quit ();
+zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data) {
+ ZenityData *zen_data = data;
+
+ switch (response) {
+ case GTK_RESPONSE_OK:
+ zenity_tree_dialog_output ();
+ zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+ break;
+
+ case GTK_RESPONSE_CANCEL:
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+ break;
+
+ case ZENITY_TIMEOUT:
+ zenity_tree_dialog_output ();
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+ break;
+
+ default:
+ if (zen_data->extra_label &&
+ 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;
+ }
+ if (channel != NULL &&
+ g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE)
+ g_io_channel_shutdown (channel, TRUE, NULL);
+
+ gtk_main_quit ();
}
static void
-zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path,
- GtkTreeViewColumn *tree_col, gpointer data)
-{
- ZenityData *zen_data = data;
-
- zenity_tree_dialog_output ();
- zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
- gtk_main_quit ();
+zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path,
+ GtkTreeViewColumn *tree_col, gpointer data) {
+ ZenityData *zen_data = data;
+
+ zenity_tree_dialog_output ();
+ zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+ gtk_main_quit ();
}
static gboolean
-zenity_tree_column_is_hidden (gint column_index)
-{
- gint i;
+zenity_tree_column_is_hidden (gint column_index) {
+ gint i;
- if (hide_columns != NULL)
- for (i = 0; hide_columns[i] != 0; i++)
- if (hide_columns[i] == column_index)
- return TRUE;
+ if (hide_columns != NULL)
+ for (i = 0; hide_columns[i] != 0; i++)
+ if (hide_columns[i] == column_index)
+ return TRUE;
- return FALSE;
+ return FALSE;
}
static gint *
-zenity_tree_extract_column_indexes (char *indexes, int n_columns)
-{
- char **tmp;
- gint *result;
- gint i, j, index;
+zenity_tree_extract_column_indexes (char *indexes, int n_columns) {
+ char **tmp;
+ gint *result;
+ gint i, j, index;
- tmp = g_strsplit (indexes,
- PRINT_HIDE_COLUMN_SEPARATOR, 0);
+ tmp = g_strsplit (indexes, PRINT_HIDE_COLUMN_SEPARATOR, 0);
- result = g_new (gint, 1);
+ result = g_new (gint, 1);
- for (j = i = 0; tmp[i] != NULL; i++) {
- index = atoi (tmp[i]);
+ for (j = i = 0; tmp[i] != NULL; i++) {
+ index = atoi (tmp[i]);
- if (index > 0 && index <= n_columns) {
- result[j] = index;
- j++;
- result = g_renew (gint, result, j + 1);
- }
- }
- result[j] = 0;
+ if (index > 0 && index <= n_columns) {
+ result[j] = index;
+ j++;
+ result = g_renew (gint, result, j + 1);
+ }
+ }
+ result[j] = 0;
- g_strfreev (tmp);
+ g_strfreev (tmp);
- return result;
+ return result;
}
diff --git a/src/util.c b/src/util.c
index ddb0146f..0c101866 100644
--- a/src/util.c
+++ b/src/util.c
@@ -29,340 +29,330 @@
#include "config.h"
-#include <stdio.h>
-#include <locale.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
#include "config.h"
#include "util.h"
#include "zenity.h"
+#include <errno.h>
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
#endif
-#define ZENITY_OK_DEFAULT 0
-#define ZENITY_CANCEL_DEFAULT 1
-#define ZENITY_ESC_DEFAULT 1
-#define ZENITY_ERROR_DEFAULT -1
-#define ZENITY_EXTRA_DEFAULT 127
-
-GtkBuilder*
-zenity_util_load_ui_file (const gchar *root_widget, ...)
-{
- va_list args;
- gchar *arg = NULL;
- GPtrArray *ptrarray;
- GtkBuilder *builder = gtk_builder_new ();
- GError *error = NULL;
- gchar **objects;
- guint result = 0;
-
- gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
-
- /* We have at least the root_widget and a NULL */
- ptrarray = g_ptr_array_sized_new (2);
-
- g_ptr_array_add (ptrarray, g_strdup (root_widget));
-
- va_start (args, root_widget);
-
- arg = va_arg (args, gchar*);
-
- while (arg) {
- g_ptr_array_add (ptrarray, g_strdup (arg));
- arg = va_arg (args, gchar*);
- }
- va_end (args);
-
- /* Enforce terminating NULL */
- g_ptr_array_add (ptrarray, NULL);
- objects = (gchar**) g_ptr_array_free (ptrarray, FALSE);
-
- if (g_file_test (ZENITY_UI_FILE_RELATIVEPATH, G_FILE_TEST_EXISTS)) {
- /* Try current dir, for debugging */
- result = gtk_builder_add_objects_from_file (builder,
- ZENITY_UI_FILE_RELATIVEPATH,
- objects, NULL);
- }
-
- if (result == 0)
- result = gtk_builder_add_objects_from_file (builder,
- ZENITY_UI_FILE_FULLPATH,
- objects, &error);
-
- g_strfreev (objects);
-
- if (result == 0) {
- g_warning ("Could not load ui file %s: %s", ZENITY_UI_FILE_FULLPATH,
- error->message);
- g_error_free (error);
- g_object_unref (builder);
- return NULL;
- }
-
- return builder;
+#define ZENITY_OK_DEFAULT 0
+#define ZENITY_CANCEL_DEFAULT 1
+#define ZENITY_ESC_DEFAULT 1
+#define ZENITY_ERROR_DEFAULT -1
+#define ZENITY_EXTRA_DEFAULT 127
+
+GtkBuilder *
+zenity_util_load_ui_file (const gchar *root_widget, ...) {
+ va_list args;
+ gchar *arg = NULL;
+ GPtrArray *ptrarray;
+ GtkBuilder *builder = gtk_builder_new ();
+ GError *error = NULL;
+ gchar **objects;
+ guint result = 0;
+
+ gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
+
+ /* We have at least the root_widget and a NULL */
+ ptrarray = g_ptr_array_sized_new (2);
+
+ g_ptr_array_add (ptrarray, g_strdup (root_widget));
+
+ va_start (args, root_widget);
+
+ arg = va_arg (args, gchar *);
+
+ while (arg) {
+ g_ptr_array_add (ptrarray, g_strdup (arg));
+ arg = va_arg (args, gchar *);
+ }
+ va_end (args);
+
+ /* Enforce terminating NULL */
+ g_ptr_array_add (ptrarray, NULL);
+ objects = (gchar **) g_ptr_array_free (ptrarray, FALSE);
+
+ if (g_file_test (ZENITY_UI_FILE_RELATIVEPATH, G_FILE_TEST_EXISTS)) {
+ /* Try current dir, for debugging */
+ result = gtk_builder_add_objects_from_file (
+ builder, ZENITY_UI_FILE_RELATIVEPATH, objects, NULL);
+ }
+
+ if (result == 0)
+ result = gtk_builder_add_objects_from_file (
+ builder, ZENITY_UI_FILE_FULLPATH, objects, &error);
+
+ g_strfreev (objects);
+
+ if (result == 0) {
+ g_warning ("Could not load ui file %s: %s",
+ ZENITY_UI_FILE_FULLPATH,
+ error->message);
+ g_error_free (error);
+ g_object_unref (builder);
+ return NULL;
+ }
+
+ return builder;
}
-gchar*
-zenity_util_strip_newline (gchar *string)
-{
- gsize len;
-
- g_return_val_if_fail (string != NULL, NULL);
-
- len = strlen (string);
- while (len--)
- {
- if (string[len] == '\n')
- string[len] = '\0';
- else
- break;
- }
-
- return string;
+gchar *
+zenity_util_strip_newline (gchar *string) {
+ gsize len;
+
+ g_return_val_if_fail (string != NULL, NULL);
+
+ len = strlen (string);
+ while (len--) {
+ if (string[len] == '\n')
+ string[len] = '\0';
+ else
+ break;
+ }
+
+ return string;
}
gboolean
-zenity_util_fill_file_buffer (GtkTextBuffer *buffer, const gchar *filename)
-{
- GtkTextIter iter, end;
- FILE *f;
- gchar buf[2048];
- gint remaining = 0;
+zenity_util_fill_file_buffer (GtkTextBuffer *buffer, const gchar *filename) {
+ GtkTextIter iter, end;
+ FILE *f;
+ gchar buf[2048];
+ gint remaining = 0;
- if (filename == NULL)
- return FALSE;
+ if (filename == NULL)
+ return FALSE;
- f = fopen (filename, "r");
+ f = fopen (filename, "r");
- if (f == NULL) {
- g_warning ("Cannot open file '%s': %s", filename, g_strerror (errno));
- return FALSE;
- }
+ if (f == NULL) {
+ g_warning ("Cannot open file '%s': %s", filename, g_strerror (errno));
+ return FALSE;
+ }
- gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
+ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
- while (!feof (f)) {
- gint count;
- const char *leftover;
- int to_read = 2047 - remaining;
+ while (!feof (f)) {
+ gint count;
+ const char *leftover;
+ int to_read = 2047 - remaining;
- count = fread (buf + remaining, 1, to_read, f);
- buf[count + remaining] = '\0';
+ count = fread (buf + remaining, 1, to_read, f);
+ buf[count + remaining] = '\0';
- g_utf8_validate (buf, count + remaining, &leftover);
+ g_utf8_validate (buf, count + remaining, &leftover);
- g_assert (g_utf8_validate (buf, leftover - buf, NULL));
- gtk_text_buffer_insert (buffer, &iter, buf, leftover - buf);
+ g_assert (g_utf8_validate (buf, leftover - buf, NULL));
+ gtk_text_buffer_insert (buffer, &iter, buf, leftover - buf);
- remaining = (buf + remaining + count) - leftover;
- g_memmove (buf, leftover, remaining);
+ remaining = (buf + remaining + count) - leftover;
+ g_memmove (buf, leftover, remaining);
- if (remaining > 6 || count < to_read)
- break;
- }
+ if (remaining > 6 || count < to_read)
+ break;
+ }
- if (remaining) {
- g_warning ("Invalid UTF-8 data encountered reading file '%s'", filename);
- return FALSE;
- }
+ if (remaining) {
+ g_warning (
+ "Invalid UTF-8 data encountered reading file '%s'", filename);
+ return FALSE;
+ }
- /* We had a newline in the buffer to begin with. (The buffer always contains
- * a newline, so we delete to the end of the buffer to clean up.
- */
-
- gtk_text_buffer_get_end_iter (buffer, &end);
- gtk_text_buffer_delete (buffer, &iter, &end);
+ /* We had a newline in the buffer to begin with. (The buffer always contains
+ * a newline, so we delete to the end of the buffer to clean up.
+ */
- gtk_text_buffer_set_modified (buffer, FALSE);
+ gtk_text_buffer_get_end_iter (buffer, &end);
+ gtk_text_buffer_delete (buffer, &iter, &end);
- return TRUE;
+ gtk_text_buffer_set_modified (buffer, FALSE);
+
+ return TRUE;
}
const gchar *
-zenity_util_icon_name_from_filename (const gchar *filename)
-{
- if (!filename || !filename[0])
- return "dialog-warning"; /* default */
-
- if (!g_ascii_strcasecmp (filename, "warning"))
- return "dialog-warning";
- if (!g_ascii_strcasecmp (filename, "info"))
- return "dialog-information";
- if (!g_ascii_strcasecmp (filename, "question"))
- return "dialog-question";
- if (!g_ascii_strcasecmp (filename, "error"))
- return "dialog-error";
- return NULL;
+zenity_util_icon_name_from_filename (const gchar *filename) {
+ if (!filename || !filename[0])
+ return "dialog-warning"; /* default */
+
+ if (!g_ascii_strcasecmp (filename, "warning"))
+ return "dialog-warning";
+ if (!g_ascii_strcasecmp (filename, "info"))
+ return "dialog-information";
+ if (!g_ascii_strcasecmp (filename, "question"))
+ return "dialog-question";
+ if (!g_ascii_strcasecmp (filename, "error"))
+ return "dialog-error";
+ return NULL;
}
void
-zenity_util_set_window_icon_from_file (GtkWidget *widget, const gchar *filename)
-{
- GdkPixbuf *pixbuf;
- const gchar *icon_name;
-
- icon_name = zenity_util_icon_name_from_filename (filename);
- if (icon_name) {
- gtk_window_set_icon_name (GTK_WINDOW (widget), icon_name);
- } else {
- pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
- gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
- g_object_unref (pixbuf);
- }
+zenity_util_set_window_icon_from_file (
+ GtkWidget *widget, const gchar *filename) {
+ GdkPixbuf *pixbuf;
+ const gchar *icon_name;
+
+ icon_name = zenity_util_icon_name_from_filename (filename);
+ if (icon_name) {
+ gtk_window_set_icon_name (GTK_WINDOW (widget), icon_name);
+ } else {
+ pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
+ gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
+ g_object_unref (pixbuf);
+ }
}
void
-zenity_util_set_window_icon (GtkWidget *widget, const gchar *filename, const gchar *default_file)
-{
- GdkPixbuf *pixbuf;
-
- if (filename != NULL) {
- zenity_util_set_window_icon_from_file (widget, filename);
- } else {
- pixbuf = gdk_pixbuf_new_from_file (default_file, NULL);
- if (pixbuf != NULL) {
- gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
- g_object_unref (pixbuf);
- }
- }
+zenity_util_set_window_icon (
+ GtkWidget *widget, const gchar *filename, const gchar *default_file) {
+ GdkPixbuf *pixbuf;
+
+ if (filename != NULL) {
+ zenity_util_set_window_icon_from_file (widget, filename);
+ } else {
+ pixbuf = gdk_pixbuf_new_from_file (default_file, NULL);
+ if (pixbuf != NULL) {
+ gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
+ g_object_unref (pixbuf);
+ }
+ }
}
void
-zenity_util_set_window_icon_from_icon_name (GtkWidget *widget, const gchar *filename, const gchar *default_icon_name)
-{
- if (filename != NULL)
- zenity_util_set_window_icon_from_file (widget, filename);
- else
- gtk_window_set_icon_name (GTK_WINDOW (widget), default_icon_name);
+zenity_util_set_window_icon_from_icon_name (
+ GtkWidget *widget, const gchar *filename, const gchar *default_icon_name) {
+ if (filename != NULL)
+ zenity_util_set_window_icon_from_file (widget, filename);
+ else
+ gtk_window_set_icon_name (GTK_WINDOW (widget), default_icon_name);
}
void
-zenity_util_show_help (GError **error)
-{
- gchar *tmp;
- tmp = g_find_program_in_path ("yelp");
-
- if (tmp) {
- g_free (tmp);
- g_spawn_command_line_async ("yelp help:zenity", error);
- }
+zenity_util_show_help (GError **error) {
+ gchar *tmp;
+ tmp = g_find_program_in_path ("yelp");
+
+ if (tmp) {
+ g_free (tmp);
+ g_spawn_command_line_async ("yelp help:zenity", error);
+ }
}
-gint
-zenity_util_return_exit_code ( ZenityExitCode value )
-{
-
- const gchar *env_var = NULL;
- gint retval;
-
- switch (value) {
-
- case ZENITY_OK:
- env_var = g_getenv("ZENITY_OK");
- if (! env_var)
- env_var = g_getenv("DIALOG_OK");
- if (! env_var)
- retval = ZENITY_OK_DEFAULT;
- break;
-
- case ZENITY_CANCEL:
- env_var = g_getenv("ZENITY_CANCEL");
- if (! env_var)
- env_var = g_getenv("DIALOG_CANCEL");
- if (! env_var)
- retval = ZENITY_CANCEL_DEFAULT;
- break;
-
- case ZENITY_ESC:
- env_var = g_getenv("ZENITY_ESC");
- if (! env_var)
- env_var = g_getenv("DIALOG_ESC");
- if (! env_var)
- retval = ZENITY_ESC_DEFAULT;
- break;
-
- case ZENITY_EXTRA:
- env_var = g_getenv("ZENITY_EXTRA");
- if (! env_var)
- env_var = g_getenv("DIALOG_EXTRA");
- if (! env_var)
- retval = ZENITY_EXTRA_DEFAULT;
- break;
-
- case ZENITY_ERROR:
- env_var = g_getenv("ZENITY_ERROR");
- if (! env_var)
- env_var = g_getenv("DIALOG_ERROR");
- if (! env_var)
- retval = ZENITY_ERROR_DEFAULT;
- break;
-
- case ZENITY_TIMEOUT:
- env_var = g_getenv("ZENITY_TIMEOUT");
- if (! env_var)
- env_var = g_getenv("DIALOG_TIMEOUT");
- if (! env_var)
- retval = ZENITY_TIMEOUT;
- break;
-
- default:
- retval = 1;
- }
-
- if (env_var)
- retval = atoi (env_var);
- return retval;
+gint
+zenity_util_return_exit_code (ZenityExitCode value) {
+
+ const gchar *env_var = NULL;
+ gint retval;
+
+ switch (value) {
+
+ case ZENITY_OK:
+ env_var = g_getenv ("ZENITY_OK");
+ if (!env_var)
+ env_var = g_getenv ("DIALOG_OK");
+ if (!env_var)
+ retval = ZENITY_OK_DEFAULT;
+ break;
+
+ case ZENITY_CANCEL:
+ env_var = g_getenv ("ZENITY_CANCEL");
+ if (!env_var)
+ env_var = g_getenv ("DIALOG_CANCEL");
+ if (!env_var)
+ retval = ZENITY_CANCEL_DEFAULT;
+ break;
+
+ case ZENITY_ESC:
+ env_var = g_getenv ("ZENITY_ESC");
+ if (!env_var)
+ env_var = g_getenv ("DIALOG_ESC");
+ if (!env_var)
+ retval = ZENITY_ESC_DEFAULT;
+ break;
+
+ case ZENITY_EXTRA:
+ env_var = g_getenv ("ZENITY_EXTRA");
+ if (!env_var)
+ env_var = g_getenv ("DIALOG_EXTRA");
+ if (!env_var)
+ retval = ZENITY_EXTRA_DEFAULT;
+ break;
+
+ case ZENITY_ERROR:
+ env_var = g_getenv ("ZENITY_ERROR");
+ if (!env_var)
+ env_var = g_getenv ("DIALOG_ERROR");
+ if (!env_var)
+ retval = ZENITY_ERROR_DEFAULT;
+ break;
+
+ case ZENITY_TIMEOUT:
+ env_var = g_getenv ("ZENITY_TIMEOUT");
+ if (!env_var)
+ env_var = g_getenv ("DIALOG_TIMEOUT");
+ if (!env_var)
+ retval = ZENITY_TIMEOUT;
+ break;
+
+ default:
+ retval = 1;
+ }
+
+ if (env_var)
+ retval = atoi (env_var);
+ return retval;
}
void
-zenity_util_exit_code_with_data(ZenityExitCode value, ZenityData *zen_data)
-{
- zen_data->exit_code = zenity_util_return_exit_code (value);
+zenity_util_exit_code_with_data (ZenityExitCode value, ZenityData *zen_data) {
+ zen_data->exit_code = zenity_util_return_exit_code (value);
}
#ifdef GDK_WINDOWING_X11
static Window
-transient_get_xterm (void)
-{
- const char *wid_str = g_getenv ("WINDOWID");
- if (wid_str) {
- char *wid_str_end;
- int ret;
- Window wid = strtoul (wid_str, &wid_str_end, 10);
- if (*wid_str != '\0' && *wid_str_end == '\0' && wid != 0) {
- XWindowAttributes attrs;
- gdk_error_trap_push ();
- ret = XGetWindowAttributes (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), wid, &attrs);
- gdk_flush();
- if (gdk_error_trap_pop () != 0 || ret == 0) {
- return None;
- }
- return wid;
- }
- }
- return None;
+transient_get_xterm (void) {
+ const char *wid_str = g_getenv ("WINDOWID");
+ if (wid_str) {
+ char *wid_str_end;
+ int ret;
+ Window wid = strtoul (wid_str, &wid_str_end, 10);
+ if (*wid_str != '\0' && *wid_str_end == '\0' && wid != 0) {
+ XWindowAttributes attrs;
+ gdk_error_trap_push ();
+ ret = XGetWindowAttributes (
+ GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), wid, &attrs);
+ gdk_flush ();
+ if (gdk_error_trap_pop () != 0 || ret == 0) {
+ return None;
+ }
+ return wid;
+ }
+ }
+ return None;
}
static void
-transient_x_free (void *ptr)
-{
- if (ptr)
- XFree (ptr);
+transient_x_free (void *ptr) {
+ if (ptr)
+ XFree (ptr);
}
static gboolean
-transient_is_toplevel (Window wid)
-{
- XTextProperty prop;
- Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
- if (!XGetWMName (dpy, wid, &prop))
- return FALSE;
- transient_x_free (prop.value);
- return !!prop.value;
+transient_is_toplevel (Window wid) {
+ XTextProperty prop;
+ Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ if (!XGetWMName (dpy, wid, &prop))
+ return FALSE;
+ transient_x_free (prop.value);
+ return !!prop.value;
}
/*
@@ -372,62 +362,56 @@ transient_is_toplevel (Window wid)
*/
static Window
-transient_get_xterm_toplevel (void)
-{
- Window xterm = transient_get_xterm ();
- Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
- while (xterm != None && !transient_is_toplevel (xterm))
- {
- Window root, parent, *children;
- unsigned nchildren;
- XQueryTree (dpy, xterm,
- &root, &parent,
- &children, &nchildren);
- transient_x_free (children);
- if (parent == root)
- xterm = None;
- else
- xterm = parent;
- }
- return xterm;
+transient_get_xterm_toplevel (void) {
+ Window xterm = transient_get_xterm ();
+ Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ while (xterm != None && !transient_is_toplevel (xterm)) {
+ Window root, parent, *children;
+ unsigned nchildren;
+ XQueryTree (dpy, xterm, &root, &parent, &children, &nchildren);
+ transient_x_free (children);
+ if (parent == root)
+ xterm = None;
+ else
+ xterm = parent;
+ }
+ return xterm;
}
static void
-zenity_util_make_transient (GdkWindow *window, Window parent)
-{
- Window parent_window = parent;
- if (parent_window == 0)
- parent_window = transient_get_xterm_toplevel ();
- if (parent_window != None) {
- XSetTransientForHint (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), GDK_WINDOW_XID(window), parent_window);
- }
+zenity_util_make_transient (GdkWindow *window, Window parent) {
+ Window parent_window = parent;
+ if (parent_window == 0)
+ parent_window = transient_get_xterm_toplevel ();
+ if (parent_window != None) {
+ XSetTransientForHint (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+ GDK_WINDOW_XID (window),
+ parent_window);
+ }
}
#endif /* GDK_WINDOWING_X11 */
void
-zenity_util_show_dialog (GtkWidget *dialog, guintptr parent)
-{
- gtk_widget_realize (dialog);
+zenity_util_show_dialog (GtkWidget *dialog, guintptr parent) {
+ gtk_widget_realize (dialog);
#ifdef GDK_WINDOWING_X11
- if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
- {
- g_assert (gtk_widget_get_window(dialog));
- zenity_util_make_transient (gtk_widget_get_window(dialog), parent);
- }
+ if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) {
+ g_assert (gtk_widget_get_window (dialog));
+ zenity_util_make_transient (gtk_widget_get_window (dialog), parent);
+ }
#endif
- gtk_widget_show (dialog);
+ gtk_widget_show (dialog);
}
-gboolean
-zenity_util_timeout_handle (gpointer data)
-{
- GtkDialog *dialog = GTK_DIALOG(data);
- if(dialog != NULL)
- gtk_dialog_response(dialog, ZENITY_TIMEOUT);
- else {
- gtk_main_quit();
- exit(ZENITY_TIMEOUT);
- }
- return FALSE;
+gboolean
+zenity_util_timeout_handle (gpointer data) {
+ GtkDialog *dialog = GTK_DIALOG (data);
+ if (dialog != NULL)
+ gtk_dialog_response (dialog, ZENITY_TIMEOUT);
+ else {
+ gtk_main_quit ();
+ exit (ZENITY_TIMEOUT);
+ }
+ return FALSE;
}
diff --git a/src/util.h b/src/util.h
index c847cd4c..3e5391b2 100644
--- a/src/util.h
+++ b/src/util.h
@@ -1,37 +1,34 @@
-#ifndef UTIL_H
+#ifndef UTIL_H
#define UTIL_H
-#include <gtk/gtk.h>
#include "zenity.h"
-
+#include <gtk/gtk.h>
G_BEGIN_DECLS
-#define ZENITY_UI_FILE_FULLPATH ZENITY_DATADIR "/zenity.ui"
-#define ZENITY_UI_FILE_RELATIVEPATH "./zenity.ui"
-
-#define ZENITY_IMAGE_FULLPATH(filename) (ZENITY_DATADIR "/" filename)
-
-GtkBuilder* zenity_util_load_ui_file (const gchar *widget_root, ...) G_GNUC_NULL_TERMINATED;
-gchar * zenity_util_strip_newline (gchar *string);
-gboolean zenity_util_fill_file_buffer (GtkTextBuffer *buffer,
- const gchar *filename);
-const gchar * zenity_util_icon_name_from_filename (const gchar *filename);
-void zenity_util_set_window_icon (GtkWidget *widget,
- const gchar *filename,
- const gchar *default_file);
-void zenity_util_set_window_icon_from_icon_name(GtkWidget *widget,
- const gchar *filename,
- const gchar *default_icon_name);
-void zenity_util_set_window_icon_from_file (GtkWidget *widget,
- const gchar *filename);
-void zenity_util_show_help (GError **error);
-gint zenity_util_return_exit_code (ZenityExitCode value);
-void zenity_util_exit_code_with_data (ZenityExitCode value,
- ZenityData *data);
-void zenity_util_show_dialog (GtkWidget *widget, guintptr parent);
-
-gboolean zenity_util_timeout_handle (gpointer data);
+#define ZENITY_UI_FILE_FULLPATH ZENITY_DATADIR "/zenity.ui"
+#define ZENITY_UI_FILE_RELATIVEPATH "./zenity.ui"
+
+#define ZENITY_IMAGE_FULLPATH(filename) (ZENITY_DATADIR "/" filename)
+
+GtkBuilder *zenity_util_load_ui_file (
+ const gchar *widget_root, ...) G_GNUC_NULL_TERMINATED;
+gchar *zenity_util_strip_newline (gchar *string);
+gboolean zenity_util_fill_file_buffer (
+ GtkTextBuffer *buffer, const gchar *filename);
+const gchar *zenity_util_icon_name_from_filename (const gchar *filename);
+void zenity_util_set_window_icon (
+ GtkWidget *widget, const gchar *filename, const gchar *default_file);
+void zenity_util_set_window_icon_from_icon_name (
+ GtkWidget *widget, const gchar *filename, const gchar *default_icon_name);
+void zenity_util_set_window_icon_from_file (
+ GtkWidget *widget, const gchar *filename);
+void zenity_util_show_help (GError **error);
+gint zenity_util_return_exit_code (ZenityExitCode value);
+void zenity_util_exit_code_with_data (ZenityExitCode value, ZenityData *data);
+void zenity_util_show_dialog (GtkWidget *widget, guintptr parent);
+
+gboolean zenity_util_timeout_handle (gpointer data);
G_END_DECLS
diff --git a/src/zenity.h b/src/zenity.h
index bab11e31..b86a264d 100644
--- a/src/zenity.h
+++ b/src/zenity.h
@@ -7,9 +7,9 @@ G_BEGIN_DECLS
#ifdef ENABLE_NLS
#include <libintl.h>
-#define _(String) dgettext(GETTEXT_PACKAGE,String)
+#define _(String) dgettext (GETTEXT_PACKAGE, String)
#ifdef gettext_noop
-#define N_(String) gettext_noop(String)
+#define N_(String) gettext_noop (String)
#else
#define N_(String) (String)
#endif
@@ -18,205 +18,196 @@ G_BEGIN_DECLS
#define N_(String) (String)
#define textdomain(String) (String)
#define gettext(String) (String)
-#define dgettext(Domain,String) (String)
-#define dcgettext(Domain,String,Type) (String)
-#define bindtextdomain(Domain,Directory) (Domain)
+#define dgettext(Domain, String) (String)
+#define dcgettext(Domain, String, Type) (String)
+#define bindtextdomain(Domain, Directory) (Domain)
#endif
typedef struct {
- gchar *dialog_title;
- gchar *window_icon;
- gchar *ok_label;
- gchar *cancel_label;
- gchar **extra_label;
- gint width;
- gint height;
- gint exit_code;
- gint timeout_delay;
- gboolean modal;
- guintptr attach;
+ gchar *dialog_title;
+ gchar *window_icon;
+ gchar *ok_label;
+ gchar *cancel_label;
+ gchar **extra_label;
+ gint width;
+ gint height;
+ gint exit_code;
+ gint timeout_delay;
+ gboolean modal;
+ guintptr attach;
} ZenityData;
typedef enum {
- ZENITY_OK,
- ZENITY_CANCEL,
- ZENITY_ESC,
- ZENITY_ERROR,
- ZENITY_EXTRA,
- ZENITY_TIMEOUT
+ ZENITY_OK,
+ ZENITY_CANCEL,
+ ZENITY_ESC,
+ ZENITY_ERROR,
+ ZENITY_EXTRA,
+ ZENITY_TIMEOUT
} ZenityExitCode;
typedef struct {
- gchar *dialog_text;
- gint day;
- gint month;
- gint year;
- gchar *date_format;
+ gchar *dialog_text;
+ gint day;
+ gint month;
+ gint year;
+ gchar *date_format;
} ZenityCalendarData;
typedef enum {
- ZENITY_MSG_WARNING,
- ZENITY_MSG_QUESTION,
- ZENITY_MSG_SWITCH,
- ZENITY_MSG_ERROR,
- ZENITY_MSG_INFO
+ ZENITY_MSG_WARNING,
+ ZENITY_MSG_QUESTION,
+ ZENITY_MSG_SWITCH,
+ ZENITY_MSG_ERROR,
+ ZENITY_MSG_INFO
} MsgMode;
typedef struct {
- gchar *dialog_text;
- gchar *dialog_icon;
- MsgMode mode;
- gboolean no_wrap;
- gboolean no_markup;
- gboolean default_cancel;
- gboolean ellipsize;
+ gchar *dialog_text;
+ gchar *dialog_icon;
+ MsgMode mode;
+ gboolean no_wrap;
+ gboolean no_markup;
+ gboolean default_cancel;
+ gboolean ellipsize;
} ZenityMsgData;
typedef struct {
- gchar *dialog_text;
- gint value;
- gint min_value;
- gint max_value;
- gint step;
- gboolean print_partial;
- gboolean hide_value;
+ gchar *dialog_text;
+ gint value;
+ gint min_value;
+ gint max_value;
+ gint step;
+ gboolean print_partial;
+ gboolean hide_value;
} ZenityScaleData;
typedef struct {
- gchar *uri;
- gboolean multi;
- gboolean directory;
- gboolean save;
- gboolean confirm_overwrite;
- gchar *separator;
- gchar **filter;
+ gchar *uri;
+ gboolean multi;
+ gboolean directory;
+ gboolean save;
+ gboolean confirm_overwrite;
+ gchar *separator;
+ gchar **filter;
} ZenityFileData;
typedef struct {
- gchar *dialog_text;
- gchar *entry_text;
- gboolean hide_text;
- const gchar **data;
+ gchar *dialog_text;
+ gchar *entry_text;
+ gboolean hide_text;
+ const gchar **data;
} ZenityEntryData;
typedef struct {
- gchar *dialog_text;
- gchar *entry_text;
- gboolean pulsate;
- gboolean autoclose;
- gboolean autokill;
- gdouble percentage;
- gboolean no_cancel;
- gboolean time_remaining;
+ gchar *dialog_text;
+ gchar *entry_text;
+ gboolean pulsate;
+ gboolean autoclose;
+ gboolean autokill;
+ gdouble percentage;
+ gboolean no_cancel;
+ gboolean time_remaining;
} ZenityProgressData;
typedef struct {
- gchar *uri;
- gboolean editable;
- gboolean no_wrap;
- gboolean auto_scroll;
- gchar *font;
- GtkTextBuffer *buffer;
- gchar *checkbox;
+ gchar *uri;
+ gboolean editable;
+ gboolean no_wrap;
+ gboolean auto_scroll;
+ gchar *font;
+ GtkTextBuffer *buffer;
+ gchar *checkbox;
#ifdef HAVE_WEBKITGTK
- gboolean html;
- gboolean no_interaction;
- gchar *url;
+ gboolean html;
+ gboolean no_interaction;
+ gchar *url;
#endif
} ZenityTextData;
typedef struct {
- gchar *dialog_text;
- GSList *columns;
- gboolean checkbox;
- gboolean radiobox;
- gboolean hide_header;
- gboolean imagebox;
- gchar *separator;
- gboolean multi;
- gboolean editable;
- gboolean mid_search;
- gchar *print_column;
- gchar *hide_column;
- const gchar **data;
+ gchar *dialog_text;
+ GSList *columns;
+ gboolean checkbox;
+ gboolean radiobox;
+ gboolean hide_header;
+ gboolean imagebox;
+ gchar *separator;
+ gboolean multi;
+ gboolean editable;
+ gboolean mid_search;
+ gchar *print_column;
+ gchar *hide_column;
+ const gchar **data;
} ZenityTreeData;
#ifdef HAVE_LIBNOTIFY
typedef struct {
- gchar *notification_text;
- gboolean listen;
- gchar **notification_hints;
+ gchar *notification_text;
+ gboolean listen;
+ gchar **notification_hints;
} ZenityNotificationData;
#endif
typedef struct {
- gchar *color;
- gboolean show_palette;
+ gchar *color;
+ gboolean show_palette;
} ZenityColorData;
typedef struct {
- GSList *list;
- GSList *list_widgets;
- GSList *list_values;
- GSList *column_values;
- GSList *combo_values;
- gchar *dialog_text;
- gchar *separator;
- gchar *date_format;
-// gchar *hide_column;
- gboolean show_header;
+ GSList *list;
+ GSList *list_widgets;
+ GSList *list_values;
+ GSList *column_values;
+ GSList *combo_values;
+ gchar *dialog_text;
+ gchar *separator;
+ gchar *date_format;
+ // gchar *hide_column;
+ gboolean show_header;
} ZenityFormsData;
typedef enum {
- ZENITY_FORMS_ENTRY,
- ZENITY_FORMS_PASSWORD,
- ZENITY_FORMS_CALENDAR,
- ZENITY_FORMS_LIST,
- ZENITY_FORMS_COMBO
+ ZENITY_FORMS_ENTRY,
+ ZENITY_FORMS_PASSWORD,
+ ZENITY_FORMS_CALENDAR,
+ ZENITY_FORMS_LIST,
+ ZENITY_FORMS_COMBO
} ZenityFormsType;
typedef struct {
- gchar *option_value;
- ZenityFormsType type;
- GtkWidget *forms_widget;
+ gchar *option_value;
+ ZenityFormsType type;
+ GtkWidget *forms_widget;
} ZenityFormsValue;
typedef struct {
- gboolean username;
- gchar *password;
- GtkWidget *entry_username;
- GtkWidget *entry_password;
+ gboolean username;
+ gchar *password;
+ GtkWidget *entry_username;
+ GtkWidget *entry_password;
} ZenityPasswordData;
-void zenity_calendar (ZenityData *data,
- ZenityCalendarData *calendar_data);
-void zenity_msg (ZenityData *data,
- ZenityMsgData *msg_data);
-void zenity_fileselection (ZenityData *data,
- ZenityFileData *file_data);
-void zenity_entry (ZenityData *data,
- ZenityEntryData *entry_data);
-void zenity_progress (ZenityData *data,
- ZenityProgressData *progress_data);
-void zenity_text (ZenityData *data,
- ZenityTextData *text_data);
-void zenity_tree (ZenityData *data,
- ZenityTreeData *tree_data);
+void zenity_calendar (ZenityData *data, ZenityCalendarData *calendar_data);
+void zenity_msg (ZenityData *data, ZenityMsgData *msg_data);
+void zenity_fileselection (ZenityData *data, ZenityFileData *file_data);
+void zenity_entry (ZenityData *data, ZenityEntryData *entry_data);
+void zenity_progress (ZenityData *data, ZenityProgressData *progress_data);
+void zenity_text (ZenityData *data, ZenityTextData *text_data);
+void zenity_tree (ZenityData *data, ZenityTreeData *tree_data);
#ifdef HAVE_LIBNOTIFY
-void zenity_notification (ZenityData *data,
- ZenityNotificationData *notification_data);
+void zenity_notification (
+ ZenityData *data, ZenityNotificationData *notification_data);
#endif
-void zenity_colorselection (ZenityData *data,
- ZenityColorData *notification_data);
-void zenity_scale (ZenityData *data,
- ZenityScaleData *scale_data);
-void zenity_about (ZenityData *data);
+void zenity_colorselection (
+ ZenityData *data, ZenityColorData *notification_data);
+void zenity_scale (ZenityData *data, ZenityScaleData *scale_data);
+void zenity_about (ZenityData *data);
-void zenity_password_dialog (ZenityData *data,
- ZenityPasswordData *password_data);
-void zenity_forms_dialog (ZenityData *data,
- ZenityFormsData *forms_data);
+void zenity_password_dialog (
+ ZenityData *data, ZenityPasswordData *password_data);
+void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data);
G_END_DECLS
#endif /* ZENITY_H */
bgstack15