Finish off the indentation cleanup. Add new '--width' and '--height'

2003-04-13  Glynn Foster  <glynn.foster@sun.com>

	* src/calendar.c, src/entry.c, src/fileselection.c,
	src/main.c, src/msg.c, src/progress.c, src/text.c,
	src/tree.c, src/zenity.h: Finish off the indentation cleanup.
	Add new '--width' and '--height' options to the general options.
	Fix up the radio list view, so that we can now act like a radio
	button group.

	* TODO: Update
This commit is contained in:
Glynn Foster 2003-04-13 15:42:41 +00:00 committed by Glynn Foster
parent 58ed174842
commit 965c2a9149
11 changed files with 362 additions and 279 deletions

View File

@ -1,3 +1,14 @@
2003-04-13 Glynn Foster <glynn.foster@sun.com>
* src/calendar.c, src/entry.c, src/fileselection.c,
src/main.c, src/msg.c, src/progress.c, src/text.c,
src/tree.c, src/zenity.h: Finish off the indentation cleanup.
Add new '--width' and '--height' options to the general options.
Fix up the radio list view, so that we can now act like a radio
button group.
* TODO: Update
2003-04-08 Alessio Frusciante <algol@firenze.linux.it> 2003-04-08 Alessio Frusciante <algol@firenze.linux.it>
* configure.in: Added "it" (Italian) to ALL_LINGUAS. * configure.in: Added "it" (Italian) to ALL_LINGUAS.

2
TODO
View File

@ -1 +1,3 @@
* List dialog should read data from stdin
* Fix up progress dialog so that it actually works
* Add some accessibility I guess * Add some accessibility I guess

View File

@ -63,6 +63,8 @@ zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data)
else else
zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-calendar.png")); zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
text = glade_xml_get_widget (glade_dialog, "zenity_calendar_text"); text = glade_xml_get_widget (glade_dialog, "zenity_calendar_text");
if (cal_data->dialog_text) if (cal_data->dialog_text)

View File

@ -59,6 +59,8 @@ zenity_entry (ZenityData *data, ZenityEntryData *entry_data)
else else
zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-entry.png")); zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
text = glade_xml_get_widget (glade_dialog, "zenity_entry_text"); text = glade_xml_get_widget (glade_dialog, "zenity_entry_text");
if (entry_data->dialog_text) if (entry_data->dialog_text)

View File

@ -57,6 +57,8 @@ void zenity_fileselection (ZenityData *data, ZenityFileData *file_data)
else else
zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-file.png")); zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
if (file_data->uri) if (file_data->uri)
gtk_file_selection_set_filename (GTK_FILE_SELECTION (dialog), file_data->uri); gtk_file_selection_set_filename (GTK_FILE_SELECTION (dialog), file_data->uri);

View File

