summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/about.c5
-rw-r--r--src/main.c366
-rw-r--r--src/text.c2
-rw-r--r--src/zenity.h2
4 files changed, 160 insertions, 215 deletions
diff --git a/src/about.c b/src/about.c
index d260f608..fcc9352b 100644
--- a/src/about.c
+++ b/src/about.c
@@ -36,6 +36,7 @@ static GtkWidget *cred_dialog;
static void zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data);
+/* Sync with the people in the THANKS file */
static const gchar *author_credits[] = {
"Jonathan Blanford <jrb@redhat.com>",
"Anders Carlsson <andersca@gnu.org>",
@@ -239,6 +240,7 @@ zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data)
{
ZenityData *zen_data = data;
GError *error = NULL;
+ gchar *help_string;
switch (response) {
case GTK_RESPONSE_OK:
@@ -247,7 +249,8 @@ zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data)
break;
case GTK_RESPONSE_HELP:
- zenity_util_show_help ("ghelp:///", NULL);
+ help_string = g_strconcat ("ghelp://", ZENITY_DATADIR, "help/zenity", NULL);
+ zenity_util_show_help (help_string, NULL);
break;
case GTK_RESPONSE_CREDITS:
diff --git a/src/main.c b/src/main.c
index a8e1e0e4..c2155f15 100644
--- a/src/main.c
+++ b/src/main.c
@@ -41,6 +41,13 @@ typedef enum {
MODE_LAST
} ZenityDialogMode;
+typedef enum {
+ ERROR_DUPLICATE,
+ ERROR_SUPPORT,
+ ERROR_DIALOG,
+ ERROR_LAST
+} ZenityError;
+
typedef struct {
ZenityDialogMode mode;
ZenityData *data;
@@ -879,12 +886,33 @@ main (gint argc, gchar **argv) {
exit (retval);
}
-static
-void zenity_parse_options_callback (poptContext ctx,
- enum poptCallbackReason reason,
- const struct poptOption *opt,
- const char *arg,
- void *data)
+static void
+zenity_error (gchar *string, ZenityError error)
+{
+ switch (error) {
+ case ERROR_DUPLICATE:
+ g_printerr (_("%s given twice for the same dialog\n"), string);
+ zenity_free_parsing_options ();
+ exit (-1);
+ case ERROR_SUPPORT:
+ g_printerr (_("%s is not supported for this dialog\n"), string);
+ zenity_free_parsing_options ();
+ exit (-1);
+ case ERROR_DIALOG:
+ g_printerr (_("Two or more dialog options specified\n"));
+ zenity_free_parsing_options ();
+ exit (-1);
+ default:
+ return;
+ }
+}
+
+static void
+zenity_parse_options_callback (poptContext ctx,
+ enum poptCallbackReason reason,
+ const struct poptOption *opt,
+ const char *arg,
+ void *data)
{
static gboolean parse_option_dateformat = FALSE;
static gboolean parse_option_separator = FALSE;
@@ -900,103 +928,79 @@ void zenity_parse_options_callback (poptContext ctx,
switch (opt->val & POPT_ARG_MASK) {
case OPTION_CALENDAR:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_CALENDAR;
break;
case OPTION_ENTRY:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_ENTRY;
break;
case OPTION_ERROR:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_ERROR;
results->msg_data->mode = ZENITY_MSG_ERROR;
break;
case OPTION_INFO:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_INFO;
results->msg_data->mode = ZENITY_MSG_INFO;
break;
case OPTION_FILE:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_FILE;
break;
case OPTION_LIST:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_LIST;
break;
case OPTION_PROGRESS:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_PROGRESS;
break;
case OPTION_QUESTION:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_QUESTION;
results->msg_data->mode = ZENITY_MSG_QUESTION;
break;
case OPTION_TEXTINFO:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_TEXTINFO;
break;
case OPTION_WARNING:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_WARNING;
results->msg_data->mode = ZENITY_MSG_WARNING;
break;
case OPTION_TITLE:
- if (results->data->dialog_title != NULL) {
- g_printerr (_("--title given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->data->dialog_title != NULL)
+ zenity_error ("--title", ERROR_DUPLICATE);
+
results->data->dialog_title = g_strdup (arg);
break;
case OPTION_ICON:
- if (results->data->window_icon != NULL) {
- g_printerr (_("--window-icon given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->data->window_icon != NULL)
+ zenity_error ("--window-icon", ERROR_DUPLICATE);
+
results->data->window_icon = g_strdup (arg);
break;
case OPTION_CALENDARTEXT:
@@ -1011,11 +1015,8 @@ void zenity_parse_options_callback (poptContext ctx,
* parse_options_callback gets called for each option. Suckage
*/
- if (parse_option_text > 6) {
- g_printerr (_("--text given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (parse_option_text > 6)
+ zenity_error ("--text", ERROR_DUPLICATE);
switch (results->mode) {
case MODE_CALENDAR:
@@ -1034,102 +1035,72 @@ void zenity_parse_options_callback (poptContext ctx,
results->progress_data->dialog_text = g_strdup (arg);
break;
default:
- g_printerr (_("--text is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
+ zenity_error ("--text", ERROR_SUPPORT);
}
parse_option_text++;
break;
case OPTION_DAY:
- if (results->mode != MODE_CALENDAR) {
- g_printerr (_("--day is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->calendar_data->day > 0) {
- g_printerr (_("--day given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_CALENDAR)
+ zenity_error ("--day", ERROR_SUPPORT);
+
+ if (results->calendar_data->day > 0)
+ zenity_error ("--day", ERROR_DUPLICATE);
+
results->calendar_data->day = atoi (arg);
break;
case OPTION_MONTH:
- if (results->mode != MODE_CALENDAR) {
- g_printerr (_("--month is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->calendar_data->month > 0) {
- g_printerr (_("--month given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_CALENDAR)
+ zenity_error ("--month", ERROR_SUPPORT);
+
+ if (results->calendar_data->month > 0)
+ zenity_error ("--day", ERROR_DUPLICATE);
+
results->calendar_data->month = atoi (arg);
break;
case OPTION_YEAR:
- if (results->mode != MODE_CALENDAR) {
- g_printerr (_("--year is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->calendar_data->year > 0) {
- g_printerr (_("--year given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_CALENDAR)
+ zenity_error ("--year", ERROR_SUPPORT);
+
+ if (results->calendar_data->year > 0)
+ zenity_error ("--year", ERROR_DUPLICATE);
+
results->calendar_data->year = atoi (arg);
break;
case OPTION_DATEFORMAT:
- if (results->mode != MODE_CALENDAR) {
- g_printerr (_("--date-format is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (parse_option_dateformat == TRUE) {
- g_printerr (_("--date-format given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_CALENDAR)
+ zenity_error ("--date-format", ERROR_SUPPORT);
+
+ if (parse_option_dateformat == TRUE)
+ zenity_error ("--date-format", ERROR_DUPLICATE);
+
results->calendar_data->date_format = g_strdup (arg);
parse_option_dateformat = TRUE;
break;
case OPTION_INPUTTEXT:
- if (results->mode != MODE_ENTRY) {
- g_printerr (_("--entry-text is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->entry_data->entry_text != NULL) {
- g_printerr (_("--entry-text given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_ENTRY)
+ zenity_error ("--entry-text", ERROR_SUPPORT);
+
+ if (results->entry_data->entry_text != NULL)
+ zenity_error ("--entry-text", ERROR_DUPLICATE);
+
results->entry_data->entry_text = g_strdup (arg);
break;
case OPTION_HIDETEXT:
- if (results->mode != MODE_ENTRY) {
- g_printerr (_("--hide-text is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->entry_data->visible == FALSE) {
- g_printerr (_("--hide-text given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_ENTRY)
+ zenity_error ("--hide-text", ERROR_SUPPORT);
+
+ if (results->entry_data->visible == FALSE)
+ zenity_error ("--hide-text", ERROR_DUPLICATE);
+
results->entry_data->visible = FALSE;
break;
case OPTION_TEXTEDIT:
- if (results->mode != MODE_TEXTINFO) {
- g_printerr (_("--editable is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->text_data->editable == TRUE) {
- g_printerr (_("--editable given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_TEXTINFO)
+ zenity_error ("--editable", ERROR_SUPPORT);
+
+ if (results->text_data->editable == TRUE)
+ zenity_error ("--editable", ERROR_DUPLICATE);
+
results->text_data->editable = TRUE;
break;
case OPTION_FILENAME:
@@ -1140,11 +1111,8 @@ void zenity_parse_options_callback (poptContext ctx,
* parse_options_callback gets called for each option. Suckage
*/
- if (parse_option_file > 2) {
- g_printerr (_("--filename given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (parse_option_file > 2)
+ zenity_error ("--filename", ERROR_DUPLICATE);
switch (results->mode) {
case MODE_FILE:
@@ -1154,95 +1122,69 @@ void zenity_parse_options_callback (poptContext ctx,
results->text_data->uri = g_strdup (arg);
break;
default:
- g_printerr (_("--filename is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
+ zenity_error ("--filename", ERROR_SUPPORT);
}
parse_option_file++;
break;
case OPTION_COLUMN:
- if (results->mode != MODE_LIST) {
- g_printerr (_("--column is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LIST)
+ zenity_error ("--column", ERROR_SUPPORT);
+
results->tree_data->columns = g_slist_append (results->tree_data->columns, g_strdup (arg));
break;
case OPTION_CHECKLIST:
- if (results->mode != MODE_LIST) {
- g_printerr (_("--checkbox is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->tree_data->checkbox == TRUE) {
- g_printerr (_("--checkbox given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LIST)
+ zenity_error ("--checkbox", ERROR_SUPPORT);
+
+ if (results->tree_data->checkbox == TRUE)
+ zenity_error ("--checkbox", ERROR_DUPLICATE);
+
results->tree_data->checkbox = TRUE;
break;
case OPTION_RADIOLIST:
- if (results->mode != MODE_LIST) {
- g_printerr (_("--radiobox is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->tree_data->radiobox == TRUE) {
- g_printerr (_("--radiobox given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LIST)
+ zenity_error ("--radiobox", ERROR_SUPPORT);
+
+ if (results->tree_data->radiobox == TRUE)
+ zenity_error ("--radiobox", ERROR_DUPLICATE);
+
results->tree_data->radiobox = TRUE;
break;
case OPTION_SEPERATOR:
- if (results->mode != MODE_LIST) {
- g_printerr (_("--separator is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (parse_option_separator == TRUE) {
- g_printerr (_("--separator given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LIST)
+ zenity_error ("--separator", ERROR_SUPPORT);
+
+ if (parse_option_separator == TRUE)
+ zenity_error ("--separator", ERROR_DUPLICATE);
+
results->tree_data->separator = g_strdup (arg);
parse_option_separator = TRUE;
break;
case OPTION_PERCENTAGE:
- if (results->mode != MODE_PROGRESS) {
- g_printerr (_("--percentage is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
- if (results->progress_data->percentage > -1) {
- g_printerr (_("--percentage given twice for the same dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_PROGRESS)
+ zenity_error ("--percentage", ERROR_SUPPORT);
+
+ if (results->progress_data->percentage > -1)
+ zenity_error ("--percentage", ERROR_DUPLICATE);
+
results->progress_data->percentage = atoi (arg);
break;
case OPTION_PULSATE:
- if (results->mode != MODE_PROGRESS) {
- g_printerr (_("--pulsate is not supported for this dialog\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_PROGRESS)
+ zenity_error ("--pulsate", ERROR_SUPPORT);
+
results->progress_data->pulsate = TRUE;
break;
case OPTION_ABOUT:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
results->mode = MODE_ABOUT;
break;
case OPTION_VERSION:
- if (results->mode != MODE_LAST) {
- g_printerr (_("Two or more dialog options specified\n"));
- zenity_free_parsing_options ();
- exit (-1);
- }
+ if (results->mode != MODE_LAST)
+ zenity_error (NULL, ERROR_DIALOG);
+
g_print ("%s\n", VERSION);
exit (0);
break;
diff --git a/src/text.c b/src/text.c
index 02b2f109..7601fd98 100644
--- a/src/text.c
+++ b/src/text.c
@@ -86,7 +86,7 @@ zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data)
switch (response) {
case GTK_RESPONSE_CLOSE:
if (zen_text_data->editable) {
- GtkTextIter start,end;
+ GtkTextIter start, end;
gtk_text_buffer_get_bounds (zen_text_data->buffer, &start, &end);
g_printerr (gtk_text_buffer_get_text (zen_text_data->buffer, &start, &end, 0));
diff --git a/src/zenity.h b/src/zenity.h
index 18da11ec..de833f0b 100644
--- a/src/zenity.h
+++ b/src/zenity.h
@@ -68,7 +68,7 @@ typedef struct {
typedef struct {
gchar *uri;
- gboolean editable;
+ gboolean editable;
GtkTextBuffer *buffer;
} ZenityTextData;
bgstack15