Spec-Zone.ru › GTK 3.20

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

a 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

a GtkWidgetPath

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

копию path.

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

С момента: 3.0

gtk_widget_path_ref ()

GtkWidgetPath *
gtk_widget_path_ref (GtkWidgetPath *path);

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

Параметры

path

a GtkWidgetPath

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

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

С момента: 3.2

gtk_widget_path_unref ()

void
gtk_widget_path_unref (GtkWidgetPath *path);

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

Параметры

path

a GtkWidgetPath

С момента: 3.2

gtk_widget_path_free ()

void
gtk_widget_path_free (GtkWidgetPath *path);

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

Параметры

path

a GtkWidgetPath

С момента: 3.0

gtk_widget_path_get_object_type ()

GType
gtk_widget_path_get_object_type (const GtkWidgetPath *path);

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

Параметры

path

a GtkWidget

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

Тип объекта

С момента: 3.0

gtk_widget_path_has_parent ()

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

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

Параметры

path

a 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

a 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, если оно не было задано.

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

С: 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() для освобождения самого списка.

[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

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

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

a 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

a 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.20/gtk3-GtkWidgetPath.html

Spec-Zone.ru

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