GtkMapListModel
GtkMapListModel — Список моделей, преобразующий свои элементы
Функции
| gpointer | (*GtkMapListModelMapFunc) () |
| GtkMapListModel * | gtk_map_list_model_new () |
| void | gtk_map_list_model_set_map_func () |
| void | gtk_map_list_model_set_model () |
| GListModel * | gtk_map_list_model_get_model () |
| gboolean | gtk_map_list_model_has_map () |
Типы и значения
Иерархия объектов
GObject
╰── GtkMapListModel
Реализованные интерфейсы
GtkMapListModel реализует GListModel.
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkMapListModel — это список моделей, который принимает список моделей и отображает элементы этой модели на другие элементы в соответствии с GtkMapListModelMapFunc.
Пример: Создание списка GtkEventControllers
static gpointer
map_to_controllers (gpointer widget,
gpointer data)
{
gpointer result = gtk_widget_observe_controllers (widget);
g_object_unref (widget);
return result;
}
widgets = gtk_widget_observe_children (widget);
controllers = gtk_map_list_model_new (G_TYPE_LIST_MODEL,
widgets,
map_to_controllers,
NULL, NULL);
model = gtk_flatten_list_model_new (GTK_TYPE_EVENT_CONTROLLER,
controllers);GtkMapListModel попытается удалить сопоставленные объекты, как только они больше не нужны, и пересоздать их при необходимости.
Функции
GtkMapListModelMapFunc ()
gpointer
(*GtkMapListModelMapFunc) (gpointer item,
gpointer user_data); Функция пользователя, вызываемая для сопоставления item исходной модели с элементом, ожидаемым моделью сопоставления.
Возвращаемые элементы должны соответствовать типу элементов модели, с которой они используются.
Параметры
item | Элемент для сопоставления. | [type GObject][transfer full] |
user_data | пользовательские данные |
Возвращаемое значение
Элемент для сопоставления. Данная функция не может вернуть NULL.
[type GObject][transfer full]
gtk_map_list_model_new ()
GtkMapListModel * gtk_map_list_model_new (GListModel *model,GtkMapListModelMapFunc map_func,gpointer user_data,GDestroyNotify user_destroy);
Создаёт новую модель GtkMapListModel для заданных аргументов.
Параметры
model | Модель для сопоставления или | [transfer full][allow-none] |
map_func | Функция сопоставления или | [allow-none] |
user_data | пользовательские данные, передаваемые в | [closure] |
user_destroy | уведомление об уничтожении для |
Возвращаемое значение
новая GtkMapListModel
gtk_map_list_model_set_map_func ()
void gtk_map_list_model_set_map_func (GtkMapListModel *self,GtkMapListModelMapFunc map_func,gpointer user_data,GDestroyNotify user_destroy);
Устанавливает функцию, используемую для сопоставления элементов. Функция вызывается всякий раз, когда требуется сопоставить элемент, и должна вернуть элемент для заданного входного элемента.
Обратите внимание, что GtkMapListModel может вызывать эту функцию несколько раз для одного и того же элемента, так как она может удалять элементы, которые больше не нужны.
GTK не предпринимает попыток гарантировать, что map_func соответствует типу элементов self. Предполагается, что вызывающая сторона знает, что делает, и функция сопоставления возвращает элементы соответствующего типа.
Параметры
self | объект GtkMapListModel | |
map_func | функция сопоставления или | [allow-none] |
user_data | пользовательские данные, передаваемые в | [closure] |
user_destroy | уведомление об уничтожении для |
gtk_map_list_model_set_model ()
void gtk_map_list_model_set_model (GtkMapListModel *self,GListModel *model);
Устанавливает сопоставляемую модель.
GTK не предпринимает попыток гарантировать, что model соответствует типу элементов, ожидаемому функцией сопоставления. Предполагается, что вызывающая сторона знает, что делает, и установила подходящую функцию сопоставления.
Параметры
self | объект GtkMapListModel | |
model | Модель для сопоставления. | [allow-none] |
gtk_map_list_model_get_model ()
GListModel *
gtk_map_list_model_get_model (GtkMapListModel *self); Получает модель, которая в данный момент сопоставляется, или NULL при отсутствии.
Параметры
self | объект GtkMapListModel |
Возвращаемое значение
Модель, которая сопоставляется.
[nullable][transfer none]
gtk_map_list_model_has_map ()
gboolean
gtk_map_list_model_has_map (GtkMapListModel *self); Проверяет, установлена ли функция сопоставления для self
Параметры
self | объект GtkMapListModel |
Возвращаемое значение
TRUE, если функция сопоставления установлена.
Типы и значения
GtkMapListModel
typedef struct _GtkMapListModel GtkMapListModel;
Подробное описание свойств
Свойство “has-map”
“has-map” gboolean
Если для этой модели установлено сопоставление
Владелец: GtkMapListModel
Флаги: Чтение
Значение по умолчанию: FALSE
Свойство “model”
“model” GListModel *
Сопоставляемая модель
Владелец: GtkMapListModel
Флаги: Чтение / Запись / Только для конструирования
См. также
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/GtkMapListModel.html