| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | | Known Implementations | Signals | ||||
| GtkTreeSortableGtkTreeSortable Интерфейс для сортируемых моделей используемых виджетом GtkTreeView | 
#include <gtk/gtk.h>
            GtkTreeSortable;
            GtkTreeSortableIface;
gint        (*GtkTreeIterCompareFunc)       (GtkTreeModel *model,
                                             GtkTreeIter *a,
                                             GtkTreeIter *b,
                                             gpointer user_data);
void        gtk_tree_sortable_sort_column_changed
                                            (GtkTreeSortable *sortable);
gboolean    gtk_tree_sortable_get_sort_column_id
                                            (GtkTreeSortable *sortable,
                                             gint *sort_column_id,
                                             GtkSortType *order);
void        gtk_tree_sortable_set_sort_column_id
                                            (GtkTreeSortable *sortable,
                                             gint sort_column_id,
                                             GtkSortType order);
void        gtk_tree_sortable_set_sort_func (GtkTreeSortable *sortable,
                                             gint sort_column_id,
                                             GtkTreeIterCompareFunc sort_func,
                                             gpointer user_data,
                                             GtkDestroyNotify destroy);
void        gtk_tree_sortable_set_default_sort_func
                                            (GtkTreeSortable *sortable,
                                             GtkTreeIterCompareFunc sort_func,
                                             gpointer user_data,
                                             GtkDestroyNotify destroy);
gboolean    gtk_tree_sortable_has_default_sort_func
                                            (GtkTreeSortable *sortable);
GInterface +----GtkTreeSortable
GtkTreeSortable требует GtkTreeModel и GObject.
GtkTreeSortable осуществляется GtkTreeModelSort, GtkTreeStore и GtkListStore.
"sort-column-changed"
            void        user_function      (GtkTreeSortable *treesortable,
                                            gpointer         user_data)         : Run lastGtkTreeSortable это интерфейс для реализации древовидных моделей поддерживающих сортировку. GtkTreeView использует методы обеспечиваемые этим интерфейсом для сортировки моделей.
typedef struct _GtkTreeSortable GtkTreeSortable;
typedef struct {
  GTypeInterface g_iface;
  /* сигналы */
  void     (* sort_column_changed)   (GtkTreeSortable        *sortable);
  /* виртуальная таблица */
  gboolean (* get_sort_column_id)    (GtkTreeSortable        *sortable,
                                      gint                   *sort_column_id,
                                      GtkSortType            *order);
  void     (* set_sort_column_id)    (GtkTreeSortable        *sortable,
                                      gint                    sort_column_id,
                                      GtkSortType             order);
  void     (* set_sort_func)         (GtkTreeSortable        *sortable,
                                      gint                    sort_column_id,
                                      GtkTreeIterCompareFunc  func,
                                      gpointer                data,
                                      GtkDestroyNotify        destroy);
  void     (* set_default_sort_func) (GtkTreeSortable        *sortable,
                                      GtkTreeIterCompareFunc  func,
                                      gpointer                data,
                                      GtkDestroyNotify        destroy);
  gboolean (* has_default_sort_func) (GtkTreeSortable        *sortable);
} GtkTreeSortableIface;
gint        (*GtkTreeIterCompareFunc)       (GtkTreeModel *model,
                                             GtkTreeIter *a,
                                             GtkTreeIter *b,
                                             gpointer user_data);
 GtkTreeIterCompareFunc должна возвращать
отрицательное целое, ноль, или положительное
целое если a находится перед
b, a равна b,
или a после b
соответственно. Если два сравниваемых
итератора эквивалентны, их порядок в
сортируемой модели не определён. Чтобы
гарантировать что GtkTreeSortable
ведёт себя как ожидается, 
GtkTreeIterCompareFunc должен определить частичный
порядок в модели, то есть он должен быть
рефлексивный, антисимметричный и
транзитивный. 
Например, если model
каталогизирует продукты, то когда функция
сравнения для столбца "price" должна
быть одним из возвращаемых price_of(. 
a)
- price_of(b)
| 
 | GtkTreeModel в пределах которой сравнение | 
