Spec-Zone.ru › GTK 4.0

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 ()

Свойства

gboolean has-map Чтение
GListModel * model Чтение/Запись/Только для создания

Типы и значения

GtkMapListModel

Иерархия объектов

    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

Модель для сопоставления или NULL для отсутствия.

[transfer full][allow-none]

map_func

Функция сопоставления или NULL для отключения сопоставления элементов.

[allow-none]

user_data

пользовательские данные, передаваемые в map_func.

[closure]

user_destroy

уведомление об уничтожении для user_data

Возвращаемое значение

новая 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

функция сопоставления или NULL для отключения сопоставления элементов.

[allow-none]

user_data

пользовательские данные, передаваемые в map_func.

[closure]

user_destroy

уведомление об уничтожении для user_data

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API