diff options
author | Arx Cruz <arxcruz@gnome.org> | 2011-10-13 15:21:32 -0300 |
---|---|---|
committer | Arx Cruz <arxcruz@gnome.org> | 2011-10-13 15:21:32 -0300 |
commit | de352548229f60940ed9cc09bcedc883d104f311 (patch) | |
tree | 0780f9550e242f195174b37469b63ca3faf0071e /src | |
parent | Initial support for list/tree on --forms option Added zenity --add-list and -... (diff) | |
download | zenity-de352548229f60940ed9cc09bcedc883d104f311.tar.gz zenity-de352548229f60940ed9cc09bcedc883d104f311.tar.bz2 zenity-de352548229f60940ed9cc09bcedc883d104f311.zip |
Revert "Initial support for list/tree on --forms option Added zenity --add-list and --list-values on --forms option. This is an initial support. Next steps add support to multiple selections and multiple columns"
This reverts commit ed825cf92b9d786b9b13361db4a0e696af347a59.
Diffstat (limited to 'src')
-rw-r--r-- | src/forms.c | 104 | ||||
-rw-r--r-- | src/option.c | 43 | ||||
-rw-r--r-- | src/zenity.h | 4 | ||||
-rw-r--r-- | src/zenity.ui | 49 |
4 files changed, 32 insertions, 168 deletions
diff --git a/src/forms.c b/src/forms.c index 56c6f5ab..c2b9f851 100644 --- a/src/forms.c +++ b/src/forms.c @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., 121 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * - * Authors: Arx Cruz <arxcruz@gnome.org> + * Authors: Arx Cruz <arxcruz@gmail.com> */ #include "config.h" @@ -27,83 +27,8 @@ #include "util.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) -{ - GValue value = {0, }; - gtk_tree_model_get_value (model, iter, 0, &value); - selected = g_slist_append (selected, g_value_dup_string (&value)); - g_value_unset (&value); -} - -static void zenity_forms_dialog_output (void) -{ - GSList *tmp; - - for (tmp = selected; tmp; tmp = tmp->next) { - if (tmp->next != NULL) { - g_print ("%s,", (gchar *) tmp->data); - } - else - g_print ("%s", (gchar *) tmp->data); - } - - g_slist_foreach (selected, (GFunc) g_free, NULL); - selected = NULL; -} - -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; - gchar *values; - int i = 0; - - list_store = gtk_list_store_new (1, G_TYPE_STRING); - if (forms_data->list_values) { - values = g_slist_nth_data (forms_data->list_values, list_number); - if (values) { - gchar **row_values = g_strsplit_set (values, "|", -1); - if (row_values) { - GtkTreeIter iter; - gchar *row = row_values[0]; - 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); - } - } - } - tree_view = gtk_tree_view_new (); - renderer = gtk_cell_renderer_text_new (); - gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view), - -1, - header, - renderer, - "text", - 0, - NULL); - - 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), FALSE); - - return scrolled_window; -} +static void zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data); void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data) { @@ -116,7 +41,6 @@ void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data) GSList *tmp; gint number_of_widgets = g_slist_length (forms_data->list); - int list_count = 0; zen_data = data; @@ -232,22 +156,6 @@ void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data) 0, 0); break; - case ZENITY_FORMS_LIST: - zenity_value->forms_widget = zenity_forms_create_and_fill_list (forms_data, list_count, - zenity_value->option_value); - gtk_alignment_set (GTK_ALIGNMENT (align), 0.0, 0.02, 0.0, 0.0); - gtk_table_attach (GTK_TABLE (table), - GTK_WIDGET (zenity_value->forms_widget), - 1, - 2, - i, - i+1, - GTK_EXPAND | GTK_FILL, - GTK_EXPAND | GTK_FILL, - 0, - 0); - list_count++; - break; default: zenity_value->forms_widget = gtk_entry_new(); gtk_table_attach (GTK_TABLE (table), @@ -285,7 +193,6 @@ zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data) guint day, year, month; GDate *date = NULL; gchar time_string[128]; - GtkTreeSelection *selection; switch (response) { case GTK_RESPONSE_OK: @@ -297,13 +204,6 @@ zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data) 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)))); - zenity_forms_dialog_output (); - 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); diff --git a/src/option.c b/src/option.c index 8cfed08b..e9d370d0 100644 --- a/src/option.c +++ b/src/option.c @@ -129,7 +129,6 @@ static gboolean zenity_password_show_username; /* Forms Dialog Options */ static gboolean zenity_forms_active; static gchar *zenity_forms_date_format; -static gchar **zenity_forms_list_values; /* Miscelaneus Options */ static gboolean zenity_misc_about; @@ -958,24 +957,6 @@ static GOptionEntry forms_dialog_options[] = { 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 |") - }, - { "text", '\0', G_OPTION_FLAG_NOALIAS, @@ -1136,8 +1117,6 @@ zenity_option_free (void) { if (zenity_forms_date_format) g_free (zenity_forms_date_format); - if (zenity_forms_list_values) - g_strfreev (zenity_forms_list_values); if (zenity_entry_entry_text) g_free (zenity_entry_entry_text); @@ -1194,17 +1173,13 @@ zenity_forms_callback (const gchar *option_name, 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->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) + else if (g_strcmp0(option_name, "--add-calendar") == 0) forms_value->type = ZENITY_FORMS_CALENDAR; - else if (g_strcmp0 (option_name, "--add-password") == 0) + 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; results->forms_data->list = g_slist_append(results->forms_data->list, forms_value); @@ -1858,20 +1833,10 @@ zenity_forms_post_callback (GOptionContext *context, 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; - 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_date_format) results->forms_data->date_format = zenity_forms_date_format; else diff --git a/src/zenity.h b/src/zenity.h index e6b0afed..4d1e27d3 100644 --- a/src/zenity.h +++ b/src/zenity.h @@ -144,7 +144,6 @@ typedef struct { typedef struct { GSList *list; GSList *list_widgets; - GSList *list_values; gchar *dialog_text; gchar *separator; gchar *date_format; @@ -153,8 +152,7 @@ typedef struct { typedef enum { ZENITY_FORMS_ENTRY, ZENITY_FORMS_PASSWORD, - ZENITY_FORMS_CALENDAR, - ZENITY_FORMS_LIST + ZENITY_FORMS_CALENDAR } ZenityFormsType; typedef struct { diff --git a/src/zenity.ui b/src/zenity.ui index b39e5b1a..869bdca9 100644 --- a/src/zenity.ui +++ b/src/zenity.ui @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 2.6 --> - <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="upper">100</property> <property name="step_increment">1</property> @@ -16,12 +15,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox2"> + <object class="GtkBox" id="dialog-vbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">2</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area2"> + <object class="GtkButtonBox" id="dialog-action_area2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -150,12 +149,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox4"> + <object class="GtkBox" id="dialog-vbox4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">2</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area4"> + <object class="GtkButtonBox" id="dialog-action_area4"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -257,12 +256,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox7"> + <object class="GtkBox" id="dialog-vbox7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">14</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area7"> + <object class="GtkButtonBox" id="dialog-action_area7"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -356,12 +355,12 @@ <property name="border_width">5</property> <property name="type_hint">normal</property> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox12"> + <object class="GtkBox" id="dialog-vbox12"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">2</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area12"> + <object class="GtkButtonBox" id="dialog-action_area12"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -413,7 +412,6 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="top_padding">12</property> - <property name="bottom_padding">12</property> <property name="left_padding">12</property> <property name="right_padding">6</property> <child> @@ -463,12 +461,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox9"> + <object class="GtkBox" id="dialog-vbox9"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">14</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area3"> + <object class="GtkButtonBox" id="dialog-action_area3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -553,12 +551,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox6"> + <object class="GtkBox" id="dialog-vbox6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">2</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area6"> + <object class="GtkButtonBox" id="dialog-action_area6"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -658,12 +656,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox3"> + <object class="GtkBox" id="dialog-vbox3"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">14</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="zenity_question_button_box"> + <object class="GtkButtonBox" id="zenity_question_button_box"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -732,11 +730,11 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox11"> + <object class="GtkBox" id="dialog-vbox11"> <property name="visible">True</property> <property name="can_focus">False</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area11"> + <object class="GtkButtonBox" id="dialog-action_area11"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -839,12 +837,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox5"> + <object class="GtkBox" id="dialog-vbox5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">2</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area5"> + <object class="GtkButtonBox" id="dialog-action_area5"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -956,11 +954,11 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox8"> + <object class="GtkBox" id="dialog-vbox8"> <property name="visible">True</property> <property name="can_focus">False</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area8"> + <object class="GtkButtonBox" id="dialog-action_area8"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> @@ -1034,6 +1032,9 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="has_focus">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> </object> </child> </object> @@ -1065,12 +1066,12 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="gtk_main_quit" swapped="no"/> <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox1"> + <object class="GtkBox" id="dialog-vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">14</property> <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area1"> + <object class="GtkButtonBox" id="dialog-action_area1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="layout_style">end</property> |