@ -76,6 +76,8 @@ enum {
OPTION_WARNING, OPTION_WARNING,
OPTION_TITLE, OPTION_TITLE,
OPTION_ICON, OPTION_ICON,
OPTION_WIDTH,
OPTION_HEIGHT,
OPTION_CALENDARTEXT, OPTION_CALENDARTEXT,
OPTION_DAY, OPTION_DAY,
OPTION_MONTH, OPTION_MONTH,
@ -86,6 +88,7 @@ enum {
OPTION_ERRORTEXT, OPTION_ERRORTEXT,
OPTION_INFOTEXT, OPTION_INFOTEXT,
OPTION_FILENAME, OPTION_FILENAME,
OPTION_TEXTFILENAME,
OPTION_COLUMN, OPTION_COLUMN,
OPTION_SEPERATOR, OPTION_SEPERATOR,
OPTION_LISTEDIT, OPTION_LISTEDIT,
@ -95,7 +98,6 @@ enum {
OPTION_PERCENTAGE, OPTION_PERCENTAGE,
OPTION_PULSATE, OPTION_PULSATE,
OPTION_QUESTIONTEXT, OPTION_QUESTIONTEXT,
OPTION_TEXTFILE,
OPTION_WARNINGTEXT, OPTION_WARNINGTEXT,
OPTION_ABOUT, OPTION_ABOUT,
OPTION_VERSION, OPTION_VERSION,
@ -239,6 +241,24 @@ struct poptOption general_options[] = {
N_("Set the window icon"), N_("Set the window icon"),
N_("ICONPATH") N_("ICONPATH")
}, },
{
"width",
'\0',
POPT_ARG_STRING,
NULL,
OPTION_WIDTH,
N_("Set the width"),
N_("WIDTH")
},
{
"height",
'\0',
POPT_ARG_STRING,
NULL,
OPTION_HEIGHT,
N_("Set the height"),
N_("HEIGHT")
},
POPT_TABLEEND POPT_TABLEEND
}; };
@ -531,7 +551,7 @@ struct poptOption text_options[] = {
'\0', '\0',
POPT_ARG_STRING, POPT_ARG_STRING,
NULL, NULL,
OPTION_TEXTFILE, OPTION_TEXTFILENAME,
N_("Open file"), N_("Open file"),
N_("FILENAME") N_("FILENAME")
}, },
@ -886,6 +906,8 @@ zenity_init_parsing_options (void) {
results->tree_data = g_new0 (ZenityTreeData, 1); results->tree_data = g_new0 (ZenityTreeData, 1);
/* Give some sensible defaults */ /* Give some sensible defaults */
results->data->width = -1;
results->data->height = -1;
results->calendar_data->date_format = g_strdup (nl_langinfo (D_FMT)); results->calendar_data->date_format = g_strdup (nl_langinfo (D_FMT));
results->calendar_data->day = 0; results->calendar_data->day = 0;
results->calendar_data->month = 0; results->calendar_data->month = 0;
@ -1070,9 +1092,8 @@ zenity_parse_options_callback (poptContext ctx,
static gint parse_option_file = 0; static gint parse_option_file = 0;
static gint parse_option_editable = 0; static gint parse_option_editable = 0;
if (reason == POPT_CALLBACK_REASON_POST) { if (reason == POPT_CALLBACK_REASON_POST)
return; return;
}
else if (reason != POPT_CALLBACK_REASON_OPTION) else if (reason != POPT_CALLBACK_REASON_OPTION)
return; return;
@ -1154,6 +1175,18 @@ zenity_parse_options_callback (poptContext ctx,
results->data->window_icon = g_strdup (arg); results->data->window_icon = g_strdup (arg);
break; break;
case OPTION_WIDTH:
if (results->data->width != -1)
zenity_error ("--width", ERROR_DUPLICATE);
results->data->width = atoi (arg);
break;
case OPTION_HEIGHT:
if (results->data->height != -1)
zenity_error ("--height", ERROR_DUPLICATE);
results->data->height = atoi (arg);
break;
case OPTION_CALENDARTEXT: case OPTION_CALENDARTEXT:
case OPTION_ENTRYTEXT: case OPTION_ENTRYTEXT:
case OPTION_ERRORTEXT: case OPTION_ERRORTEXT:
@ -1269,7 +1302,7 @@ zenity_parse_options_callback (poptContext ctx,
parse_option_editable++; parse_option_editable++;
break; break;
case OPTION_FILENAME: case OPTION_FILENAME:
case OPTION_TEXTFILE: case OPTION_TEXTFILENAME:
/* FIXME: This is an ugly hack because of the way the poptOptions are /* FIXME: This is an ugly hack because of the way the poptOptions are
* ordered above. When you try and use an --option more than once * ordered above. When you try and use an --option more than once
@ -1286,6 +1319,9 @@ zenity_parse_options_callback (poptContext ctx,
case MODE_TEXTINFO: case MODE_TEXTINFO:
results->text_data->uri = g_strdup (arg); results->text_data->uri = g_strdup (arg);
break; break;
case MODE_LIST:
results->tree_data->uri = g_strdup (arg);
break;
default: default:
zenity_error ("--filename", ERROR_SUPPORT); zenity_error ("--filename", ERROR_SUPPORT);
} }
@ -1309,7 +1345,6 @@ zenity_parse_options_callback (poptContext ctx,
case OPTION_RADIOLIST: case OPTION_RADIOLIST:
if (results->mode != MODE_LIST) if (results->mode != MODE_LIST)
zenity_error ("--radiobox", ERROR_SUPPORT); zenity_error ("--radiobox", ERROR_SUPPORT);
if (results->tree_data->radiobox) if (results->tree_data->radiobox)
zenity_error ("--radiobox", ERROR_DUPLICATE); zenity_error ("--radiobox", ERROR_DUPLICATE);
@ -1349,7 +1384,7 @@ zenity_parse_options_callback (poptContext ctx,
case OPTION_VERSION: case OPTION_VERSION:
if (results->mode != MODE_LAST) if (results->mode != MODE_LAST)
zenity_error (NULL, ERROR_DIALOG); zenity_error (NULL, ERROR_DIALOG);
zenity_free_parsing_options ();
g_print ("%s\n", VERSION); g_print ("%s\n", VERSION);
exit (0); exit (0);
break; break;

View File

@ -107,6 +107,8 @@ zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
} }
} }
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
if (msg_data->dialog_text) if (msg_data->dialog_text)
gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text); gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text);

View File

@ -61,9 +61,10 @@ zenity_progress (ZenityData *data, ZenityProgressData *progress_data)
if (data->window_icon) if (data->window_icon)
zenity_util_set_window_icon (dialog, data->window_icon); zenity_util_set_window_icon (dialog, data->window_icon);
else { else
zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-progress.png")); zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-progress.png"));
}
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
text = glade_xml_get_widget (glade_dialog, "zenity_progress_text"); text = glade_xml_get_widget (glade_dialog, "zenity_progress_text");
gtk_label_set_text (GTK_LABEL (text), progress_data->dialog_text); gtk_label_set_text (GTK_LABEL (text), progress_data->dialog_text);

View File

@ -60,6 +60,7 @@ zenity_text (ZenityData *data, ZenityTextData *text_data)
else else
zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-text.png")); zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-text.png"));
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
text_buffer = gtk_text_buffer_new (NULL); text_buffer = gtk_text_buffer_new (NULL);

View File

@ -36,6 +36,17 @@ static gchar *separator;
static void zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data); static void zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data);
static gboolean
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);
if (g_value_get_boolean (&toggle_value))
gtk_list_store_set (GTK_LIST_STORE (model), iter, 0, FALSE, -1);
}
static void static void
zenity_tree_toggled_callback (GtkCellRendererToggle *cell, gchar *path_string, gpointer data) zenity_tree_toggled_callback (GtkCellRendererToggle *cell, gchar *path_string, gpointer data)
{ {
@ -45,8 +56,16 @@ zenity_tree_toggled_callback (GtkCellRendererToggle *cell, gchar *path_string, g
gboolean value; gboolean value;
model = GTK_TREE_MODEL (data); model = GTK_TREE_MODEL (data);
path = gtk_tree_path_new_from_string (path_string);
/* 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);
}
path = gtk_tree_path_new_from_string (path_string);
gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, 0, &value, -1); gtk_tree_model_get (model, &iter, 0, &value, -1);
@ -176,6 +195,8 @@ zenity_tree (ZenityData *data, ZenityTreeData *tree_data)
else else
zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-list.png")); zenity_util_set_window_icon (dialog, ZENITY_IMAGE_FULLPATH ("zenity-list.png"));
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
tree_view = glade_xml_get_widget (glade_dialog, "zenity_tree_view"); tree_view = glade_xml_get_widget (glade_dialog, "zenity_tree_view");
/* Create an empty list store */ /* Create an empty list store */
@ -216,8 +237,10 @@ zenity_tree (ZenityData *data, ZenityTreeData *tree_data)
cell_renderer = gtk_cell_renderer_toggle_new (); cell_renderer = gtk_cell_renderer_toggle_new ();
if (tree_data->radiobox) if (tree_data->radiobox) {
g_object_set (G_OBJECT (cell_renderer), "radio", TRUE, NULL); g_object_set (G_OBJECT (cell_renderer), "radio", TRUE, NULL);
g_object_set_data (G_OBJECT (model), "radio", (gint *) 1);
}
g_signal_connect (cell_renderer, "toggled", g_signal_connect (cell_renderer, "toggled",
G_CALLBACK (zenity_tree_toggled_callback), model); G_CALLBACK (zenity_tree_toggled_callback), model);

View File

@ -26,6 +26,8 @@ G_BEGIN_DECLS
typedef struct { typedef struct {
gchar *dialog_title; gchar *dialog_title;
gchar *window_icon; gchar *window_icon;
gint width;
gint height;
gint exit_code; gint exit_code;
} ZenityData; } ZenityData;