X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=tests%2Ftreestoretest.c;h=a3ace607125dd1cb10ac217400ecd9f0b263a655;hb=HEAD;hp=cf4c7e85e1aa3063135401c74c4191c6fcaf3401;hpb=8eaa071617f29f267bb0ffb05976fa5885dbf595;p=~andy%2Fgtk diff --git a/tests/treestoretest.c b/tests/treestoretest.c index cf4c7e85e..a3ace6071 100644 --- a/tests/treestoretest.c +++ b/tests/treestoretest.c @@ -1,8 +1,27 @@ +/* treestoretest.c + * Copyright (C) 2001 Red Hat, Inc + * Author: Jonathan Blandford + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library. If not, see . + */ +#include "config.h" #include #include #include GtkTreeStore *base_model; +static gint node_count = 0; static void selection_changed (GtkTreeSelection *selection, @@ -17,11 +36,10 @@ selection_changed (GtkTreeSelection *selection, static void node_set (GtkTreeIter *iter) { - static gint i = 0; gint n; gchar *str; - str = g_strdup_printf ("Row (%d)", i++); + str = g_strdup_printf ("Row (%d)", node_count++); gtk_tree_store_set (base_model, iter, 0, str, -1); g_free (str); @@ -38,7 +56,6 @@ static void iter_remove (GtkWidget *button, GtkTreeView *tree_view) { GtkTreeIter selected; - GtkTreeIter s_selected; GtkTreeModel *model; model = gtk_tree_view_get_model (tree_view); @@ -60,21 +77,21 @@ iter_insert (GtkWidget *button, GtkTreeView *tree_view) GtkWidget *entry; GtkTreeIter iter; GtkTreeIter selected; - GtkTreeStore *model = gtk_tree_view_get_model (tree_view); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); - entry = gtk_object_get_user_data (GTK_OBJECT (button)); + entry = g_object_get_data (G_OBJECT (button), "user_data"); if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), NULL, &selected)) { - gtk_tree_store_insert (model, + gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &selected, atoi (gtk_entry_get_text (GTK_ENTRY (entry)))); } else { - gtk_tree_store_insert (model, + gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, NULL, atoi (gtk_entry_get_text (GTK_ENTRY (entry)))); @@ -83,25 +100,84 @@ iter_insert (GtkWidget *button, GtkTreeView *tree_view) node_set (&iter); } +static void +iter_change (GtkWidget *button, GtkTreeView *tree_view) +{ + GtkWidget *entry; + GtkTreeIter selected; + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + + entry = g_object_get_data (G_OBJECT (button), "user_data"); + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + NULL, &selected)) + { + gtk_tree_store_set (GTK_TREE_STORE (model), + &selected, + 1, + gtk_entry_get_text (GTK_ENTRY (entry)), + -1); + } +} + +static void +iter_insert_with_values (GtkWidget *button, GtkTreeView *tree_view) +{ + GtkWidget *entry; + GtkTreeIter iter; + GtkTreeIter selected; + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + gchar *str1, *str2; + + entry = g_object_get_data (G_OBJECT (button), "user_data"); + str1 = g_strdup_printf ("Row (%d)", node_count++); + str2 = g_strdup_printf ("%d", atoi (gtk_entry_get_text (GTK_ENTRY (entry)))); + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + NULL, + &selected)) + { + gtk_tree_store_insert_with_values (GTK_TREE_STORE (model), + &iter, + &selected, + -1, + 0, str1, + 1, str2, + -1); + } + else + { + gtk_tree_store_insert_with_values (GTK_TREE_STORE (model), + &iter, + NULL, + -1, + 0, str1, + 1, str2, + -1); + } + + g_free (str1); + g_free (str2); +} + static void iter_insert_before (GtkWidget *button, GtkTreeView *tree_view) { GtkTreeIter iter; GtkTreeIter selected; - GtkTreeStore *model = gtk_tree_view_get_model (tree_view); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), NULL, &selected)) { - gtk_tree_store_insert_before (model, + gtk_tree_store_insert_before (GTK_TREE_STORE (model), &iter, NULL, &selected); } else { - gtk_tree_store_insert_before (model, + gtk_tree_store_insert_before (GTK_TREE_STORE (model), &iter, NULL, NULL); @@ -115,7 +191,7 @@ iter_insert_after (GtkWidget *button, GtkTreeView *tree_view) { GtkTreeIter iter; GtkTreeIter selected; - GtkTreeStore *model = gtk_tree_view_get_model (tree_view); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), NULL, @@ -123,7 +199,7 @@ iter_insert_after (GtkWidget *button, GtkTreeView *tree_view) { if (GTK_IS_TREE_STORE (model)) { - gtk_tree_store_insert_after (model, + gtk_tree_store_insert_after (GTK_TREE_STORE (model), &iter, NULL, &selected); @@ -134,7 +210,7 @@ iter_insert_after (GtkWidget *button, GtkTreeView *tree_view) { if (GTK_IS_TREE_STORE (model)) { - gtk_tree_store_insert_after (model, + gtk_tree_store_insert_after (GTK_TREE_STORE (model), &iter, NULL, NULL); @@ -178,7 +254,7 @@ iter_append (GtkWidget *button, GtkTreeView *tree_view) { GtkTreeIter iter; GtkTreeIter selected; - GtkTreeStore *model = gtk_tree_view_get_model (tree_view); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), NULL, @@ -186,7 +262,7 @@ iter_append (GtkWidget *button, GtkTreeView *tree_view) { if (GTK_IS_TREE_STORE (model)) { - gtk_tree_store_append (model, &iter, &selected); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, &selected); node_set (&iter); } } @@ -194,25 +270,12 @@ iter_append (GtkWidget *button, GtkTreeView *tree_view) { if (GTK_IS_TREE_STORE (model)) { - gtk_tree_store_append (model, &iter, NULL); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); node_set (&iter); } } } -static void -uppercase_value (const GValue *src, GValue *dest, gpointer data) -{ - gchar *str; - - g_value_init (dest, G_TYPE_STRING); - str = g_strdup (g_value_get_string (src)); - if (str) - g_strup (str); - g_value_set_string (dest, str); - g_free (str); -} - static void make_window (gint view_type) { @@ -238,7 +301,7 @@ make_window (gint view_type) break; } - vbox = gtk_vbox_new (FALSE, 8); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_window_set_default_size (GTK_WINDOW (window), 300, 350); scrolled_window = gtk_scrolled_window_new (NULL, NULL); @@ -257,12 +320,13 @@ make_window (gint view_type) break; default: g_assert_not_reached (); + tree_view = NULL; /* Quiet compiler */ break; } gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tree_view), TRUE); selection = G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); - gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection), GTK_TREE_SELECTION_SINGLE); + gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection), GTK_SELECTION_SINGLE); /* Put them together */ gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view); @@ -271,68 +335,94 @@ make_window (gint view_type) gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_signal_connect (GTK_OBJECT (window), "destroy", gtk_main_quit, NULL); + g_signal_connect (window, "destroy", gtk_main_quit, NULL); /* buttons */ button = gtk_button_new_with_label ("gtk_tree_store_remove"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - g_signal_connectc (G_OBJECT (selection), - "changed", - selection_changed, - button, FALSE); - gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_remove, tree_view); + g_signal_connect (selection, "changed", + G_CALLBACK (selection_changed), + button); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_remove), + tree_view); gtk_widget_set_sensitive (button, FALSE); button = gtk_button_new_with_label ("gtk_tree_store_insert"); - hbox = gtk_hbox_new (FALSE, 8); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 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); + g_object_set_data (G_OBJECT (button), "user_data", entry); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_insert), + tree_view); + + button = gtk_button_new_with_label ("gtk_tree_store_set"); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 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", iter_insert, tree_view); + g_object_set_data (G_OBJECT (button), "user_data", entry); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_change), + tree_view); + button = gtk_button_new_with_label ("gtk_tree_store_insert_with_values"); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 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); + g_object_set_data (G_OBJECT (button), "user_data", entry); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_insert_with_values), + tree_view); button = gtk_button_new_with_label ("gtk_tree_store_insert_before"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_insert_before, tree_view); - g_signal_connectc (G_OBJECT (selection), - "changed", - selection_changed, - button, FALSE); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_insert_before), + tree_view); + g_signal_connect (selection, "changed", + G_CALLBACK (selection_changed), + button); gtk_widget_set_sensitive (button, FALSE); button = gtk_button_new_with_label ("gtk_tree_store_insert_after"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_insert_after, tree_view); - g_signal_connectc (G_OBJECT (selection), - "changed", - selection_changed, - button, FALSE); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_insert_after), + tree_view); + g_signal_connect (selection, "changed", + G_CALLBACK (selection_changed), + button); gtk_widget_set_sensitive (button, FALSE); button = gtk_button_new_with_label ("gtk_tree_store_prepend"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_prepend, tree_view); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_prepend), + tree_view); button = gtk_button_new_with_label ("gtk_tree_store_append"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - gtk_signal_connect (GTK_OBJECT (button), "clicked", iter_append, tree_view); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_append), + tree_view); /* The selected column */ cell = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Node ID", cell, "markup", 0, NULL); gtk_tree_view_column_set_sort_column_id (column, 0); gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); - g_object_unref (G_OBJECT (cell)); - g_object_unref (G_OBJECT (column)); cell = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Random Number", cell, "text", 1, NULL); gtk_tree_view_column_set_sort_column_id (column, 1); gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); - g_object_unref (G_OBJECT (cell)); - g_object_unref (G_OBJECT (column)); /* A few to start */ if (view_type == 0) @@ -353,7 +443,7 @@ main (int argc, char *argv[]) { gtk_init (&argc, &argv); - base_model = gtk_tree_store_new_with_types (2, G_TYPE_STRING, G_TYPE_STRING); + base_model = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_STRING); /* FIXME: reverse this */ make_window (0);