Spec-Zone.ru › GTK 3.22

GtkBuildable

GtkBuildable — Интерфейс для объектов, которые могут быть построены с помощью GtkBuilder

Функции

void gtk_buildable_set_name ()
const gchar * gtk_buildable_get_name ()
void gtk_buildable_add_child ()
void gtk_buildable_set_buildable_property ()
GObject * gtk_buildable_construct_child ()
gboolean gtk_buildable_custom_tag_start ()
void gtk_buildable_custom_tag_end ()
void gtk_buildable_custom_finished ()
void gtk_buildable_parser_finished ()
GObject * gtk_buildable_get_internal_child ()

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

GtkBuildable
struct GtkBuildableIface

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

    GInterface
    ╰── GtkBuildable

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

GtkBuildable требует GObject.

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

GtkBuildable реализован в GtkAboutDialog, GtkAccelLabel, GtkAction, GtkActionBar, GtkActionGroup, GtkAlignment, GtkAppChooserButton, GtkAppChooserDialog, GtkAppChooserWidget, GtkApplicationWindow, GtkArrow, GtkAspectFrame, GtkAssistant, GtkBin, GtkBox, GtkButton, GtkButtonBox, GtkCalendar, GtkCellArea, GtkCellAreaBox, GtkCellView, GtkCheckButton, GtkCheckMenuItem, GtkColorButton, GtkColorChooserDialog, GtkColorChooserWidget, GtkColorSelection, GtkColorSelectionDialog, GtkComboBox, GtkComboBoxText, GtkContainer, GtkDialog, GtkDrawingArea, GtkEntry, GtkEntryCompletion, GtkEventBox, GtkExpander, GtkFileChooserButton, GtkFileChooserDialog, GtkFileChooserWidget, GtkFileFilter, GtkFixed, GtkFlowBox, GtkFlowBoxChild, GtkFontButton, GtkFontChooserDialog, GtkFontChooserWidget, GtkFontSelection, GtkFontSelectionDialog, GtkFrame, GtkGLArea, GtkGrid, GtkHBox, GtkHButtonBox, GtkHPaned, GtkHSV, GtkHScale, GtkHScrollbar, GtkHSeparator, GtkHandleBox, GtkHeaderBar, GtkIconFactory, GtkIconView, GtkImage, GtkImageMenuItem, GtkInfoBar, GtkInvisible, GtkLabel, GtkLayout, GtkLevelBar, GtkLinkButton, GtkListBox, GtkListBoxRow, GtkListStore, GtkLockButton, GtkMenu, GtkMenuBar, GtkMenuButton, GtkMenuItem, GtkMenuShell, GtkMenuToolButton, GtkMessageDialog, GtkMisc, GtkModelButton, GtkNotebook, GtkOffscreenWindow, GtkOverlay, GtkPageSetupUnixDialog, GtkPaned, GtkPlacesSidebar, GtkPlug, GtkPopover, GtkPopoverMenu, GtkPrintUnixDialog, GtkProgressBar, GtkRadioAction, GtkRadioButton, GtkRadioMenuItem, GtkRadioToolButton, GtkRange, GtkRecentAction, GtkRecentChooserDialog, GtkRecentChooserMenu, GtkRecentChooserWidget, GtkRecentFilter, GtkRevealer, GtkScale, GtkScaleButton, GtkScrollbar, GtkScrolledWindow, GtkSearchBar, GtkSearchEntry, GtkSeparator, GtkSeparatorMenuItem, GtkSeparatorToolItem, GtkShortcutsGroup, GtkShortcutsSection, GtkShortcutsShortcut, GtkShortcutsWindow, GtkSizeGroup, GtkSocket, GtkSpinButton, GtkSpinner, GtkStack, GtkStackSidebar, GtkStackSwitcher, GtkStatusbar, GtkSwitch, GtkTable, GtkTearoffMenuItem, GtkTextTagTable, GtkTextView, GtkToggleAction, GtkToggleButton, GtkToggleToolButton, GtkToolButton, GtkToolItem, GtkToolItemGroup, GtkToolPalette, GtkToolbar, GtkTreeStore, GtkTreeView, GtkTreeViewColumn, GtkUIManager, GtkVBox, GtkVButtonBox, GtkVPaned, GtkVScale, GtkVScrollbar, GtkVSeparator, GtkViewport,

GtkVolumeButton, GtkWidget и GtkWindow.

Включения

#include <gtk/gtk.h>

Описание

GtkBuildable позволяет объектам расширять и настраивать их десериализацию из описаний пользовательского интерфейса GtkBuilder. Интерфейс включает методы для задания имён и свойств объектов, парсинга пользовательских тегов и создания дочерних объектов.

