краткое описание#include <gtk/gtk.h> gtktreemodelfilter; gboolean (*gtktreemodelfiltervisiblefunc) (gtktreemodel *model, gtktreeiter *iter, gpointer data); void (*gtktreemodelfiltermodifyfunc) (gtktreemodel *model, gtktreeiter *iter, gvalue *value, gint column, gpointer data); gtktreemodel* gtk_tree_model_filter_new (gtktreemodel *child_model, gtktreepath *root); void gtk_tree_model_filter_set_visible_func (gtktreemodelfilter *filter, gtktreemodelfiltervisiblefunc func, gpointer data, gtkdestroynotify destroy); void gtk_tree_model_filter_set_modify_func (gtktreemodelfilter *filter, gint n_columns, gtype *types, gtktreemodelfiltermodifyfunc func, gpointer data, gtkdestroynotify destroy); void gtk_tree_model_filter_set_visible_column (gtktreemodelfilter *filter, gint column); gtktreemodel* gtk_tree_model_filter_get_model (gtktreemodelfilter *filter); gboolean gtk_tree_model_filter_convert_child_iter_to_iter (gtktreemodelfilter *filter, gtktreeiter *filter_iter, gtktreeiter *child_iter); void gtk_tree_model_filter_convert_iter_to_child_iter (gtktreemodelfilter *filter, gtktreeiter *child_iter, gtktreeiter *filter_iter); gtktreepath* gtk_tree_model_filter_convert_child_path_to_path (gtktreemodelfilter *filter, gtktreepath *child_path); gtktreepath* gtk_tree_model_filter_convert_path_to_child_path (gtktreemodelfilter *filter, gtktreepath *filter_path); void gtk_tree_model_filter_refilter (gtktreemodelfilter *filter); void gtk_tree_model_filter_clear_cache (gtktreemodelfilter *filter); иерархия объектовgobject +----gtktreemodelfilter осуществляемые интерфейсыgtktreemodelfilter осуществляет gtktreemodel и gtktreedragsource. свойства"child-model" gtktreemodel : read / write / construct only "virtual-root" gtktreepath : read / write / construct only описаниеgtktreemodelfilter это модель дерева которая является оболочкой для другой модели дерева и может выполнять следующее:
деталиgtktreemodelfiltertypedef struct _gtktreemodelfilter gtktreemodelfilter; структура gtktreemodelfilter содержит только закрытые поля. gtktreemodelfiltervisiblefunc ()gboolean (*gtktreemodelfiltervisiblefunc) (gtktreemodel *model, gtktreeiter *iter, gpointer data);
функция которая решает видима ли строка
указанная
gtktreemodelfiltermodifyfunc ()void (*gtktreemodelfiltermodifyfunc) (gtktreemodel *model, gtktreeiter *iter, gvalue *value, gint column, gpointer data);
функция которая вычисляет отображаемое
значение из строки значений в модели.
она должна заполнить так как эта функция вызывается для каждого доступа к данным, это не очень эффективная операция.
gtk_tree_model_filter_new ()gtktreemodel* gtk_tree_model_filter_new (gtktreemodel *child_model, gtktreepath *root);
создаёт новый gtktreemodel,
с
начиная с версии 2.4 gtk_tree_model_filter_set_visible_func ()void gtk_tree_model_filter_set_visible_func (gtktreemodelfilter *filter, gtktreemodelfiltervisiblefunc func, gpointer data, gtkdestroynotify destroy);
устанавливает функцию видимости
используемую при фильтрации если состояние рассчитываемое функцией
изменяется всё время (например потому что
это зависит от некоторых глобальных
параметров), вы должны вызвать
начиная с версии 2.4 gtk_tree_model_filter_set_modify_func ()void gtk_tree_model_filter_set_modify_func (gtktreemodelfilter *filter, gint n_columns, gtype *types, gtktreemodelfiltermodifyfunc func, gpointer data, gtkdestroynotify destroy);
с параметрами
начиная с версии 2.4 gtk_tree_model_filter_set_visible_column ()void gtk_tree_model_filter_set_visible_column (gtktreemodelfilter *filter, gint column);
устанавливает
начиная с версии 2.4 gtk_tree_model_filter_get_model ()gtktreemodel* gtk_tree_model_filter_get_model (gtktreemodelfilter *filter);
возвращает указатель для дочерней
модели
начиная с версии 2.4 gtk_tree_model_filter_convert_child_iter_to_iter ()gboolean gtk_tree_model_filter_convert_child_iter_to_iter (gtktreemodelfilter *filter, gtktreeiter *filter_iter, gtktreeiter *child_iter);
устанавливает
начиная с версии 2.4 gtk_tree_model_filter_convert_iter_to_child_iter ()void gtk_tree_model_filter_convert_iter_to_child_iter (gtktreemodelfilter *filter, gtktreeiter *child_iter, gtktreeiter *filter_iter);
устанавливает
начиная с версии 2.4 gtk_tree_model_filter_convert_child_path_to_path ()gtktreepath* gtk_tree_model_filter_convert_child_path_to_path (gtktreemodelfilter *filter, gtktreepath *child_path);
преобразует
начиная с версии 2.4 gtk_tree_model_filter_convert_path_to_child_path ()gtktreepath* gtk_tree_model_filter_convert_path_to_child_path (gtktreemodelfilter *filter, gtktreepath *filter_path);
преобразует
начиная с версии 2.4 gtk_tree_model_filter_refilter ()void gtk_tree_model_filter_refilter (gtktreemodelfilter *filter); издаёт сигнал ::row_changed для каждой строки в дочерней модели, который заставляет фильтр переоценивать видима строка или нет.
начиная с версии 2.4 gtk_tree_model_filter_clear_cache ()void gtk_tree_model_filter_clear_cache (gtktreemodelfilter *filter);
эта функция в основном не должна
вызываться. она очищает
начиная с версии 2.4 детали свойствсвойство "
|