GtkTreeIter assignment

2012-10-30 Thread Vlasov Vitaly
Hello list.

Is that normal, to assign one GtkTreeIter to another?

For example:
void add_new( ... , GtkTreeIter *iter)
{
GtkTreeIter *default_iter;

if(iter != NULL)
{
   default_iter = iter; -- is that noraml??
}
gtk_tree_store_append(default_iter);
}

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: GtkTreeIter assignment

2012-10-30 Thread David Nečas
On Tue, Oct 30, 2012 at 05:05:37PM +0400, Vlasov Vitaly wrote:
 Is that normal, to assign one GtkTreeIter to another?
 
 For example:
 void add_new( ... , GtkTreeIter *iter)
 {
 GtkTreeIter *default_iter;
 
 if(iter != NULL)
 {
default_iter = iter; -- is that noraml??

This is pointer assignment: default_iter will denote the same chunk of
memory as iter.  What exactly should be abnormal here?

 }
 gtk_tree_store_append(default_iter);

This is invalid code: wrong number of arguments of wrong type.  And, of
course, default_iter is possibly being used uninitialised.

Yeti

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: GtkTreeIter assignment

2012-10-30 Thread Vlasov Vitaly
Oops!
GtkTreeIter *default_iter -- GtkTreeIter default_iter;

It's question about:
default_iter = *iter; -- is that normal?

I can give you more verbose example(it's pseudo-code, not C):
prepare_iter()
{
  GtkTreeIter iter;
  gtk_tree_store_insert_after( ... , iter , ...);

  add_new_entry(model, iter);
}

add_new_entry(GtkTreeModel, GtkTreeIter *iter)
{
  GtkTreeIter default_iter;
  GtkTreeStore *store = GTK_TREE_STORE(model);

  if(iter != NULL)
  {
default_iter = *iter; -- i need that
  }
  else gtk_tree_store_append(... , default_iter, ...);
  gtk_tree_store_set(store, default_iter, 1, name, -1);
}

So, i need to call add_new_entry() somewhere outside with some model and
second NULL arg.

If you're interested, this is how i doing right now:
http://pastebin.com/QKDivBub
It's work, but i don't like it.

В Вт., 30/10/2012 в 14:36 +0100, David Nečas пишет:
 On Tue, Oct 30, 2012 at 05:05:37PM +0400, Vlasov Vitaly wrote:
  Is that normal, to assign one GtkTreeIter to another?
  
  For example:
  void add_new( ... , GtkTreeIter *iter)
  {
  GtkTreeIter *default_iter;
  
  if(iter != NULL)
  {
 default_iter = iter; -- is that noraml??
 
 This is pointer assignment: default_iter will denote the same chunk of
 memory as iter.  What exactly should be abnormal here?
 
  }
  gtk_tree_store_append(default_iter);
 
 This is invalid code: wrong number of arguments of wrong type.  And, of
 course, default_iter is possibly being used uninitialised.
 
 Yeti
 


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: GtkTreeIter assignment

2012-10-30 Thread David Nečas
On Tue, Oct 30, 2012 at 06:53:18PM +0400, Vlasov Vitaly wrote:
 GtkTreeIter *default_iter -- GtkTreeIter default_iter;
 
 It's question about:
 default_iter = *iter; -- is that normal?

Yes.  It is explicitly specified that tree iters can be copied by value.
See for instance here

http://developer.gnome.org/gtk/stable/GtkTreeModel.html#gtk-tree-iter-copy

Yeti

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list