[Goodies-commits] r4887 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Thu Jun 5 07:23:38 CEST 2008
Author: stephan
Date: 2008-06-05 05:23:38 +0000 (Thu, 05 Jun 2008)
New Revision: 4887
Modified:
ristretto/trunk/src/save_dialog.c
Log:
Improve save dialog
Modified: ristretto/trunk/src/save_dialog.c
===================================================================
--- ristretto/trunk/src/save_dialog.c 2008-06-05 05:20:13 UTC (rev 4886)
+++ ristretto/trunk/src/save_dialog.c 2008-06-05 05:23:38 UTC (rev 4887)
@@ -26,12 +26,18 @@
#include "navigator.h"
#include "save_dialog.h"
+static void
+cb_rstto_save_row_toggled (GtkCellRendererToggle *cell, gchar *path, gpointer user_data);
+
GtkWidget *
rstto_save_dialog_new (GtkWindow *parent, GList *entries)
{
GtkTreeIter iter;
+ GtkTreeViewColumn *column = NULL;
GList *list_iter = entries;
-
+ GtkCellRenderer *renderer;
+ GtkListStore *store;
+ GtkWidget *treeview, *s_window;
GtkWidget *dialog = gtk_dialog_new_with_buttons (
_("Save images"),
parent,
@@ -42,19 +48,25 @@
GTK_RESPONSE_OK,
NULL);
- GtkListStore *store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
- GtkWidget *treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
+ store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+ treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
- GtkCellRenderer *renderer = gtk_cell_renderer_pixbuf_new();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(treeview), 0, "", renderer, "pixbuf", 0, NULL);
+ renderer = gtk_cell_renderer_pixbuf_new();
+ column = gtk_tree_view_column_new_with_attributes ( "", renderer, "pixbuf", 0, NULL);
+ gtk_tree_view_insert_column (GTK_TREE_VIEW(treeview), column, -1);
renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(treeview), 1, _("Filename"), renderer, "text", 1, NULL);
+ column = gtk_tree_view_column_new_with_attributes ( _("Filename"), renderer, "text", 1, NULL);
+ gtk_tree_view_column_set_expand (column, TRUE);
+ gtk_tree_view_insert_column (GTK_TREE_VIEW(treeview), column, -1);
renderer = gtk_cell_renderer_toggle_new();
- g_object_set (renderer, "mode", GTK_CELL_RENDERER_MODE_EDITABLE, NULL);
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(treeview), 2, _("Save"), renderer, "active", 2, NULL);
+ g_object_set (renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
+ g_signal_connect (renderer, "toggled", (GCallback)cb_rstto_save_row_toggled, store);
+ column = gtk_tree_view_column_new_with_attributes ( _("Save"), renderer, "active", 2, NULL);
+ gtk_tree_view_insert_column (GTK_TREE_VIEW(treeview), column, -1);
+
while (list_iter)
{
gtk_list_store_append (store, &iter);
@@ -66,8 +78,21 @@
}
+ s_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (s_window), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (s_window), treeview);
- gtk_container_add (GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), treeview);
- gtk_widget_show_all (treeview);
+ gtk_container_add (GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), s_window);
+ gtk_widget_show_all (s_window);
return dialog;
}
+
+static void
+cb_rstto_save_row_toggled (GtkCellRendererToggle *cell, gchar *path, gpointer user_data)
+{
+ GtkTreeModel *model = GTK_TREE_MODEL(user_data);
+ GtkTreeIter iter;
+
+ gtk_tree_model_get_iter_from_string (model, &iter, path);
+ gtk_list_store_set (GTK_LIST_STORE(model), &iter, 3, !gtk_cell_renderer_toggle_get_active (cell), -1);
+}
More information about the Goodies-commits
mailing list