fix a load of open line ends (cell_edited): modified patch from German Poo

Sat Jan 19 20:49:41 2002  Kristian Rietveld  <kris@gtk.org>

        * demos/gtk-demo/editable_cells.c: fix a load of open line ends
        (cell_edited): modified patch from German Poo Caaman~o
        to fix up old_text declaration and free the memory
        (do_editable_cells): unref the model after creating the treeview

        * demos/gtk-demo/list_store.c: fix a load of open line ends,
        (add_columns): set the sort column id, so we can sort

        * demos/gtk-demo/tree_store.c: fix a load of open line ends,
        (do_tree_store): unref the model after creating the treeview
This commit is contained in:
Kristian Rietveld 2002-01-19 20:15:56 +00:00 committed by Kristian Rietveld
parent 31283d57ca
commit 4aebf9326a
10 changed files with 150 additions and 51 deletions

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,3 +1,16 @@
Sat Jan 19 20:49:41 2002 Kristian Rietveld <kris@gtk.org>
* demos/gtk-demo/editable_cells.c: fix a load of open line ends
(cell_edited): modified patch from German Poo Caaman~o
to fix up old_text declaration and free the memory
(do_editable_cells): unref the model after creating the treeview
* demos/gtk-demo/list_store.c: fix a load of open line ends,
(add_columns): set the sort column id, so we can sort
* demos/gtk-demo/tree_store.c: fix a load of open line ends,
(do_tree_store): unref the model after creating the treeview
2002-01-19 Havoc Pennington <hp@pobox.com> 2002-01-19 Havoc Pennington <hp@pobox.com>
* gtk/gtkwindow.c: link to new X11 section in a lot of places when * gtk/gtkwindow.c: link to new X11 section in a lot of places when

View File

@ -1,5 +1,5 @@
/* Tree View/Editable Cells /* Tree View/Editable Cells
* *
* This demo demonstrates the use of editable cells in a GtkTreeView. If * This demo demonstrates the use of editable cells in a GtkTreeView. If
* you're new to the GtkTreeView widgets and associates, look into * you're new to the GtkTreeView widgets and associates, look into
* the GtkListStore example first. * the GtkListStore example first.
@ -72,7 +72,7 @@ create_model (void)
/* create array */ /* create array */
articles = g_array_sized_new (FALSE, FALSE, sizeof (Item), 1); articles = g_array_sized_new (FALSE, FALSE, sizeof (Item), 1);
add_items (); add_items ();
/* create list store */ /* create list store */
@ -131,11 +131,11 @@ remove_item (GtkWidget *widget, gpointer data)
{ {
gint i; gint i;
GtkTreePath *path; GtkTreePath *path;
path = gtk_tree_model_get_path (model, &iter); path = gtk_tree_model_get_path (model, &iter);
i = gtk_tree_path_get_indices (path)[0]; i = gtk_tree_path_get_indices (path)[0];
gtk_list_store_remove (GTK_LIST_STORE (model), &iter); gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
g_array_remove_index (articles, i); g_array_remove_index (articles, i);
gtk_tree_path_free (path); gtk_tree_path_free (path);
@ -151,39 +151,41 @@ cell_edited (GtkCellRendererText *cell,
GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeModel *model = (GtkTreeModel *)data;
GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
GtkTreeIter iter; GtkTreeIter iter;
gchar old_text[256]; /* ugly? */
gint *column; gint *column;
column = g_object_get_data (G_OBJECT (cell), "column"); column = g_object_get_data (G_OBJECT (cell), "column");
gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, column, old_text, -1);
switch ((gint) column) switch ((gint) column)
{ {
case COLUMN_NUMBER: case COLUMN_NUMBER:
{ {
gint i; gint i;
i = gtk_tree_path_get_indices (path)[0]; i = gtk_tree_path_get_indices (path)[0];
g_array_index (articles, Item, i).number = atoi (new_text); g_array_index (articles, Item, i).number = atoi (new_text);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, gtk_list_store_set (GTK_LIST_STORE (model), &iter, column,
atoi (new_text), -1); g_array_index (articles, Item, i).number, -1);
} }
break; break;
case COLUMN_PRODUCT: case COLUMN_PRODUCT:
{ {
gint i; gint i;
gchar *old_text;
gtk_tree_model_get (model, &iter, column, &old_text, -1);
g_free (old_text);
i = gtk_tree_path_get_indices (path)[0]; i = gtk_tree_path_get_indices (path)[0];
g_free (g_array_index (articles, Item, i).product); g_free (g_array_index (articles, Item, i).product);
g_array_index (articles, Item, i).product = g_strdup (new_text); g_array_index (articles, Item, i).product = g_strdup (new_text);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, gtk_list_store_set (GTK_LIST_STORE (model), &iter, column,
new_text, -1); g_array_index (articles, Item, i).product, -1);
} }
break; break;
} }
@ -214,7 +216,7 @@ add_columns (GtkTreeView *treeview)
g_signal_connect (G_OBJECT (renderer), "edited", g_signal_connect (G_OBJECT (renderer), "edited",
G_CALLBACK (cell_edited), model); G_CALLBACK (cell_edited), model);
g_object_set_data (G_OBJECT (renderer), "column", (gint *)COLUMN_PRODUCT); g_object_set_data (G_OBJECT (renderer), "column", (gint *)COLUMN_PRODUCT);
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
-1, "Product", renderer, -1, "Product", renderer,
"text", COLUMN_PRODUCT, "text", COLUMN_PRODUCT,
@ -233,7 +235,7 @@ do_editable_cells (void)
GtkWidget *treeview; GtkWidget *treeview;
GtkWidget *button; GtkWidget *button;
GtkTreeModel *model; GtkTreeModel *model;
/* create window, etc */ /* create window, etc */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Shopping list"); gtk_window_set_title (GTK_WINDOW (window), "Shopping list");
@ -261,14 +263,15 @@ do_editable_cells (void)
/* create tree view */ /* create tree view */
treeview = gtk_tree_view_new_with_model (model); treeview = gtk_tree_view_new_with_model (model);
g_object_unref (G_OBJECT (model));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
GTK_SELECTION_SINGLE); GTK_SELECTION_SINGLE);
add_columns (GTK_TREE_VIEW (treeview)); add_columns (GTK_TREE_VIEW (treeview));
gtk_container_add (GTK_CONTAINER (sw), treeview); gtk_container_add (GTK_CONTAINER (sw), treeview);
/* some buttons */ /* some buttons */
hbox = gtk_hbox_new (TRUE, 4); hbox = gtk_hbox_new (TRUE, 4);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
@ -285,7 +288,7 @@ do_editable_cells (void)
gtk_window_set_default_size (GTK_WINDOW (window), 320, 200); gtk_window_set_default_size (GTK_WINDOW (window), 320, 200);
} }
if (!GTK_WIDGET_VISIBLE (window)) if (!GTK_WIDGET_VISIBLE (window))
gtk_widget_show_all (window); gtk_widget_show_all (window);
else else

View File

