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 | имя темы значков для использования вместо настроенной темы, или | [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 | флаги, изменяющие поведение поиска значка |
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 |
Возвращаемое значение
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 |
Возвращаемое значение
имя иконки в теме иконок, или NULL если это не тематическая иконка.
[nullable][type filename]
gtk_icon_paintable_is_symbolic ()
gboolean
gtk_icon_paintable_is_symbolic (GtkIconPaintable *self); Проверяет, является ли иконка символьной или нет. В настоящее время для определения этого используется только имя файла, а не содержимое файла. Это поведение может измениться в будущем.
Обратите внимание, что для правильной отрисовки символьной GtkIconPaintable (с перекраской) необходимо установить её имя иконки на GtkImage.
Параметры
self |
Возвращаемое значение
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