summaryrefslogtreecommitdiff
path: root/tests/treestoretest.c
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@redhat.com>2000-10-26 00:36:47 +0000
committerJonathan Blandford <jrb@src.gnome.org>2000-10-26 00:36:47 +0000
commitef7b510f467ca15b3a62f59a97ad5ba255cd124d (patch)
treea664a45f37ee115f4496fca523333e41e259ff31 /tests/treestoretest.c
parentaaee9100270a2ed2aba3eec8017848a0ba76efb5 (diff)
downloadgtk+-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.c191
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;