Re: inserting model in a GtkTreeStore
- From: Lance Dillon <riffraff169 yahoo com>
- To: gtk-app-devel-list gnome org
- Subject: Re: inserting model in a GtkTreeStore
- Date: Sun, 27 Apr 2008 12:28:26 -0700 (PDT)
----- Original Message ----
From: Carlos Pereira <jose carlos pereira ist utl pt>
Cc: gtk-app-devel-list gnome org
Sent: Sunday, April 27, 2008 12:10:27 PM
Subject: inserting model in a GtkTreeStore
Hi all!
To insert the various nodes in a GtkTreeStore, the code below works for me.
The problem is, this should not work, because I am handling a
GtkTreeIter as if it was some sort of integer, while it is in fact a
structure!
The current child node is the next parent node, so I would expect the
proper
way to do this would be to copy the current node iter to the parent
iter, and
because these are structures, I would have to copy their contents...
What is the standard way of doing this? I am confused!
Thanks!
Carlos
GtkTreeIter insert_row (GtkTreeStore *store, GtkTreeIter *parent, char
*label)
{
GtkTreeIter iter;
gtk_tree_store_append (store, &iter, parent);
gtk_tree_store_set (store, &iter, 0, label, -1);
return iter;
}
void insert_model (GtkWidget *treeview)
{
GtkTreeStore *store;
GtkTreeIter iter1, iter2, iter3;
store = gtk_tree_store_new (1, G_TYPE_STRING);
iter1 = insert_row (store, NULL, "Node 0");
iter2 = insert_row (store, &iter1, "Node 0:0");
insert_row (store, &iter2, "Node 0:0:0");
insert_row (store, &iter2, "Node 0:0:1");
gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (store));
g_object_unref (store);
}
-------------------------------------------
I believe this is copying the struct (which is allowed as of c99 or something, I believe). Now, if you leave
the function and try to use one of the copied structs, it probably won't work, becuase these iters were
allocated on the stack, and will have been freed. You can do that only if you only will use the iter in the
current function, otherwise you'll want to use it as a pointer instead.
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]