Spec-Zone.ru › GTK 3.24

GtkWidgetPath

GtkWidgetPath — Абстракция пути виджета

Функции

gint gtk_widget_path_append_type ()
gint gtk_widget_path_append_with_siblings ()
gint gtk_widget_path_append_for_widget ()
GtkWidgetPath * gtk_widget_path_copy ()
GtkWidgetPath * gtk_widget_path_ref ()
void gtk_widget_path_unref ()
void gtk_widget_path_free ()
GType gtk_widget_path_get_object_type ()
gboolean gtk_widget_path_has_parent ()
gboolean gtk_widget_path_is_type ()
void gtk_widget_path_iter_add_class ()
void gtk_widget_path_iter_add_region ()
void gtk_widget_path_iter_clear_classes ()
void gtk_widget_path_iter_clear_regions ()
const gchar * gtk_widget_path_iter_get_name ()
const char * gtk_widget_path_iter_get_object_name ()
GType gtk_widget_path_iter_get_object_type ()
const GtkWidgetPath * gtk_widget_path_iter_get_siblings ()
guint gtk_widget_path_iter_get_sibling_index ()
GtkStateFlags gtk_widget_path_iter_get_state ()
gboolean gtk_widget_path_iter_has_class ()
gboolean gtk_widget_path_iter_has_name ()
gboolean gtk_widget_path_iter_has_qclass ()
gboolean gtk_widget_path_iter_has_qname ()
gboolean gtk_widget_path_iter_has_qregion ()
gboolean gtk_widget_path_iter_has_region ()
GSList * gtk_widget_path_iter_list_classes ()
GSList * gtk_widget_path_iter_list_regions ()
void gtk_widget_path_iter_remove_class ()
void gtk_widget_path_iter_remove_region ()
void gtk_widget_path_iter_set_name ()
void gtk_widget_path_iter_set_object_name ()
void gtk_widget_path_iter_set_object_type ()
void gtk_widget_path_iter_set_state ()
gint gtk_widget_path_length ()
GtkWidgetPath * gtk_widget_path_new ()
void gtk_widget_path_prepend_type ()
char * gtk_widget_path_to_string ()

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

GtkWidgetPath

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

#include <gtk/gtk.h>

Описание

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

Если вы используете виджеты GTK+, вам, вероятно, не нужно будет использовать этот API напрямую, так как есть gtk_widget_get_path(), и контекст стиля, возвращаемый gtk_widget_get_style_context(), будет автоматически обновляться при изменениях в иерархии виджетов.

Генерация пути к виджету, как правило, проста:

Определение кнопки внутри окна

Хотя может быть включена более сложная информация, например, имена виджетов или разные классы (свойства, которые могут использоваться другими типами виджетов) и промежуточные области:

Определение первого виджета вкладки в книжке

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

Функции

gtk_widget_path_append_type ()

gint
gtk_widget_path_append_type (GtkWidgetPath *path,
                             GType type);

Добавляет тип виджета в иерархию виджетов, представленную path.

Параметры

path

объект GtkWidgetPath

type

тип добавляемого виджета

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

позиция, куда был вставлен элемент

С версии: 3.0

gtk_widget_path_append_with_siblings ()

gint
gtk_widget_path_append_with_siblings (GtkWidgetPath *path,
                                      GtkWidgetPath *siblings,
                                      guint sibling_index);

Добавляет тип виджета вместе со всеми его соседними элементами в иерархию виджетов, представленную path. Использование этой функции вместо gtk_widget_path_append_type() позволит CSS-стилизации использовать совпадения по соседним элементам в селекторах и применять псевдоклассы :nth-child(). В свою очередь, это требует более тщательного подхода в реализации виджетов, так как виджеты должны убедиться, что вызывают gtk_widget_reset_style() для всех затронутых виджетов при изменении пути siblings.

Параметры

path

путь к виджету, к которому нужно добавить элементы

siblings