Интерфейс GtkBuildable реализуется всеми виджетами и многими не-виджетными объектами, предоставляемыми GTK+. Основным пользователем этого интерфейса является GtkBuilder. Приложениям практически не потребуется вызывать какие-либо из этих функций напрямую.

Объекту необходимо реализовать этот интерфейс только в том случае, если он нуждается в расширении формата GtkBuilder или выполнении дополнительных процедур во время десериализации.

Функции

gtk_buildable_set_name ()

void
gtk_buildable_set_name (GtkBuildable *buildable,
                        const gchar *name);

Устанавливает имя объекта buildable.

Параметры

buildable

объект GtkBuildable

name

имя для установки

С момента: 2.12

gtk_buildable_get_name ()

const gchar *
gtk_buildable_get_name (GtkBuildable *buildable);

Возвращает имя объекта buildable.

GtkBuilder устанавливает имя на основе определения GtkBuilder UI, используемого для построения объекта buildable.

Параметры

buildable

объект GtkBuildable

Возвращает

установленное с помощью gtk_buildable_set_name() имя.

С момента: 2.12

gtk_buildable_add_child ()

void
gtk_buildable_add_child (GtkBuildable *buildable,
                         GtkBuilder *builder,
                         GObject *child,
                         const gchar *type);

Добавляет дочерний элемент к buildable. type - необязательная строка, описывающая, как добавить дочерний элемент.

Параметры

buildable

объект GtkBuildable

builder

объект GtkBuilder

child

дочерний элемент для добавления

type

тип дочернего элемента или NULL.

[allow-none]

С момента: 2.12

gtk_buildable_set_buildable_property ()

void
gtk_buildable_set_buildable_property (GtkBuildable *buildable,
                                      GtkBuilder *builder,
                                      const gchar *name,
                                      const GValue *value);

Устанавливает свойство name объекта buildable со значением value.

Параметры

buildable

объект GtkBuildable

builder

объект GtkBuilder

name

имя свойства

value

значение свойства

С момента: 2.12

gtk_buildable_construct_child ()

GObject *
gtk_buildable_construct_child (GtkBuildable *buildable,
                               GtkBuilder *builder,
                               const gchar *name);

Создаёт дочерний элемент buildable с именем name.

GtkBuilder вызывает эту функцию, если в определении интерфейса указан «конструктор».

Параметры

buildable

Объект GtkBuildable

builder

GtkBuilder используемый для построения объекта

name

имя дочернего элемента для создания

Возвращает

созданный дочерний элемент.

[transfer full]

С момента: 2.12

gtk_buildable_custom_tag_start ()

gboolean
gtk_buildable_custom_tag_start (GtkBuildable *buildable,
                                GtkBuilder *builder,
                                GObject *child,
                                const gchar *tagname,
                                GMarkupParser *parser,
                                gpointer *data);

Вызывается для каждого неизвестного элемента под <child>.

Параметры

buildable

объект GtkBuildable

builder

GtkBuilder используемый для построения объекта

child

дочерний объект или NULL для элементов, не являющихся дочерними.

[allow-none]

tagname

имя тега

parser

GMarkupParser для заполнения.

[out]

data

место для данных пользователя, которые будут переданы в функции парсера.

[out]

Возвращает

TRUE, если у объекта есть собственная реализация, FALSE в противном случае.

С момента: 2.12

gtk_buildable_custom_tag_end ()

void
gtk_buildable_custom_tag_end (GtkBuildable *buildable,
                              GtkBuilder *builder,
                              GObject *child,
                              const gchar *tagname,
                              gpointer *data);

Вызывается в конце каждого пользовательского элемента, обработанного объектом buildable.

Параметры

buildable

Объект GtkBuildable

builder

GtkBuilder используемый для построения объекта

child

дочерний объект или NULL для элементов, не являющихся дочерними.

[allow-none]

tagname

имя тега

data

данные пользователя, передаваемые в функции парсера.

[type gpointer]

С момента: 2.12

gtk_buildable_custom_finished ()

void
gtk_buildable_custom_finished (GtkBuildable *buildable,
                               GtkBuilder *builder,
                               GObject *child,
                               const gchar *tagname,
                               gpointer data);

Это аналогично gtk_buildable_parser_finished(), но вызывается один раз для каждого обработанного пользовательского тега buildable.

Параметры

buildable

объект GtkBuildable

builder

объект GtkBuilder

child

объект дочернего элемента или NULL для тегов, не являющихся дочерними.

[allow-none]

tagname

имя тега

data

данные пользователя, созданные в custom_tag_start

С версии: 2.12

gtk_buildable_parser_finished ()

void
gtk_buildable_parser_finished (GtkBuildable *buildable,
                               GtkBuilder *builder);

Вызывается при завершении анализа определения пользовательского интерфейса GtkBuilder. Обратите внимание, что это будет вызвано один раз для каждого вызова gtk_builder_add_from_file() или gtk_builder_add_from_string() на объекте билдера.

