Am Donnerstag, den 20.10.2005, 19:06 +0800 schrieb searun:
> Hi ,
> 
> Now i want to use GtkTreeSortable to sort a list. The first entry in the
> gtk_tree_view is an information entry which needn't to be sorted, so i don't
> want the GtkTreeIterCompareFunc function use the first entry. In my programe
> i check GtkTreeIter, if it is the same as the first iter, the
> GtkTreeIterCompareFunc will return 0.
> BUT it can't work. After two day's debug, i can't find the reason.
> 
> Any help is appreciated, even if you have another good method.

Returning 0 is wrong here, because it denotes that both elements are
equal, and no sorting will take place for this element. Rather use:

static int
my_cmp_func (GtkTreeModel *model,
             GtkTreeIter *a,
             GtkTreeIter *b,
             MyType *first_element)
{
  MyType *element_a, *element_b;

  gtk_tree_model_get (model, a, MY_ELEMENT_COLUMN, &element_a, NULL);
  gtk_tree_model_get (model, b, MY_ELEMENT_COLUMN, &element_b, NULL);

  if (element_a == element_b) {
    return 0;
  }

  if (element_a == first_element) {
    return -1;
  }

  if (element_b == first_element) {
    return 1;
  }

/* other sorting */
}

-- 
Christian Neumair <[EMAIL PROTECTED]>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to