summaryrefslogtreecommitdiff
path: root/gtk+-mingw/share/gtk-3.0/demo/iconview_edit.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk+-mingw/share/gtk-3.0/demo/iconview_edit.c')
-rw-r--r--gtk+-mingw/share/gtk-3.0/demo/iconview_edit.c158
1 files changed, 0 insertions, 158 deletions
diff --git a/gtk+-mingw/share/gtk-3.0/demo/iconview_edit.c b/gtk+-mingw/share/gtk-3.0/demo/iconview_edit.c
deleted file mode 100644
index 2e7d4a0..0000000
--- a/gtk+-mingw/share/gtk-3.0/demo/iconview_edit.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Icon View/Editing and Drag-and-Drop
- *
- * The GtkIconView widget supports Editing and Drag-and-Drop.
- * This example also demonstrates using the generic GtkCellLayout
- * interface to set up cell renderers in an icon view.
- */
-
-#include <gtk/gtk.h>
-#include <string.h>
-#include "demo-common.h"
-
-static GtkWidget *window = NULL;
-
-enum
-{
- COL_TEXT,
- NUM_COLS
-};
-
-
-static void
-fill_store (GtkListStore *store)
-{
- GtkTreeIter iter;
- const gchar *text[] = { "Red", "Green", "Blue", "Yellow" };
- gint i;
-
- /* First clear the store */
- gtk_list_store_clear (store);
-
- for (i = 0; i < 4; i++)
- {
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, COL_TEXT, text[i], -1);
- }
-}
-
-static GtkListStore *
-create_store (void)
-{
- GtkListStore *store;
-
- store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING);
-
- return store;
-}
-
-static void
-set_cell_color (GtkCellLayout *cell_layout,
- GtkCellRenderer *cell,
- GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- gpointer data)
-{
- gchar *text;
- GdkColor color;
- guint32 pixel = 0;
- GdkPixbuf *pixbuf;
-
- gtk_tree_model_get (tree_model, iter, COL_TEXT, &text, -1);
- if (gdk_color_parse (text, &color))
- pixel =
- (color.red >> 8) << 24 |
- (color.green >> 8) << 16 |
- (color.blue >> 8) << 8;
-
- g_free (text);
-
- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 24, 24);
- gdk_pixbuf_fill (pixbuf, pixel);
-
- g_object_set (cell, "pixbuf", pixbuf, NULL);
-
- g_object_unref (pixbuf);
-}
-
-static void
-edited (GtkCellRendererText *cell,
- gchar *path_string,
- gchar *text,
- gpointer data)
-{
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreePath *path;
-
- model = gtk_icon_view_get_model (GTK_ICON_VIEW (data));
- path = gtk_tree_path_new_from_string (path_string);
-
- gtk_tree_model_get_iter (model, &iter, path);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- COL_TEXT, text, -1);
-
- gtk_tree_path_free (path);
-}
-
-GtkWidget *
-do_iconview_edit (GtkWidget *do_widget)
-{
- if (!window)
- {
- GtkWidget *icon_view;
- GtkListStore *store;
- GtkCellRenderer *renderer;
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
- gtk_window_set_screen (GTK_WINDOW (window),
- gtk_widget_get_screen (do_widget));
- gtk_window_set_title (GTK_WINDOW (window), "Editing and Drag-and-Drop");
-
- g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_widget_destroyed), &window);
-
- store = create_store ();
- fill_store (store);
-
- icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store));
- g_object_unref (store);
-
- gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view),
- GTK_SELECTION_SINGLE);
- gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (icon_view),
- GTK_ORIENTATION_HORIZONTAL);
- gtk_icon_view_set_columns (GTK_ICON_VIEW (icon_view), 2);
- gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE);
-
- renderer = gtk_cell_renderer_pixbuf_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view),
- renderer, TRUE);
- gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (icon_view),
- renderer,
- set_cell_color,
- NULL, NULL);
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view),
- renderer, TRUE);
- g_object_set (renderer, "editable", TRUE, NULL);
- g_signal_connect (renderer, "edited", G_CALLBACK (edited), icon_view);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (icon_view),
- renderer,
- "text", COL_TEXT,
- NULL);
-
- gtk_container_add (GTK_CONTAINER (window), icon_view);
- }
-
- if (!gtk_widget_get_visible (window))
- gtk_widget_show_all (window);
- else
- {
- gtk_widget_destroy (window);
- window = NULL;
- }
-
- return window;
-}