путь к виджету, описывающий список соседей. Этот путь не должен содержать собственных соседей и не должен изменяться после добавления.

sibling_index

индекс в siblings, определяющий позицию добавляемого элемента.

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

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

С версии: 3.2

gtk_widget_path_append_for_widget ()

gint
gtk_widget_path_append_for_widget (GtkWidgetPath *path,
                                   GtkWidget *widget);

Добавляет данные из widget в иерархию виджетов, представленную path. Эта функция — сокращение для добавления информации из widget в указанный path. Это включает установку имени или добавление стилистических классов из widget.

Параметры

path

путь к виджету

widget

виджет, который нужно добавить в путь виджета

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

позиция, куда были вставлены данные

С версии: 3.2

gtk_widget_path_copy ()

GtkWidgetPath *
gtk_widget_path_copy (const GtkWidgetPath *path);

Возвращает копию path

Параметры

path

объект GtkWidgetPath

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

копию path.

[передача полная]

С версии: 3.0

gtk_widget_path_ref ()

GtkWidgetPath *
gtk_widget_path_ref (GtkWidgetPath *path);

Увеличивает счетчик ссылок на path.

Параметры

path

объект GtkWidgetPath

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

path само по себе.

С версии: 3.2

gtk_widget_path_unref ()

void
gtk_widget_path_unref (GtkWidgetPath *path);

Уменьшает счетчик ссылок на path, освобождая структуру, если счетчик ссылок достигнет 0.

Параметры

path

объект GtkWidgetPath

С версии: 3.2

gtk_widget_path_free ()

void
gtk_widget_path_free (GtkWidgetPath *path);

Уменьшает счетчик ссылок на path, освобождая структуру, если счетчик ссылок достигнет 0.

Параметры

path

объект GtkWidgetPath

С версии: 3.0

gtk_widget_path_get_object_type ()

GType
gtk_widget_path_get_object_type (const GtkWidgetPath *path);

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

Параметры

path

объект GtkWidget

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

Тип объекта

С версии: 3.0

gtk_widget_path_has_parent ()

gboolean
gtk_widget_path_has_parent (const GtkWidgetPath *path,
                            GType type);

Возвращает TRUE, если любой из родителей виджета, представленного в path, имеет тип type или любой его подтип.

Параметры

path

объект GtkWidgetPath

type

тип виджета для проверки в родителях

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

TRUE, если какой-либо родитель имеет тип type

С версии: 3.0

gtk_widget_path_is_type ()

gboolean
gtk_widget_path_is_type (const GtkWidgetPath *path,
                         GType type);

Возвращает TRUE, если тип виджета, представленного этим путем, является type или его подтипом.

Параметры

path

объект GtkWidgetPath

type

тип виджета для сопоставления

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

TRUE, если виджет, представленный path, имеет тип type

С версии: 3.0

gtk_widget_path_iter_add_class ()

void
gtk_widget_path_iter_add_class (GtkWidgetPath *path,
                                gint pos,
                                const gchar *name);

Добавляет класс name к виджету в позиции pos в иерархии, определённой в path . См. gtk_style_context_add_class().

Параметры

path

a GtkWidget

pos

позиция для изменения, -1 для начала пути

name

имя класса

С версии: 3.0

gtk_widget_path_iter_add_region ()

void
gtk_widget_path_iter_add_region (GtkWidgetPath *path,
                                 gint pos,
                                 const gchar *name,
                                 GtkRegionFlags flags);

gtk_widget_path_iter_add_region устарело с версии 3.14 и не должно использоваться в новом коде.

Использование областей устарело.

Добавляет область name к виджету в позиции pos в иерархии, определённой в path . См. gtk_style_context_add_region().

Имена областей должны содержать только строчные буквы и символ «-», всегда начинаясь со строчной буквы.

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

name

имя области

flags

флаги, влияющие на область

С версии: 3.0

gtk_widget_path_iter_clear_classes ()

