GtkTreeListModel
GtkTreeListModel — Список моделей, которые могут создавать дочерние модели по запросу
Функции
| GListModel * | (*GtkTreeListModelCreateModelFunc) () |
| GtkTreeListModel * | gtk_tree_list_model_new () |
| GListModel * | gtk_tree_list_model_get_model () |
| gboolean | gtk_tree_list_model_get_passthrough () |
| void | gtk_tree_list_model_set_autoexpand () |
| gboolean | gtk_tree_list_model_get_autoexpand () |
| GtkTreeListRow * | gtk_tree_list_model_get_child_row () |
| GtkTreeListRow * | gtk_tree_list_model_get_row () |
Свойства
| gboolean | autoexpand | Чтение / Запись |
| GListModel * | model | Чтение |
| gboolean | passthrough | Чтение / Запись / Только для создания |
| GListModel * | children | Чтение |
| guint | глубина | Чтение |
| gboolean | расширяемый | Чтение |
| gboolean | расширенный | Чтение / Запись |
| GObject * | элемент | Чтение |
Типы и значения
Иерархия объектов
GObject
├── GtkTreeListModel
╰── GtkTreeListRow
Реализованные интерфейсы
GtkTreeListModel реализует GListModel.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkTreeListModel — это реализация GListModel, которая может расширять строки, создавая новые дочерние модели списков по запросу.
Функции
GtkTreeListModelCreateModelFunc ()
GListModel *
(*GtkTreeListModelCreateModelFunc) (gpointer item,
gpointer user_data); Прототип функции, вызываемой для создания новых дочерних моделей, когда вызывается gtk_tree_list_row_set_expanded().
Эта функция может возвращать NULL для указания, что item гарантированно является узлом листа и никогда не будет иметь дочерних элементов. Если у него нет дочерних элементов, но они могут появиться позже, он должен вернуть пустую модель, которая заполняется, когда появятся дочерние элементы.
Параметры
item | Элемент, который расширяется. | [type GObject] |
user_data | Данные пользователя, переданные при регистрации функции |
Возвращаемое значение
Модель, отслеживающая дочерние элементы item, или NULL, если item никогда не может иметь дочерних элементов.
[nullable][transfer full]
gtk_tree_list_model_new ()
GtkTreeListModel * gtk_tree_list_model_new (GListModel *root,gboolean passthrough,gboolean autoexpand,GtkTreeListModelCreateModelFunc create_func,gpointer user_data,GDestroyNotify user_destroy);
Создаёт новую пустую GtkTreeListModel, отображающую root со всеми строками свёрнутыми.
Параметры
root | Используемая GListModel в качестве корня. | [transfer full] |
passthrough |
| |
autoexpand |
| |
create_func | Функция для вызова создания GListModel для дочерних элементов элемента | |
user_data | Данные, передаваемые в | [closure] |
user_destroy | Функция для вызова освобождения |
Возвращаемое значение
новосозданная GtkTreeListModel.
gtk_tree_list_model_get_model ()
GListModel *
gtk_tree_list_model_get_model (GtkTreeListModel *self); Возвращает корневую модель, с которой была создана self.
Параметры
self | объект GtkTreeListModel |
Возвращаемое значение
корневая модель.
[transfer none]
gtk_tree_list_model_get_passthrough ()
gboolean
gtk_tree_list_model_get_passthrough (GtkTreeListModel *self); Если эта функция возвращает FALSE, функции GListModel для self возвращают пользовательские объекты GtkTreeListRow. Вам нужно вызвать gtk_tree_list_row_get_item() для этих объектов, чтобы получить исходный элемент.
Если TRUE, значения дочерних моделей передаются в их исходном состоянии. Затем вам нужно вызвать gtk_tree_list_model_get_row() для получения пользовательских GtkTreeListRows.
Параметры
self | объект GtkTreeListModel |
Возвращаемое значение
TRUE, если модель пропускает оригинальные элементы строк
gtk_tree_list_model_set_autoexpand ()
void gtk_tree_list_model_set_autoexpand (GtkTreeListModel *self,gboolean autoexpand);
Если установлено значение TRUE, модель будет рекурсивно расширять все строки, которые добавляются в модель. Это могут быть строки, добавленные изменением базовых моделей, или с помощью gtk_tree_list_row_set_expanded().
Параметры
self | объект GtkTreeListModel | |
autoexpand |
|
gtk_tree_list_model_get_autoexpand ()
gboolean
gtk_tree_list_model_get_autoexpand (GtkTreeListModel *self); Получает, установлено ли для модели автоматическое расширение новых строк, которые добавляются. Это могут быть строки, добавленные изменением базовых моделей, или с помощью gtk_tree_list_row_set_expanded().
Параметры
self | объект GtkTreeListModel |
Возвращаемое значение
TRUE если модель настроена на автоматическое расширение
gtk_tree_list_model_get_child_row ()
GtkTreeListRow * gtk_tree_list_model_get_child_row (GtkTreeListModel *self,guint position);
Возвращает элемент строки, соответствующий дочернему элементу с индексом position для корневой модели self.
Если position больше, чем количество дочерних элементов в корневой модели, возвращается NULL.
Не путайте эту функцию с gtk_tree_list_model_get_row().
Параметры
self | объект GtkTreeListModel | |
position | позиция дочернего элемента для получения |
Возвращаемое значение
дочерний элемент в position.
[nullable][transfer full]
gtk_tree_list_model_get_row ()
GtkTreeListRow * gtk_tree_list_model_get_row (GtkTreeListModel *self,guint position);
Возвращает объект строки для данной строки. Если position больше, чем количество элементов в self, возвращается NULL.
Объект строки можно использовать для расширения и сворачивания строк, а также для проверки его позиции в дереве. Подробности см. в документации к нему.
Этот объект строки сохраняется и будет ссылаться на текущий элемент до тех пор, пока строка присутствует в self, независимо от добавления или удаления других строк.
Если self не настроен на проброс, эта функция эквивалентна вызову g_list_model_get_item().
Не путайте эту функцию с gtk_tree_list_model_get_child_row().
Параметры
self | объект GtkTreeListModel | |
position | позиция строки, которую нужно получить |
Возвращаемое значение
Элемент строки.
[nullable][transfer full]
Типы и значения
GtkTreeListModel
typedef struct _GtkTreeListModel GtkTreeListModel;
GtkTreeListRow
typedef struct _GtkTreeListRow GtkTreeListRow;
Подробные сведения о свойствах
Свойство “autoexpand”
“autoexpand” gboolean
Если все строки должны быть развернуты по умолчанию
Владелец: GtkTreeListModel
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “model”
“model” GListModel *
Корневая модель, отображаемая
Владелец: GtkTreeListModel
Флаги: Чтение
Свойство “passthrough”
“passthrough” gboolean
Если FALSE, функции GListModel для этого объекта возвращают пользовательские объекты GtkTreeListRow. Если TRUE, значения дочерних моделей передаются без изменений.
Владелец: GtkTreeListModel
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: FALSE
Свойство “children”
“children” GListModel *
Модель, содержащая дочерние элементы строки.
Владелец: GtkTreeListRow
Флаги: Чтение
Свойство “depth”
“depth” guint
Глубина в дереве этой строки
Владелец: GtkTreeListRow
Флаги: Чтение
Значение по умолчанию: 0
Свойство “expandable”
“expandable” gboolean
Можно ли развернуть эту строку
Владелец: GtkTreeListRow
Флаги: Чтение
Значение по умолчанию: FALSE
Свойство “expanded”
“expanded” gboolean
В настоящее время эта строка развернута
Владелец: GtkTreeListRow
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “item”
“item” GObject *
Элемент, содержащийся в этой строке
Владелец: GtkTreeListRow
Флаги: Чтение
См. также
GListModel
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkTreeListModel.html