@ -1,6 +1,6 @@
/* Tree View/List Store /* Tree View/List Store
* *
* The GtkListStore is used to store data in list form, to be used * The GtkListStore is used to store data in list form, to be used
* later on by a GtkTreeView to display it. This demo builds a * later on by a GtkTreeView to display it. This demo builds a
* simple GtkListStore and displays it. See the Stock Browser * simple GtkListStore and displays it. See the Stock Browser
* demo for a more advanced example. * demo for a more advanced example.
@ -92,10 +92,10 @@ fixed_toggled (GtkCellRendererToggle *cell,
/* do something with the value */ /* do something with the value */
fixed ^= 1; fixed ^= 1;
/* set new value */ /* set new value */
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FIXED, fixed, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FIXED, fixed, -1);
/* clean up */ /* clean up */
gtk_tree_path_free (path); gtk_tree_path_free (path);
} }
@ -130,8 +130,9 @@ add_columns (GtkTreeView *treeview)
"text", "text",
COLUMN_NUMBER, COLUMN_NUMBER,
NULL); NULL);
gtk_tree_view_column_set_sort_column_id (column, COLUMN_NUMBER);
gtk_tree_view_append_column (treeview, column); gtk_tree_view_append_column (treeview, column);
/* column for severities */ /* column for severities */
renderer = gtk_cell_renderer_text_new (); renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Severity", column = gtk_tree_view_column_new_with_attributes ("Severity",
@ -139,8 +140,9 @@ add_columns (GtkTreeView *treeview)
"text", "text",
COLUMN_SEVERITY, COLUMN_SEVERITY,
NULL); NULL);
gtk_tree_view_column_set_sort_column_id (column, COLUMN_SEVERITY);
gtk_tree_view_append_column (treeview, column); gtk_tree_view_append_column (treeview, column);
/* column for description */ /* column for description */
renderer = gtk_cell_renderer_text_new (); renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Description", column = gtk_tree_view_column_new_with_attributes ("Description",
@ -148,6 +150,7 @@ add_columns (GtkTreeView *treeview)
"text", "text",
COLUMN_DESCRIPTION, COLUMN_DESCRIPTION,
NULL); NULL);
gtk_tree_view_column_set_sort_column_id (column, COLUMN_DESCRIPTION);
gtk_tree_view_append_column (treeview, column); gtk_tree_view_append_column (treeview, column);
} }
@ -183,7 +186,7 @@ do_list_store (void)
GTK_POLICY_NEVER, GTK_POLICY_NEVER,
GTK_POLICY_AUTOMATIC); GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
/* create tree model */ /* create tree model */
model = create_model (); model = create_model ();
@ -194,9 +197,9 @@ do_list_store (void)
COLUMN_DESCRIPTION); COLUMN_DESCRIPTION);
g_object_unref (G_OBJECT (model)); g_object_unref (G_OBJECT (model));
gtk_container_add (GTK_CONTAINER (sw), treeview); gtk_container_add (GTK_CONTAINER (sw), treeview);
/* add columns to the tree view */ /* add columns to the tree view */
add_columns (GTK_TREE_VIEW (treeview)); add_columns (GTK_TREE_VIEW (treeview));

View File

@ -2,7 +2,7 @@
* *
* The GtkTreeStore is used to store data in tree form, to be * The GtkTreeStore is used to store data in tree form, to be
* used later on by a GtkTreeView to display it. This demo builds * used later on by a GtkTreeView to display it. This demo builds
* a simple GtkTreeStore and displays it. If you're new to the * a simple GtkTreeStore and displays it. If you're new to the
* GtkTreeView widgets and associates, look into the GtkListStore * GtkTreeView widgets and associates, look into the GtkListStore
* example first. * example first.
* *
@ -46,7 +46,7 @@ static TreeItem january[] =
{ {
{"New Years Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, {"New Years Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
{"Presidential Inauguration", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, {"Presidential Inauguration", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL },
{"Martin Luther King Jr. day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, {"Martin Luther King Jr. day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL },
{ NULL } { NULL }
}; };
@ -116,7 +116,7 @@ static TreeItem september[] =
static TreeItem october[] = static TreeItem october[] =
{ {
{ "National Children's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "National Children's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
{ "Bosses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Bosses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
{ "Sweetest Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Sweetest Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
{ "Mother-in-Law's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mother-in-Law's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
@ -200,7 +200,7 @@ create_model (void)
while (holiday->label) while (holiday->label)
{ {
GtkTreeIter child_iter; GtkTreeIter child_iter;
gtk_tree_store_append (model, &child_iter, &iter); gtk_tree_store_append (model, &child_iter, &iter);
gtk_tree_store_set (model, &child_iter, gtk_tree_store_set (model, &child_iter,
HOLIDAY_NAME_COLUMN, holiday->label, HOLIDAY_NAME_COLUMN, holiday->label,
@ -212,7 +212,7 @@ create_model (void)
VISIBLE_COLUMN, TRUE, VISIBLE_COLUMN, TRUE,
WORLD_COLUMN, holiday->world_holiday, WORLD_COLUMN, holiday->world_holiday,
-1); -1);
holiday++; holiday++;
} }
@ -235,7 +235,7 @@ item_toggled (GtkCellRendererToggle *cell,
gint *column; gint *column;
column = g_object_get_data (G_OBJECT (cell), "column"); column = g_object_get_data (G_OBJECT (cell), "column");
/* get toggled iter */ /* get toggled iter */
gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, column, &toggle_item, -1); gtk_tree_model_get (model, &iter, column, &toggle_item, -1);
@ -287,13 +287,13 @@ add_columns (GtkTreeView *treeview)
VISIBLE_COLUMN, VISIBLE_COLUMN,
"activatable", "activatable",
WORLD_COLUMN, NULL); WORLD_COLUMN, NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED); GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* havoc column */ /* havoc column */
renderer = gtk_cell_renderer_toggle_new (); renderer = gtk_cell_renderer_toggle_new ();
g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL); g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL);
@ -309,18 +309,18 @@ add_columns (GtkTreeView *treeview)
"visible", "visible",
VISIBLE_COLUMN, VISIBLE_COLUMN,
NULL); NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED); GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* tim column */ /* tim column */
renderer = gtk_cell_renderer_toggle_new (); renderer = gtk_cell_renderer_toggle_new ();
g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL); g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL);
g_object_set_data (G_OBJECT (renderer), "column", (gint *)TIM_COLUMN); g_object_set_data (G_OBJECT (renderer), "column", (gint *)TIM_COLUMN);
g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (item_toggled), g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (item_toggled),
model); model);
col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
@ -332,18 +332,18 @@ add_columns (GtkTreeView *treeview)
VISIBLE_COLUMN, VISIBLE_COLUMN,
"activatable", "activatable",
WORLD_COLUMN, NULL); WORLD_COLUMN, NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED); GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* owen column */ /* owen column */
renderer = gtk_cell_renderer_toggle_new (); renderer = gtk_cell_renderer_toggle_new ();
g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL); g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL);
g_object_set_data (G_OBJECT (renderer), "column", (gint *)OWEN_COLUMN); g_object_set_data (G_OBJECT (renderer), "column", (gint *)OWEN_COLUMN);
g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (item_toggled), g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (item_toggled),
model); model);
col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
@ -354,13 +354,13 @@ add_columns (GtkTreeView *treeview)
"visible", "visible",
VISIBLE_COLUMN, VISIBLE_COLUMN,
NULL); NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED); GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
/* dave column */ /* dave column */
renderer = gtk_cell_renderer_toggle_new (); renderer = gtk_cell_renderer_toggle_new ();
g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL); g_object_set (G_OBJECT (renderer), "xalign", 0.0, NULL);
@ -376,7 +376,7 @@ add_columns (GtkTreeView *treeview)
"visible", "visible",
VISIBLE_COLUMN, VISIBLE_COLUMN,
NULL); NULL);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
GTK_TREE_VIEW_COLUMN_FIXED); GTK_TREE_VIEW_COLUMN_FIXED);
@ -397,17 +397,17 @@ do_tree_store (void)
/* create window, etc */ /* create window, etc */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Card planning sheet"); gtk_window_set_title (GTK_WINDOW (window), "Card planning sheet");
g_signal_connect (G_OBJECT (window), "destroy", g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_widget_destroyed), &window); G_CALLBACK (gtk_widget_destroyed), &window);
vbox = gtk_vbox_new (FALSE, 8); vbox = gtk_vbox_new (FALSE, 8);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_box_pack_start (GTK_BOX (vbox), gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Jonathan's Holiday Card Planning Sheet"), gtk_label_new ("Jonathan's Holiday Card Planning Sheet"),
FALSE, FALSE, 0); FALSE, FALSE, 0);
sw = gtk_scrolled_window_new (NULL, NULL); sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
GTK_SHADOW_ETCHED_IN); GTK_SHADOW_ETCHED_IN);
@ -418,17 +418,19 @@ do_tree_store (void)
/* create model */ /* create model */
model = create_model (); model = create_model ();
/* create tree view */ /* create tree view */
treeview = gtk_tree_view_new_with_model (model); treeview = gtk_tree_view_new_with_model (model);
g_object_unref (G_OBJECT (model));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
GTK_SELECTION_MULTIPLE); GTK_SELECTION_MULTIPLE);
add_columns (GTK_TREE_VIEW (treeview)); add_columns (GTK_TREE_VIEW (treeview));
gtk_container_add (GTK_CONTAINER (sw), treeview); gtk_container_add (GTK_CONTAINER (sw), treeview);
/* expand all rows after the treeview widget has been realized */
g_signal_connect (G_OBJECT (treeview), "realize", g_signal_connect (G_OBJECT (treeview), "realize",
G_CALLBACK (gtk_tree_view_expand_all), NULL); G_CALLBACK (gtk_tree_view_expand_all), NULL);
gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400);