+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 (<span color=\"red\">%d</span>)", 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);
+}
+