Параметры

buildable

объект GtkBuildable

builder

объект GtkBuilder

С версии: 2.12

gtk_buildable_get_internal_child ()

GObject *
gtk_buildable_get_internal_child (GtkBuildable *buildable,
                                  GtkBuilder *builder,
                                  const gchar *childname);

Получить внутренний дочерний элемент, называемый childname, объекта buildable.

Параметры

buildable

объект GtkBuildable

builder

объект GtkBuilder

childname

имя дочернего элемента

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

внутренний дочерний элемент объекта buildable.

[transfer none]

С версии: 2.12

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

GtkBuildable

typedef struct _GtkBuildable GtkBuildable;

struct GtkBuildableIface

struct GtkBuildableIface {
  GTypeInterface g_iface;

  /* virtual table */
  void          (* set_name)               (GtkBuildable  *buildable,
                                            const gchar   *name);
  const gchar * (* get_name)               (GtkBuildable  *buildable);
  void          (* add_child)              (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    GObject       *child,
					    const gchar   *type);
  void          (* set_buildable_property) (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    const gchar   *name,
					    const GValue  *value);
  GObject *     (* construct_child)        (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    const gchar   *name);
  gboolean      (* custom_tag_start)       (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    GObject       *child,
					    const gchar   *tagname,
					    GMarkupParser *parser,
					    gpointer      *data);
  void          (* custom_tag_end)         (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    GObject       *child,
					    const gchar   *tagname,
					    gpointer      *data);
  void          (* custom_finished)        (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    GObject       *child,
					    const gchar   *tagname,
					    gpointer       data);
  void          (* parser_finished)        (GtkBuildable  *buildable,
					    GtkBuilder    *builder);

  GObject *     (* get_internal_child)     (GtkBuildable  *buildable,
					    GtkBuilder    *builder,
					    const gchar   *childname);
};

Интерфейс GtkBuildableIface содержит методы, необходимые для того, чтобы GtkBuilder мог создать объект из определения пользовательского интерфейса GtkBuilder.

Члены

set_name ()

Хранит атрибут имени, заданный в определении пользовательского интерфейса GtkBuilder. GtkWidget хранит имя как данные объекта. Реализуйте этот метод, если ваш объект имеет понятие «имя», и имеет смысл сопоставлять атрибут имени XML с ним.

get_name ()

Метод-получатель, соответствующий set_name. Реализуйте этот метод, если реализовали set_name.

add_child ()

Добавляет дочерний элемент. Параметр type может использоваться для различения типа дочернего элемента. GtkContainer реализует это для добавления дочернего виджета в контейнер, GtkNotebook использует type для различения меток страниц (типа "page-label") и обычных дочерних элементов.

set_buildable_property ()

Устанавливает свойство объекта buildable. Обычно нет необходимости реализовывать это, g_object_set_property() используется по умолчанию. GtkWindow реализует это для отсрочки показа (т. е. установки свойства “visible”) до создания всего интерфейса.

construct_child ()

Создает дочерний элемент buildable, указанный как «конструктор» в определении пользовательского интерфейса. GtkUIManager реализует это для ссылки на виджет, созданный в теге <ui>, который находится за пределами обычной иерархии определения пользовательского интерфейса GtkBuilder. Ссылка на созданный объект возвращается и становится собственностью вызывающей стороны.

custom_tag_start ()

Реализуйте это, если buildable необходимо разобрать содержимое ниже <child>. Для обработки элемента реализация должна заполнить parser и user_data и вернуть TRUE. GtkWidget реализует это для разбора сочетаний клавиш, указанных в элементах <accelerator>. GtkContainer реализует это для сопоставления свойств, определенных в элементах <packing>, с свойствами дочернего элемента. Обратите внимание, что user_data должен быть освобожден в custom_tag_end или custom_finished.

custom_tag_end ()

Вызывается для закрывающего тега каждого пользовательского элемента, обработанного buildable (см. custom_tag_start).

custom_finished ()

Вызывается для каждого пользовательского тега, обработанного buildable, когда билдер завершает разбор (см. custom_tag_start).

parser_finished ()

Вызывается, когда билдер завершает разбор определения пользовательского интерфейса. Обычно нет необходимости реализовывать это, если не требуются специальные действия по очистке. GtkWindow устанавливает свойство “visible” здесь.

get_internal_child ()

Возвращает внутренний дочерний элемент buildable. GtkDialog реализует это для доступа к своему vbox, что позволяет добавлять дочерние элементы в vbox в определении пользовательского интерфейса. Реализуйте этот метод, если buildable имеет внутренние дочерние элементы, к которым необходимо получить доступ из определения пользовательского интерфейса.

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkBuildable.html

Spec-Zone.ru

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