Spec-Zone.ru › GTK 4.0

GtkIconTheme

GtkIconTheme — Поиск иконок по имени

Функции

GtkIconTheme * gtk_icon_theme_new ()
GtkIconTheme * gtk_icon_theme_get_for_display ()
GdkDisplay * gtk_icon_theme_get_display ()
void gtk_icon_theme_set_search_path ()
char ** gtk_icon_theme_get_search_path ()
void gtk_icon_theme_add_search_path ()
void gtk_icon_theme_set_resource_path ()
char ** gtk_icon_theme_get_resource_path ()
void gtk_icon_theme_add_resource_path ()
void gtk_icon_theme_set_theme_name ()
char * gtk_icon_theme_get_theme_name ()
gboolean gtk_icon_theme_has-icon ()
GtkIconPaintable * gtk_icon_theme_lookup_icon ()
GtkIconPaintable * gtk_icon_theme_lookup_by-gicon ()
char ** gtk_icon_theme_get-icon-names ()
int * gtk_icon_theme_get-icon-sizes ()
GtkIconPaintable * gtk_icon_paintable-new-for-file ()
GFile * gtk_icon-paintable-get-file ()
const char * gtk_icon_paintable-get-icon-name ()
gboolean gtk_icon-paintable-is-symbolic ()

Свойства

GdkDisplay * display Чтение/Запись
GStrv icon-names Чтение
GStrv resource-path Чтение/Запись
GStrv search-path Чтение/Запись
char * theme-name Чтение/Запись

Сигналы

void changed Последний запуск

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

GtkIconPaintable
GtkIconTheme
перечисление GtkIconLookupFlags
#определить GTK_ICON_THEME_ERROR
#определить GTK_TYPE_ICON_THEME_ERROR
#определить GTK_TYPE_ICON_LOOKUP_FLAGS
перечисление GtkIconThemeError

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

    GObject
    ╰── GtkIconTheme

Файлы заголовков

#include <gtk/gtk.h>

Описание

GtkIconTheme предоставляет средства для поиска иконок по имени и размеру. Основная причина использования имени вместо простого указания файла в том, что в зависимости от выбранной пользователем «темы иконок» могут использоваться различные иконки. Работа тем иконок в Linux и Unix основана на Спецификации темы иконок. Существует тема иконок по умолчанию, названная hicolor, куда приложения должны устанавливать свои иконки, но могут быть установлены и дополнительные темы иконок по выбору производителей операционных систем и пользователей.

В многих случаях именованные темы используются косвенно, через GtkImage, а не напрямую, но прямой поиск иконок также прост. Объект GtkIconTheme выступает в качестве базы данных всех иконок в текущей теме. Вы можете создавать новые объекты GtkIconTheme, но гораздо эффективнее использовать стандартную тему иконок для GtkWidget, чтобы информация об иконках была общая для других приложений, которые ищут иконки.

GtkIconTheme *icon_theme;
GtkIconPaintable *icon;
GdkPaintable *paintable;

icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (my_widget));
icon = gtk_icon_theme_lookup_icon (icon_theme,
                                   "my-icon-name", // icon name
                                   48, // icon size
                                   1,  // scale
                                   0,  // flags);
 paintable = GDK_PAINTABLE (icon);
 // Use the paintable
 g_object_unref (icon);

Функции

gtk_icon_theme_new ()

GtkIconTheme *
gtk_icon_theme_new (void);

Создаёт новый объект темы иконок. Объекты темы иконок используются для поиска иконки по имени в конкретной теме иконок. Обычно вы захотите использовать gtk_icon_theme_get_for_display(), а не создавать новый объект темы иконок для временного использования.

Возвращает

новый созданный объект GtkIconTheme.

gtk_icon_theme_get_for_display ()

GtkIconTheme *
gtk_icon_theme_get_for_display (GdkDisplay *display);

Получает объект темы иконок, связанный с display; если эта функция не была ранее вызвана для данного дисплея, будет создан и связан с дисплеем новый объект темы иконок. Объекты темы иконок достаточно дорого создавать, поэтому использование этой функции обычно предпочтительнее, чем вызов gtk_icon_theme_new() и самостоятельное задание дисплея; таким образом, один объект темы иконок будет совместно использоваться между пользователями.

Параметры

display

объект GdkDisplay

Возвращает

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

[transfer none]

gtk_icon_theme_get_display ()

GdkDisplay *
gtk_icon_theme_get_display (GtkIconTheme *self);

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

Параметры

self

объект GtkIconTheme

Возвращает

дисплей объекта icon_theme.

[nullable][transfer none]

gtk_icon_theme_set_search_path ()

void
gtk_icon_theme_set_search_path (GtkIconTheme *self,
                                const char * const *path);

Устанавливает путь поиска для объекта темы иконок. При поиске темы иконок GTK будет искать подкаталог одного или нескольких каталогов в path с тем же именем, что и тема иконок, содержащий файл index.theme. (Темы из нескольких элементов пути объединяются, чтобы разрешить расширение тем путём добавления иконок в домашний каталог пользователя.)

Кроме того, если иконка не найдена ни в текущей теме иконок, ни в теме иконок по умолчанию, и файл изображения с соответствующим именем найден непосредственно в одном из элементов path, то это изображение будет использовано для имени иконки. (Это устаревшая функция, и новые иконки должны помещаться в резервную тему иконок, которая называется hicolor, а не напрямую в пути к иконкам.)

Параметры

self

объект GtkIconTheme

path

массив путей к каталогам, которые будут перебираться для поиска тем иконок. Нуль-терминированный.

[array zero-terminated=1][element-type имя_файла][nullable]

gtk_icon_theme_get_search_path ()

char **
gtk_icon_theme_get_search_path (GtkIconTheme *self);

Получает текущий путь поиска. См. gtk_icon_theme_set_search_path().

Параметры

self

объект GtkIconTheme

Возвращает

список путей к каталогам темы иконок или NULL. Возвращаемое значение должно быть освобождено с помощью g_strfreev().

[transfer full][array zero-terminated=1][element-type имя_файла][nullable]

gtk_icon_theme_add_search_path ()

void
gtk_icon_theme_add_search_path (GtkIconTheme *self,
                                const char *path);

Добавляет каталог в путь поиска. См. gtk_icon_theme_set_search_path().

Параметры

self

объект GtkIconTheme

path

имя каталога, который нужно добавить в путь к иконкам.

[type имя_файла]

gtk_icon_theme_set_resource_path ()

void
gtk_icon_theme_set_resource_path (GtkIconTheme *self,
                                  const char * const *path);

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

Ресурсы рассматриваются как часть темы иконок hicolor и должны находиться в подкаталогах, определённых в теме иконок hicolor, таких как @path/16x16/actions/run.png или @path/scalable/actions/run.svg.

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

Параметры

self

объект GtkIconTheme

path

нуль-терминированный массив путей к ресурсам, которые будут проверяться при поиске иконок

gtk_icon_theme_get_resource_path ()

char **
gtk_icon_theme_get_resource_path (GtkIconTheme *self);

Получает текущий путь к ресурсам.

См. gtk_icon_theme_set_resource_path().

Параметры

self

объект GtkIconTheme

Возвращает

список путей к ресурсам или NULL. Возвращаемое значение должно быть освобождено с помощью g_strfreev().

[transfer full][array zero-terminated=1][element-type utf8][nullable]

gtk_icon_theme_add_resource_path ()

void
gtk_icon_theme_add_resource_path (GtkIconTheme *self,
                                  const char *path);

Добавляет путь к ресурсам, который будет проверяться при поиске иконок, аналогично путям поиска.

См. gtk_icon_theme_set_resource_path().

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

Параметры

self

объект GtkIconTheme

path

путь к ресурсу

gtk_icon_theme_set_theme_name ()

void
gtk_icon_theme_set_theme_name (GtkIconTheme *self,
                               const char *theme_name);

Устанавливает имя темы значков, используемой объектом GtkIconTheme, перезаписывая системную конфигурацию. Вызов этой функции для объектов темы значков, возвращаемых функцией gtk_icon_theme_get_for_display(), недопустим.

Параметры

self

объект GtkIconTheme

theme_name

имя темы значков для использования вместо настроенной темы, или NULL для сброса ранее установленной пользовательской темы.

[allow-none]

gtk_icon_theme_get_theme_name ()

char *
gtk_icon_theme_get_theme_name (GtkIconTheme *self);

Возвращает текущее имя темы значков.

Возвращаемое значение (передача полного владения): текущее имя темы значков.

Параметры

self

объект GtkIconTheme

gtk_icon_theme_has-icon ()

gboolean
gtk_icon_theme_has_icon (GtkIconTheme *self,
                         const char *icon_name);

Проверяет, содержит ли тема значков значок с заданным именем.

Параметры

self

объект GtkIconTheme

icon_name

имя значка

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

TRUE , если self содержит значок с именем icon_name .

gtk_icon_theme_lookup_icon ()

GtkIconPaintable *
gtk_icon_theme_lookup_icon (GtkIconTheme *self,
                            const char *icon_name,
                            const char *fallbacks[],
                            int size,
                            int scale,
                            GtkTextDirection direction,
                            GtkIconLookupFlags flags);

Ищет значок с заданным именем для желаемого размера и масштаба окна, возвращая объект GtkIconPaintable. Значок можно отобразить, используя его как GdkPaintable, или получить информацию о файле и размере.

Если значок с заданными icon_name недоступен, и заданы fallbacks, они будут перепробованы в указанном порядке.

Если соответствующий значок не найден, возвращается объект, отображающий значок "отсутствует". Если требуется иное поведение для отсутствующих значков, необходимо использовать функцию gtk_icon_theme_has_icon().

Обратите внимание, что, вероятно, вам потребуется отслеживать изменения темы значков и обновлять значок. Это обычно выполняется путём переопределения функции GtkWidgetClass.css-changed().

Параметры

self

объект GtkIconTheme

icon_name

имя искомого значка

fallbacks

.

[nullable][array zero-terminated=1]

size

желаемый размер значка.

scale

масштаб окна, для которого будет отображаться значок.

direction

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

flags

флаги, изменяющие поведение поиска значка

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

объект GtkIconPaintable, содержащий значок.

[transfer full]

gtk_icon_theme_lookup_by_gicon ()

GtkIconPaintable *
gtk_icon_theme_lookup_by_gicon (GtkIconTheme *self,
                                GIcon *icon,
                                int size,
                                int scale,
                                GtkTextDirection direction,
                                GtkIconLookupFlags flags);

Ищет значок для заданного размера и масштаба окна, возвращая объект GtkIconPaintable. Значок можно отобразить, используя его как GdkPaintable, или получить информацию о файле и размере.

Параметры

self

объект GtkIconTheme

icon

объект GIcon для поиска

size

желаемый размер значка

scale

желаемый масштаб

direction

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

flags

флаги, изменяющие поведение поиска значка

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

объект GtkIconPaintable, содержащий информацию о значке. Освободите его с помощью g_object_unref().

[transfer full]

gtk_icon_theme_get_icon_names ()

char **
gtk_icon_theme_get_icon_names (GtkIconTheme *self);

Выводит список имён значков в текущей теме значков.

Параметры

self

объект GtkIconTheme

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

массив строк, содержащий имена всех значков в теме. Массив необходимо освободить, используя g_strfreev().

[element-type utf8][transfer full]

gtk_icon_theme_get-icon-sizes ()

int *
gtk_icon_theme_get_icon_sizes (GtkIconTheme *self,
                               const char *icon_name);

Возвращает массив целых чисел, описывающих размеры, в которых значок доступен без масштабирования. Значение -1 указывает, что значок доступен в масштабируемом формате. Массив завершается нулём.

Параметры

self

объект GtkIconTheme

icon_name

имя значка

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

Новый выделенный массив, описывающий размеры, в которых значок доступен. Массив необходимо освободить с помощью g_free(), когда он больше не нужен.

[array zero-terminated=1][transfer full]

gtk_icon_paintable_new_for_file ()

GtkIconPaintable *
gtk_icon_paintable_new_for_file (GFile *file,
                                 int size,
                                 int scale);

Создаёт GtkIconPaintable для файла с заданным размером и масштабом GtkIconPaintable. Иконку затем можно отрисовать, используя её как GdkPaintable.

Параметры

file

a GFile

size

желаемый размер иконки

scale

желаемый масштаб

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

a GtkIconPaintable, содержащий иконку. Освободить с g_object_unref().

[transfer full]

gtk_icon_paintable_get_file ()

GFile *
gtk_icon_paintable_get_file (GtkIconPaintable *self);

Получает GFile, который использовался для загрузки иконки, или NULL, если иконка не загружалась из файла.

Параметры

self

a GtkIconPaintable

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

the GFile для иконки, или NULL. Освободить с g_object_unref().

[nullable][transfer full]

gtk_icon_paintable_get_icon_name ()

const char *
gtk_icon_paintable_get_icon_name (GtkIconPaintable *self);

Получить имя иконки, используемой для этой иконки.

Когда иконка, найденная в теме иконок, недоступна, тема иконок может использовать резервные иконки — те, которые указаны для gtk_icon_theme_lookup_icon(), или всегда доступную "image-missing". Выбранная иконка возвращается этой функцией.

Если иконка создана без темы иконок, эта функция возвращает NULL.

Параметры

self

a GtkIconPaintable

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

имя иконки в теме иконок, или NULL если это не тематическая иконка.

[nullable][type filename]

gtk_icon_paintable_is_symbolic ()

gboolean
gtk_icon_paintable_is_symbolic (GtkIconPaintable *self);

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

Обратите внимание, что для правильной отрисовки символьной GtkIconPaintable (с перекраской) необходимо установить её имя иконки на GtkImage.

Параметры

self

a GtkIconPaintable

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

TRUE если иконка символическая, FALSE в противном случае

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

GtkIconPaintable

typedef struct _GtkIconPaintable GtkIconPaintable;

Содержит информацию, полученную при поиске иконки в теме иконок, и поддерживает её рисование как GdkPaintable.

GtkIconTheme

typedef struct _GtkIconTheme GtkIconTheme;

Выступает в качестве базы данных информации о теме иконок. Обычно тему иконок для определённого дисплея можно получить с помощью gtk_icon_theme_get_for_display(), и она будет содержать информацию о текущей теме иконок для этого дисплея, но вы также можете создать новый объект GtkIconTheme и явно установить имя темы иконок с помощью gtk_icon_theme_set_theme_name().

перечисление GtkIconLookupFlags

Используется для указания опций для gtk_icon_theme_lookup_icon()

Элементы

GTK_ICON_LOOKUP_FORCE_REGULAR

Попытаться всегда загрузить обычные иконки, даже при указании имён символических иконок

GTK_ICON_LOOKUP_FORCE_SYMBOLIC

Попытаться всегда загрузить символьные иконки, даже при указании имён обычных иконок

GTK_ICON_LOOKUP_PRELOAD

Начинает загрузку текстуры в фоновом режиме, чтобы она была готова, когда она понадобится позже.

GTK_ICON_THEME_ERROR

#define GTK_ICON_THEME_ERROR gtk_icon_theme_error_quark ()

The GQuark используется для ошибок GtkIconThemeError.

GTK_TYPE_ICON_THEME_ERROR

#define GTK_TYPE_ICON_THEME_ERROR (gtk_icon_theme_error_get_type ())

GTK_TYPE_ICON_LOOKUP_FLAGS

#define GTK_TYPE_ICON_LOOKUP_FLAGS (gtk_icon_lookup_flags_get_type ())

перечисление GtkIconThemeError

Коды ошибок для операций GtkIconTheme.

Элементы

GTK_ICON_THEME_NOT_FOUND

Указанная иконка не существует в теме

GTK_ICON_THEME_FAILED

Произошла неопределённая ошибка.

Подробные сведения о свойствах

Свойство “display”

  “display”                  GdkDisplay *

Дисплей, к которому прикреплён этот объект темы иконок.

Владелец: GtkIconTheme

Флаги: Чтение / Запись

Свойство “icon-names”

  “icon-names”               GStrv

Имена иконок, поддерживаемые темой иконок.

Владелец: GtkIconTheme

Флаги: Чтение

Свойство “resource-path”

  “resource-path”            GStrv

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

Ресурсы рассматриваются как часть темы иконок hicolor и должны быть расположены в подкаталогах, определённых в теме иконок hicolor, таких как @path/16x16/actions/run.png. Иконки, которые размещаются непосредственно в пути к ресурсам вместо подкаталога, также рассматриваются как окончательное резервное копирование.

Владелец: GtkIconTheme

Флаги: Чтение / Запись

Свойство “search-path”

  “search-path”              GStrv

Путь поиска для этой темы иконок.

При поиске иконок GTK будет искать подкаталог одного или нескольких каталогов в пути поиска с тем же именем, что и тема иконок, содержащий файл index.theme. (Темы из нескольких элементов пути объединяются, чтобы разрешить расширение тем путём добавления иконок в домашнем каталоге пользователя.)

Владелец: GtkIconTheme

Флаги: Чтение / Запись

Свойство “theme-name”

  “theme-name”               char *

Имя используемой темы иконок.

Если не установлено иное значение, это будет значение свойства “gtk-icon-theme-name” объекта GtkSettings, связанного с дисплеем объекта icontheme.

Владелец: GtkIconTheme

Флаги: Чтение / Запись

Значение по умолчанию: NULL

Подробные сведения о сигналах

Сигнал “changed”

void
user_function (GtkIconTheme *self,
               gpointer      user_data)

Выполняется, когда текущая тема иконок переключается или GTK обнаруживает изменения в содержимом текущей темы иконок.

Параметры

self

тема иконок

user_data

пользовательские данные, установленные при подключении обработчика сигналов.

Флаги: Run Last

© 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/GtkIconTheme.html

Spec-Zone.ru

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