| 
 | GtkTreeIter в
			 | 
| 
 | Другой GtkTreeIter
			в  | 
| 
 | Данные помещаемые при назначении
			функции сравнения, например
			 | 
| Возвращает : | 
void        gtk_tree_sortable_sort_column_changed
                                            (GtkTreeSortable *sortable);Издаёт сигнал GtkTreeSortable::sort_column_changed
| 
 | 
gboolean    gtk_tree_sortable_get_sort_column_id
                                            (GtkTreeSortable *sortable,
                                             gint *sort_column_id,
                                             GtkSortType *order);
Заполняет sort_column_id и order
текущим сортируемым столбцом и порядком
сортировки. Возвращает TRUE
если sort_column_id это не
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID или
GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.
| 
 | |
| 
 | id сортируемого столбца | 
| 
 | GtkSortType для заполнения | 
| Возвращает : | 
 | 
void        gtk_tree_sortable_set_sort_column_id
                                            (GtkTreeSortable *sortable,
                                             gint sort_column_id,
                                             GtkSortType order);
Устанавливает текущий сортируемый
столбец в sort_column_id.  sortable
будет пересортирован непосредственно
для отражения этих изменений, после
издания сигнала GtkTreeSortable::sort_column_changed.
Если sort_column_id это
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, то когда
будет использована функция сортировки
по умолчанию, если она установлена.
| 
 | |
| 
 | Сортируемый столбец | 
| 
 | Порядок сортировки столбца | 
void        gtk_tree_sortable_set_sort_func (GtkTreeSortable *sortable,
                                             gint sort_column_id,
                                             GtkTreeIterCompareFunc sort_func,
                                             gpointer user_data,
                                             GtkDestroyNotify destroy);
Устанавливает функцию сравнения,
используемую при сортировки, в sort_func.
Если текущий сортируемый столбец
sortable это тоже самое что
sort_column_id, то когда сортируемая
модель будет использовать эту функцию.
| 
 | |
| 
 | id сортируемого столбца для устанавливаемой функции | 
| 
 | Функция сравнения | 
| 
 | Пользовательские данные помещаемые
			в  | 
| 
 | Разрушающее уведомление  | 
void        gtk_tree_sortable_set_default_sort_func
                                            (GtkTreeSortable *sortable,
                                             GtkTreeIterCompareFunc sort_func,
                                             gpointer user_data,
                                             GtkDestroyNotify destroy);
Устанавливает функцию сравнения по
умолчанию, используемую при сортировки,
в sort_func. Если id текущемго
сортируемого столбца sortable
это GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, то когда
модель сортируется используя эту
функцию. 
Если sort_func равен NULL,
то функция сравнения по умолчанию
отсутствует. Это значит что после
сортировки модели, она не может вернуть
в состояние по умолчанию. В этом случае,
когда id текущемго сортируемого столбца
sortable равен
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, модель будет не
сортирована.
| 
 | |
| 
 | Функция сравнения | 
| 
 | Пользовательские данные помещаемые
			в  | 
| 
 | Уведомление разрушения  | 
gboolean    gtk_tree_sortable_has_default_sort_func
                                            (GtkTreeSortable *sortable);
Возвращает TRUE
если модель имеет функцию сортировки
по умолчанию. Это используется прежде
всего GtkTreeViewColumns, для определения может
ли модель возвращаться в состояние
значения по умолчанию или нет.
| 
 | |
| Возвращает : | 
 | 
void        user_function                  (GtkTreeSortable *treesortable,
                                            gpointer         user_data)         : Run last
| 
 | Объект получающий сигнал. | 
| 
 | Пользовательские данные помещаемые при подключении обработчика сигнала. | 
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |