diff options
author | Jonathan Blandford <jrb@redhat.com> | 2000-10-26 00:36:47 +0000 |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2000-10-26 00:36:47 +0000 |
commit | ef7b510f467ca15b3a62f59a97ad5ba255cd124d (patch) | |
tree | a664a45f37ee115f4496fca523333e41e259ff31 /tests/treestoretest.c | |
parent | aaee9100270a2ed2aba3eec8017848a0ba76efb5 (diff) | |
download | gtk+-ef7b510f467ca15b3a62f59a97ad5ba255cd124d.tar.gz |
Got rid of GtkTreeNode, and changed it to GtkTreeIter. Added iterators
Wed Oct 25 20:40:25 2000 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreemodel.h: Got rid of GtkTreeNode, and changed it to
GtkTreeIter. Added iterators everywhere.
* gtk/gtktreeviewcolumn.c: Changed to use the iterators.
* gtk/gtktreeviewselection.c: Changed to use the iterators.
* gtk/gtktreestore.c: Changed to use the iterators.
* gtk/gtkliststore.c: Commented out the code. Will convert to
iterators tomorrow.
* gtk/gtkmodelsimple.c: Commented out the code. Will convert to
iterators tomorrow.
* gtk/treestoretest.c: Changed to use iterators.
* demos/testgtk/main.c: Moved to use the new iterator system.
Diffstat (limited to 'tests/treestoretest.c')
-rw-r--r-- | tests/treestoretest.c | 191 |
1 files changed, 131 insertions, 60 deletions
diff --git a/tests/treestoretest.c b/tests/treestoretest.c index 13a4b0b64d..84423e97a2 100644 --- a/tests/treestoretest.c +++ b/tests/treestoretest.c @@ -5,89 +5,160 @@ GtkObject *model; static void selection_changed (GtkTreeSelection *selection, - GtkWidget *button) + GtkWidget *button) { - if (gtk_tree_selection_get_selected (selection)) + if (gtk_tree_selection_get_selected (selection, + NULL)) gtk_widget_set_sensitive (button, TRUE); else gtk_widget_set_sensitive (button, FALSE); } -static GtkTreeNode * -node_new () +static void +node_set (GtkTreeIter *iter) { - static GValue value = {0, }; static gint i = 0; gchar *str; - GtkTreeNode *node = gtk_tree_store_node_new (); - g_value_init (&value, G_TYPE_STRING); str = g_strdup_printf ("FOO: %d", i++); - g_value_set_string (&value, str); + gtk_tree_store_iter_set (GTK_TREE_STORE (model), iter, 0, str, -1); g_free (str); - gtk_tree_store_node_set_cell (GTK_TREE_STORE (model), node, 0, &value); - g_value_unset (&value); - return node; } static void -node_remove (GtkWidget *button, GtkTreeView *tree_view) +iter_remove (GtkWidget *button, GtkTreeView *tree_view) { - GtkTreeNode *selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); - gtk_tree_store_node_remove (GTK_TREE_STORE (model), - selected); + GtkTreeIter selected; + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + &selected)) + { + gtk_tree_store_iter_remove (GTK_TREE_STORE (model), + &selected); + } } static void -node_insert (GtkWidget *button, GtkTreeView *tree_view) +iter_insert (GtkWidget *button, GtkTreeView *tree_view) { GtkWidget *entry; - GtkTreeNode *selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); + GtkTreeIter iter; + GtkTreeIter selected; entry = gtk_object_get_user_data (GTK_OBJECT (button)); - gtk_tree_store_node_insert (GTK_TREE_STORE (model), - selected, - atoi (gtk_entry_get_text (GTK_ENTRY (entry))), - node_new ()); + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + &selected)) + { + gtk_tree_store_iter_insert (GTK_TREE_STORE (model), + &iter, + &selected, + atoi (gtk_entry_get_text (GTK_ENTRY (entry)))); + } + else + { + gtk_tree_store_iter_insert (GTK_TREE_STORE (model), + &iter, + NULL, + atoi (gtk_entry_get_text (GTK_ENTRY (entry)))); + } + + node_set (&iter); } static void -node_insert_before (GtkWidget *button, GtkTreeView *tree_view) +iter_insert_before (GtkWidget *button, GtkTreeView *tree_view) { - GtkTreeNode *selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); - gtk_tree_store_node_insert_before (GTK_TREE_STORE (model), - NULL, - selected, - node_new ()); + GtkTreeIter iter; + GtkTreeIter selected; + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + &selected)) + { + gtk_tree_store_iter_insert_before (GTK_TREE_STORE (model), + &iter, + NULL, + &selected); + } + else + { + gtk_tree_store_iter_insert_before (GTK_TREE_STORE (model), + &iter, + NULL, + NULL); + } + + node_set (&iter); } static void -node_insert_after (GtkWidget *button, GtkTreeView *tree_view) +iter_insert_after (GtkWidget *button, GtkTreeView *tree_view) { - GtkTreeNode *selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); - gtk_tree_store_node_insert_after (GTK_TREE_STORE (model), - NULL, - selected, - node_new ()); + GtkTreeIter iter; + GtkTreeIter selected; + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + &selected)) + { + gtk_tree_store_iter_insert_after (GTK_TREE_STORE (model), + &iter, + NULL, + &selected); + } + else + { + gtk_tree_store_iter_insert_after (GTK_TREE_STORE (model), + &iter, + NULL, + &selected); + } + + node_set (&iter); } static void -node_prepend (GtkWidget *button, GtkTreeView *tree_view) +iter_prepend (GtkWidget *button, GtkTreeView *tree_view) { - GtkTreeNode *selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); - gtk_tree_store_node_prepend (GTK_TREE_STORE (model), - selected, - node_new ()); + GtkTreeIter iter; + GtkTreeIter selected; + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + &selected)) + { + gtk_tree_store_iter_prepend (GTK_TREE_STORE (model), + &iter, + &selected); + } + else + { + gtk_tree_store_iter_prepend (GTK_TREE_STORE (model), + &iter, + NULL); + } + + node_set (&iter); } static void -node_append (GtkWidget *button, GtkTreeView *tree_view) +iter_append (GtkWidget *button, GtkTreeView *tree_view) { - GtkTreeNode *selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); - gtk_tree_store_node_append (GTK_TREE_STORE (model), - selected, - node_new ()); + GtkTreeIter iter; + GtkTreeIter selected; + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + &selected)) + { + gtk_tree_store_iter_append (GTK_TREE_STORE (model), + &iter, + &selected); + } + else + { + gtk_tree_store_iter_append (GTK_TREE_STORE (model), + &iter, + NULL); + } + + node_set (&iter); } static void @@ -123,56 +194,61 @@ make_window () gtk_signal_connect (GTK_OBJECT (window), "destroy", gtk_main_quit, NULL); /* buttons */ - button = gtk_button_new_with_label ("gtk_tree_store_node_remove"); + button = gtk_button_new_with_label ("gtk_tree_store_iter_remove"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (selection), "selection_changed", selection_changed, button); - gtk_signal_connect (GTK_OBJECT (button), "clicked", node_remove, tree_view); + gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_remove, tree_view); gtk_widget_set_sensitive (button, FALSE); - button = gtk_button_new_with_label ("gtk_tree_store_node_insert"); + button = gtk_button_new_with_label ("gtk_tree_store_iter_insert"); hbox = gtk_hbox_new (FALSE, 8); entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); gtk_object_set_user_data (GTK_OBJECT (button), entry); - gtk_signal_connect (GTK_OBJECT (button), "clicked", node_insert, tree_view); + gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_insert, tree_view); - button = gtk_button_new_with_label ("gtk_tree_store_node_insert_before"); + button = gtk_button_new_with_label ("gtk_tree_store_iter_insert_before"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", node_insert_before, tree_view); + gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_insert_before, tree_view); gtk_signal_connect (GTK_OBJECT (selection), "selection_changed", selection_changed, button); gtk_widget_set_sensitive (button, FALSE); - button = gtk_button_new_with_label ("gtk_tree_store_node_insert_after"); + button = gtk_button_new_with_label ("gtk_tree_store_iter_insert_after"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", node_insert_after, tree_view); + gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_insert_after, tree_view); gtk_signal_connect (GTK_OBJECT (selection), "selection_changed", selection_changed, button); gtk_widget_set_sensitive (button, FALSE); - button = gtk_button_new_with_label ("gtk_tree_store_node_prepend"); + button = gtk_button_new_with_label ("gtk_tree_store_iter_prepend"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", node_prepend, tree_view); + gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_prepend, tree_view); - button = gtk_button_new_with_label ("gtk_tree_store_node_append"); + button = gtk_button_new_with_label ("gtk_tree_store_iter_append"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", node_append, tree_view); + gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_append, tree_view); /* The selected column */ cell = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("nodes", cell, "text", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), GTK_TREE_VIEW_COLUMN (column)); + /* A few to start */ + iter_prepend (NULL, GTK_TREE_VIEW (tree_view)); + iter_prepend (NULL, GTK_TREE_VIEW (tree_view)); + iter_prepend (NULL, GTK_TREE_VIEW (tree_view)); + /* Show it all */ gtk_widget_show_all (window); } @@ -187,11 +263,6 @@ main (int argc, char *argv[]) make_window (); make_window (); - /* A few to start */ - gtk_tree_store_node_append (GTK_TREE_STORE (model), NULL, node_new ()); - gtk_tree_store_node_append (GTK_TREE_STORE (model), NULL, node_new ()); - gtk_tree_store_node_append (GTK_TREE_STORE (model), NULL, node_new ()); - gtk_main (); return 0; |