Spec-Zone.ru › GTK 3.22

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.

[transfer full]

С момента: 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

объект 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

объект 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

объект 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

объект 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

объект 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

объект 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

объект 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

объект 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().

[transfer container][element-type 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().

[transfer container][element-type 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 для сброса.

[allow-none]

С: 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

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

Since: 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

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

Since: 3.14

gtk_widget_path_length ()

gint
gtk_widget_path_length (const GtkWidgetPath *path);

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

Параметры

path

a GtkWidgetPath

Возвращает

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

Since: 3.0

gtk_widget_path_new ()

GtkWidgetPath *
gtk_widget_path_new (void);

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

Возвращает

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

[transfer full]

Since: 3.0

gtk_widget_path_prepend_type ()

void
gtk_widget_path_prepend_type (GtkWidgetPath *path,
                              GType type);

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

Параметры

path

a GtkWidgetPath

type

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

Since: 3.0

gtk_widget_path_to_string ()

char *
gtk_widget_path_to_string (const GtkWidgetPath *path);

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

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

Параметры

path

путь

Возвращает

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

Since: 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.22/gtk3-GtkWidgetPath.html

Spec-Zone.ru

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