Tim Wunder <[EMAIL PROTECTED]> writes: > OK... So I : > "Filter specific rows, based on data from a "visible column", a column > storing > booleans indicating whether the row should be filtered or not, or based on > the return value of a "visible function", which gets a model, iter and > user_data and returns a boolean indicating whether the row should be filtered > or not." > Where do I do this filtering? I guess I'd need to create some sort of > "visible > function" that would make visible that which I want to filter???
Right ... well... you'll want to make that which you want to filter *invisible*, but... ;) When you create the GtkTreeModelFilter, you provide a function that fits the signature of GtkTreeModelFilterVisibleFunc [1]. That is, make a new function that has the same return value and arguments, and obeys the semantics defined, then just use it's name to pass a pointer to the function for the filtering algorithm to invoke later. Something like: static gboolean _gnc_sxslr_filter_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { // filters out even rows // (I made up the function name; this is all handwavy... --jsled) gboolean is_even_row = gtk_tree_iter_get_row_number(model, iter) % 2 == 0; return !is_even_row; } // [...] GtkTreeModel *filtered_model = gtk_tree_model_filter_new(existing_model, NULL); gtk_tree_model_filter_set_visible_func(filtered_model, _gnc_sxslr_filter_func, NULL, NULL); This is very similar to the use of an Interface in object-oriented languages ... the function pointer can be thought of as a functional interface. > And WTF is > an "iter"? It represents a particular row in a particular model. The 4th paragraph of [2] has a bit more color. Generally, you'll want to read [3] to get a sense of how the TreeModel and TreeView (and the rest of the related classes/types) interact. The design is non-trival, but I don't really consider it overly complex, either. [1] http://library.gnome.org/devel/gtk/unstable/GtkTreeModelFilter.html#GtkTreeModelFilterVisibleFunc [2] http://library.gnome.org/devel/gtk/unstable/GtkTreeModel.html#id3511622 [3] http://library.gnome.org/devel/gtk/unstable/TreeWidget.html (All this is in your local devhelp, too.) >> Color coding is always tricky ... in cultural significance ... in how it [...] > Yeah, I know. But it would look purdy if it had colors. ;) Heh. :) -- ...jsled http://asynchronous.org/ - a=jsled; b=asynchronous.org; echo [EMAIL PROTECTED]
pgpgxrjZKMMw6.pgp
Description: PGP signature
_______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel