Spec-Zone.ru › GTK 4.0

GtkBuilderScope

GtkBuilderScope — Связки для GtkBuilder

Функции

GtkBuilderScope * gtk_builder_cscope_new ()
void gtk_builder_cscope_add_callback_symbol ()
void gtk_builder_cscope_add_callback_symbols ()
GCallback gtk_builder_cscope_lookup_callback_symbol ()

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

GtkBuilderScope
перечисление GtkBuilderClosureFlags
структура GtkBuilderScopeInterface
GtkBuilderCScope

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

    GInterface
    ╰── GtkBuilderScope
    GObject
    ╰── GtkBuilderCScope

Предварительные требования

GtkBuilderScope требует GObject.

Реализованные интерфейсы

GtkBuilderCScope реализует GtkBuilderScope.

Известные реализации

GtkBuilderScope реализован в GtkBuilderCScope.

Включаемые файлы

#include <gtk/gtk.h>

Описание

GtkBuilderScope — это интерфейс, обеспечивающий поддержку GtkBuilder, в первую очередь для поиска значений, специфичных для языка программирования, для строк, заданных в файле пользовательского интерфейса GtkBuilder.

Основная целевая аудитория — это связки, которые хотят обеспечить более глубокую интеграцию GtkBuilder в язык.

Объект GtkBuilderScope можно использовать с несколькими объектами GtkBuilder одновременно.

По умолчанию GTK использует собственную реализацию GtkBuilderScope для языка C, которая может быть создана с помощью gtk_builder_cscope_new().

Объекты GtkBuilderCScope используют символы, явно добавленные в builder с помощью предварительных вызовов gtk_builder_cscope_add_callback_symbol(). Если разработчики хотят сделать это, им рекомендуется создать собственные области видимости для этой цели.

В случае, если символы не добавлены явно; GTK использует интроспективные возможности GModule (открыв модуль NULL) для просмотра таблицы символов приложения. Отсюда он пытается сопоставить имена функций сигнала, заданные в описании интерфейса, с символами в приложении.

Обратите внимание, что если не будет вызван gtk_builder_cscope_add_callback_symbol() для всех сигнальных обратных вызовов, на которые ссылается загруженный XML, для этого функционала потребуется поддержка GModule на платформе.

Функции

gtk_builder_cscope_new ()

GtkBuilderScope *
gtk_builder_cscope_new (void);

Создаёт новый объект GtkBuilderCScope для использования с будущими экземплярами GtkBuilder.

Вызов этой функции необходим только в том случае, если вы хотите добавить пользовательские обратные вызовы с помощью gtk_builder_cscope_add_callback_symbol().

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

новый GtkBuilderCScope.

[transfer full][type GtkBuilderCScope]

gtk_builder_cscope_add_callback_symbol ()

void
gtk_builder_cscope_add_callback_symbol
                               (GtkBuilderCScope *self,
                                const char *callback_name,
                                GCallback callback_symbol);

Добавляет callback_symbol в область видимости builder под заданным callback_name .

Использование этой функции переопределяет поведение gtk_builder_create_closure() для любых символов обратных вызовов, которые были добавлены. Это позволяет лучше упаковывать, так как не требует, чтобы символы обратных вызовов объявлялись во всеобщей области видимости.

Параметры

self

объект GtkBuilderCScope

callback_name

Имя обратного вызова, как ожидается в XML

callback_symbol

Указатель на обратный вызов.

[scope async]

gtk_builder_cscope_add_callback_symbols ()

void
gtk_builder_cscope_add_callback_symbols
                               (GtkBuilderCScope *self,
                                const char *first_callback_name,
                                GCallback first_callback_symbol,
                                ...);

Функция для удобства добавления многих обратных вызовов вместо вызова gtk_builder_cscope_add_callback_symbol() для каждого символа.

[skip]

Параметры

self

объект GtkBuilderCScope

first_callback_name

Имя обратного вызова, как ожидается в XML

first_callback_symbol

Указатель на обратный вызов.

[scope async]

...

Список пар имени обратного вызова и указателя на обратный вызов, завершаемый NULL

gtk_builder_cscope_lookup_callback_symbol ()

GCallback
gtk_builder_cscope_lookup_callback_symbol
                               (GtkBuilderCScope *self,
                                const char *callback_name);

Получает символ, ранее добавленный в self с помощью gtk_builder_cscope_add_callback_symbol().

[skip]

Параметры

self

объект GtkBuilderCScope

callback_name

Имя обратного вызова

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

символ обратного вызова в builder для callback_name , или NULL.

[nullable][transfer none]

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

GtkBuilderScope

typedef struct _GtkBuilderScope GtkBuilderScope;

Перечисление GtkBuilderClosureFlags

Список флагов, которые могут быть переданы в gtk_builder_create_closure(). В будущем могут быть добавлены новые значения для новых функций, поэтому внешние реализации GtkBuilderScopeInterface должны проверять флаги на неизвестные значения и генерировать ошибку GTK_BUILDER_ERROR_INVALID_ATTRIBUTE при их обнаружении.

Члены

GTK_BUILDER_CLOSURE_SWAPPED

Закрытие должно быть создано сменённое. Подробнее см. g_cclosure_new_swap().

Структура GtkBuilderScopeInterface

struct GtkBuilderScopeInterface {
  GType                 (* get_type_from_name)                  (GtkBuilderScope        *self,
                                                                 GtkBuilder             *builder,
                                                                 const char             *type_name);
  GType                 (* get_type_from_function)              (GtkBuilderScope        *self,
                                                                 GtkBuilder             *builder,
                                                                 const char             *function_name);

  GClosure *            (* create_closure)                      (GtkBuilderScope        *self,
                                                                 GtkBuilder             *builder,
                                                                 const char             *function_name,
                                                                 GtkBuilderClosureFlags  flags,
                                                                 GObject                *object,
                                                                 GError                **error);
};

Таблица виртуальных функций для реализации GtkBuilderScope реализаций. Существуют стандартные реализации для каждой функции, но они обычно просто завершаются неудачей, поэтому рекомендуется, чтобы реализации реализовывали все из них.

Члены

get_type_from_name ()

Попытка найти GType по имени. Подробнее см. gtk_builder_get_type_from_name(). Реализация на C будет использовать g_type_from_name() и, если это не удастся, попробует угадать правильное имя функции для регистрации типа, а затем использовать dlsym() для его загрузки. Стандартная реализация просто пытается g_type_from_name() и в противном случае завершается неудачей.

get_type_from_function ()

Попытка найти GType по имени заданной функции, явно указанной в файле GtkBuilder, например, через атрибут "type-func" в теге "<object>". Эта функция очень редко используется. Реализация на C будет использовать dlsym() и вызывать полученную функцию как GTypeFunc. Стандартная реализация завершится неудачей и просто вернёт G_TYPE_INVALID.

create_closure ()

Создание закрытия с заданными аргументами. Подробнее см. gtk_builder_create_closure(). Реализация на C будет пытаться использовать dlsym() для определения имени функции, а затем g_cclosure_new() для создания закрытия для символа. Стандартная реализация просто завершается неудачей и возвращает NULL.

GtkBuilderCScope

typedef struct _GtkBuilderCScope GtkBuilderCScope;

См. также

GtkBuilder, GClosure

© 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/GtkBuilderScope.html

Spec-Zone.ru

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