From eebd4f1c4bba4d1a2b9a5e0cfd9fd34f318ee84d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 16 Mar 2005 07:16:29 +0000 Subject: Also demonstrate GtkCellRenderer::editing-started and separators. 2005-03-16 Matthias Clasen * demos/gtk-demo/editable_cells.c: Also demonstrate GtkCellRenderer::editing-started and separators. --- demos/gtk-demo/editable_cells.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'demos/gtk-demo') diff --git a/demos/gtk-demo/editable_cells.c b/demos/gtk-demo/editable_cells.c index 4328134382..524b1e8c2b 100644 --- a/demos/gtk-demo/editable_cells.c +++ b/demos/gtk-demo/editable_cells.c @@ -2,7 +2,9 @@ * * This demo demonstrates the use of editable cells in a GtkTreeView. If * you're new to the GtkTreeView widgets and associates, look into - * the GtkListStore example first. + * the GtkListStore example first. It also shows how to use the + * GtkCellRenderer::editing-started signal to do custom setup of the + * editable widget. * * The cell renderers used in this demo are GtkCellRendererText and * GtkCellRendererCombo. @@ -100,7 +102,6 @@ static GtkTreeModel * create_numbers_model (void) { #define N_NUMBERS 10 - gint i = 0; GtkListStore *model; GtkTreeIter iter; @@ -168,6 +169,32 @@ remove_item (GtkWidget *widget, gpointer data) } } +static gboolean +separator_row (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + GtkTreePath *path; + gint idx; + + path = gtk_tree_model_get_path (model, iter); + idx = gtk_tree_path_get_indices (path)[0]; + + gtk_tree_path_free (path); + + return idx == 5; +} + +static void +editing_started (GtkCellRenderer *cell, + GtkCellEditable *editable, + const gchar *path, + gpointer data) +{ + gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable), + separator_row, NULL, NULL); +} + static void cell_edited (GtkCellRendererText *cell, const gchar *path_string, @@ -234,6 +261,8 @@ add_columns (GtkTreeView *treeview, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); + g_signal_connect (renderer, "editing-started", + G_CALLBACK (editing_started), NULL); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_NUMBER)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -- cgit v1.2.1