void
gtk_widget_path_iter_clear_classes (GtkWidgetPath *path,
                                    gint pos);

Удаляет все классы из виджета в позиции pos в иерархии, определённой в path .

Параметры

path

a GtkWidget

pos

позиция для изменения, -1 для начала пути

С версии: 3.0

gtk_widget_path_iter_clear_regions ()

void
gtk_widget_path_iter_clear_regions (GtkWidgetPath *path,
                                    gint pos);

gtk_widget_path_iter_clear_regions устарело с версии 3.14 и не должно использоваться в новом коде.

Использование областей устарело.

Удаляет все области из виджета в позиции pos в иерархии, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

С версии: 3.0

gtk_widget_path_iter_get_name ()

const gchar *
gtk_widget_path_iter_get_name (const GtkWidgetPath *path,
                               gint pos);

Возвращает имя, соответствующее виджету в позиции pos в иерархии виджетов, определённой в path

Параметры

path

a GtkWidgetPath

pos

позиция для получения имени виджета, -1 для начала пути

Возвращает

Имя виджета или NULL, если оно не было задано.

[nullable]

gtk_widget_path_iter_get_object_name ()

const char *
gtk_widget_path_iter_get_object_name (const GtkWidgetPath *path,
                                      gint pos);

Возвращает имя объекта в позиции pos в иерархии виджетов, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для получения имени объекта, -1 для начала пути

Возвращает

имя или NULL.

[nullable]

С версии: 3.20

gtk_widget_path_iter_get_object_type ()

GType
gtk_widget_path_iter_get_object_type (const GtkWidgetPath *path,
                                      gint pos);

Возвращает тип объекта GType в позиции pos в иерархии виджетов, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для получения типа объекта, -1 для начала пути

Возвращает

тип виджета

С версии: 3.0

gtk_widget_path_iter_get_siblings ()

const GtkWidgetPath *
gtk_widget_path_iter_get_siblings (const GtkWidgetPath *path,
                                   gint pos);

Возвращает список элементов-братьев для элемента в позиции pos . Если элемент не был добавлен с братьями, возвращается NULL.

Параметры

path

a GtkWidgetPath

pos

позиция для получения элементов-братьев, -1 для начала пути

Возвращает

NULL или список элементов-братьев для элемента в позиции pos .

gtk_widget_path_iter_get_sibling_index ()

guint
gtk_widget_path_iter_get_sibling_index
                               (const GtkWidgetPath *path,
                                gint pos);

Возвращает индекс в списке элементов-братьев для элемента в позиции pos, как возвращает gtk_widget_path_iter_get_siblings(). Если эта функция возвращает NULL, потому что у элемента в позиции pos нет братьев, эта функция возвращает 0.

Параметры

path

a GtkWidgetPath

pos

позиция для получения индекса элемента-брата, -1 для начала пути

Возвращает

0 или индекс в списке элементов-братьев для элемента в позиции pos .

gtk_widget_path_iter_get_state ()

GtkStateFlags
gtk_widget_path_iter_get_state (const GtkWidgetPath *path,
                                gint pos);

Возвращает флаги состояния виджета, расположенного по позиции pos в иерархии виджетов, определённой path.

Параметры

path

a GtkWidgetPath

pos

позиция для получения состояния, -1 для начала пути

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

Флаги состояния

С: 3.14

gtk_widget_path_iter_has_class ()

gboolean
gtk_widget_path_iter_has_class (const GtkWidgetPath *path,
                                gint pos,
                                const gchar *name);

Возвращает TRUE, если у виджета в позиции pos определён класс name, FALSE в противном случае.

Параметры

path

a GtkWidgetPath

pos

позиция для проверки, -1 для начала пути

name

имя класса

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

TRUE, если класс name определён для виджета в позиции pos

С: 3.0

gtk_widget_path_iter_has_name ()

gboolean
gtk_widget_path_iter_has_name (const GtkWidgetPath *path,
                               gint pos,
                               const gchar *name);

Возвращает TRUE, если у виджета в позиции pos есть имя name, FALSE в противном случае.

Параметры

path

a GtkWidgetPath

pos

позиция для проверки, -1 для начала пути

name

имя виджета

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

TRUE, если у виджета в позиции pos есть это имя

С: 3.0

gtk_widget_path_iter_has_qclass ()

gboolean
gtk_widget_path_iter_has_qclass (const GtkWidgetPath *path,
                                 gint pos,
                                 GQuark qname);

См. gtk_widget_path_iter_has_class(). Эта версия работает с GQuarks.

Параметры

path

a GtkWidgetPath

pos

позиция для проверки, -1 для начала пути

qname

имя класса как GQuark

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

TRUE, если у виджета в позиции pos определён класс.

С: 3.0

gtk_widget_path_iter_has_qname ()

gboolean
gtk_widget_path_iter_has_qname (const GtkWidgetPath *path,
                                gint pos,
                                GQuark qname);

См. gtk_widget_path_iter_has_name(). Это версия, работающая с GQuarks.

Параметры

path

a GtkWidgetPath

pos

позиция для проверки, -1 для начала пути

qname

имя виджета как GQuark

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

TRUE, если у виджета в позиции pos есть это имя

С: 3.0

gtk_widget_path_iter_has_qregion ()

gboolean
gtk_widget_path_iter_has_qregion (const GtkWidgetPath *path,
                                  gint pos,
                                  GQuark qname,
                                  GtkRegionFlags *flags);

gtk_widget_path_iter_has_qregion устарело начиная с версии 3.14 и не должно использоваться в новом коде.

Использование областей устарело.

См. gtk_widget_path_iter_has_region(). Эта версия работает с GQuarks.

Параметры

path

a GtkWidgetPath

pos

позиция для проверки, -1 для начала пути

qname

имя области как GQuark

flags

место для флагов области.

[out]

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

TRUE, если у виджета в позиции pos определена область.

С: 3.0

gtk_widget_path_iter_has_region ()

gboolean
gtk_widget_path_iter_has_region (const GtkWidgetPath *path,
                                 gint pos,
                                 const gchar *name,
                                 GtkRegionFlags *flags);

gtk_widget_path_iter_has_region устарело начиная с версии 3.14 и не должно использоваться в новом коде.

Использование областей устарело.

Возвращает TRUE, если у виджета в позиции pos определён класс name, FALSE в противном случае.

Параметры

path

a GtkWidgetPath

pos

позиция для проверки, -1 для начала пути

name

имя области

flags

место для флагов области.

[out]

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

TRUE, если класс name определён для виджета в позиции pos

С: 3.0

gtk_widget_path_iter_list_classes ()

GSList *
gtk_widget_path_iter_list_classes (const GtkWidgetPath *path,
                                   gint pos);

Возвращает список всех имен классов, определённых для виджета в позиции pos в иерархии, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для запроса, -1 для начала пути

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

Список классов. Это список строк, содержимое GSList принадлежит GTK+, но вы должны использовать g_slist_free() для освобождения самого списка.

[перенос контейнера][тип-элемента utf8]

С: 3.0

gtk_widget_path_iter_list_regions ()

GSList *
gtk_widget_path_iter_list_regions (const GtkWidgetPath *path,
                                   gint pos);

gtk_widget_path_iter_list_regions устарел с версии 3.14 и не должен использоваться в новом коде.

Использование областей устарело.

Возвращает список всех имён областей, определённых для виджета в позиции pos в иерархии, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для запроса, -1 для начала пути

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

Список областей. Это список строк, содержимое GSList принадлежит GTK+, но вы должны использовать g_slist_free() для освобождения самого списка.

[перенос контейнера][тип-элемента utf8]

С: 3.0

gtk_widget_path_iter_remove_class ()

void
gtk_widget_path_iter_remove_class (GtkWidgetPath *path,
                                   gint pos,
                                   const gchar *name);

Удаляет класс name из виджета в позиции pos в иерархии, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

name

имя класса

С: 3.0

gtk_widget_path_iter_remove_region ()

void
gtk_widget_path_iter_remove_region (GtkWidgetPath *path,
                                    gint pos,
                                    const gchar *name);

gtk_widget_path_iter_remove_region устарел с версии 3.14 и не должен использоваться в новом коде.

Использование областей устарело.

Удаляет область name из виджета в позиции pos в иерархии, определённой в path .

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

name

имя области

С: 3.0

gtk_widget_path_iter_set_name ()

void
gtk_widget_path_iter_set_name (GtkWidgetPath *path,
                               gint pos,
                               const gchar *name);

Устанавливает имя виджета для виджета, найденного в позиции pos в иерархии виджетов, определённой path .

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

name

имя виджета

С: 3.0

gtk_widget_path_iter_set_object_name ()

void
gtk_widget_path_iter_set_object_name (GtkWidgetPath *path,
                                      gint pos,
                                      const char *name);

Устанавливает имя объекта для заданной позиции в иерархии виджетов, определённой path .

При установке имя объекта переопределяет тип объекта при сопоставлении с CSS.

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

name

имя объекта для установки или NULL для сброса.

[разрешено-null]

С: 3.20

gtk_widget_path_iter_set_object_type ()

void
gtk_widget_path_iter_set_object_type (GtkWidgetPath *path,
                                      gint pos,
                                      GType type);

Устанавливает тип объекта для заданной позиции в иерархии виджетов, определённой path .

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

type

тип объекта для установки

С: 3.0

gtk_widget_path_iter_set_state ()

void
gtk_widget_path_iter_set_state (GtkWidgetPath *path,
                                gint pos,
                                GtkStateFlags state);

Устанавливает имя виджета для виджета, найденного в позиции pos в иерархии виджетов, определённой path .

Если вы хотите обновить только один флаг состояния, вам нужно сделать это вручную, так как эта функция обновляет все флаги состояния.

Установка флага

Сброс флага

{
  GtkWidgetPath *path;

  path = gtk_widget_path_new ();
  gtk_widget_path_append_type (path, GTK_TYPE_WINDOW);
  gtk_widget_path_append_type (path, GTK_TYPE_BUTTON);
}

Параметры

path

a GtkWidgetPath

pos

позиция для изменения, -1 для начала пути

state

флаги состояния

С: 3.14

gtk_widget_path_length ()

gint
gtk_widget_path_length (const GtkWidgetPath *path);

Возвращает количество GtkWidget GTypes между представленным виджетом и его самым верхним контейнером.

Параметры

path

путь GtkWidgetPath

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

количество элементов в пути

С: 3.0

gtk_widget_path_new ()

GtkWidgetPath *
gtk_widget_path_new (void);

Возвращает пустой путь виджета.

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

Новый созданный, пустой, GtkWidgetPath.

[transfer full]

С: 3.0

gtk_widget_path_prepend_type ()

void
gtk_widget_path_prepend_type (GtkWidgetPath *path,
                              GType type);

Добавляет тип виджета в начало иерархии виджетов, представленной path.

Параметры

path

путь GtkWidgetPath

type

тип виджета для добавления

С: 3.0

gtk_widget_path_to_string ()

char *
gtk_widget_path_to_string (const GtkWidgetPath *path);

Преобразует путь виджета в строковое представление. Он пытается максимально точно соответствовать стилю CSS (Обратите внимание, что могут быть пути, которые невозможно представить в CSS).

Основное использование этого кода — для целей отладки, чтобы вы могли g_print() путь или вывести его в сессии gdb.

Параметры

path

путь

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

Новая строка, описывающая path .

С: 3.2

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

GtkWidgetPath

typedef struct _GtkWidgetPath GtkWidgetPath;

См. также

GtkStyleContext

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

Spec-Zone.ru

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