GtkBuilderScope
GtkBuilderScope — Связки для GtkBuilder
Функции
Типы и значения
| 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().
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] |
... | Список пар имени обратного вызова и указателя на обратный вызов, завершаемый |
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 | Закрытие должно быть создано сменённое. Подробнее см. |
Структура 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 реализаций. Существуют стандартные реализации для каждой функции, но они обычно просто завершаются неудачей, поэтому рекомендуется, чтобы реализации реализовывали все из них.
Члены
| Попытка найти GType по имени. Подробнее см. | |
| Попытка найти GType по имени заданной функции, явно указанной в файле GtkBuilder, например, через атрибут "type-func" в теге "<object>". Эта функция очень редко используется. Реализация на C будет использовать | |
| Создание закрытия с заданными аргументами. Подробнее см. |
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