GtkIconTheme
GtkIconTheme — Поиск иконок по имени
Функции
Типы и значения
| GtkIconInfo | |
| struct | GtkIconTheme |
| struct | GtkIconThemeClass |
| перечисление | GtkIconLookupFlags |
| #define | GTK_ICON_THEME_ERROR |
| перечисление | GtkIconThemeError |
Иерархия объектов
GObject ╰── GtkIconTheme
Подключаемые файлы
#include <gtk/gtk.h>
Описание
GtkIconTheme предоставляет средство для поиска иконок по имени и размеру. Основная причина использования имени вместо простого предоставления файла с именем — это возможность использования разных иконок в зависимости от того, какая «тема иконок» выбрана пользователем. Работа тем иконок в Linux и Unix следует спецификации Icon Theme Specification. Существует резервная тема иконок, названная hicolor, куда приложения должны устанавливать свои иконки, но могут быть установлены дополнительные темы иконок по выбору поставщиков операционных систем и пользователей.
Имена иконок аналогичны устаревшим элементам Stock, и различие между ними может быть несколько запутанным. Вот несколько моментов, которые следует учитывать:
Изображения Stock обычно используются в сочетании с элементами Stock, такими как
GTK_STOCK_OKилиGTK_STOCK_OPEN. Имена иконок проще настроить и поэтому более полезны для новых иконок, которые приложение хочет добавить, таких как иконки приложений или окон.Изображения Stock могут загружаться только в размерах, определённых перечислением GtkIconSize, или пользовательскими размерами, определенными с помощью
gtk_icon_size_register(), в то время как имена иконок более гибкие и могут быть указаны любые размеры пикселей.Поскольку изображения Stock тесно связаны с элементами Stock, а значит и с действиями в пользовательском интерфейсе, изображения Stock могут иметь несколько вариантов для разных состояний виджетов или направлений письма.
Хорошее правило — если для того, что вы хотите использовать, есть изображение Stock, используйте его, в противном случае используйте имя иконки. Оказывается, что внутренне изображения Stock обычно определяются одним или несколькими именами иконок. (Пример более чем одного случая — это иконки, зависящие от направления письма; GTK_STOCK_GO_FORWARD использует две тематические иконки «gtk-stock-go-forward-ltr» и «gtk-stock-go-forward-rtl».)
Во многих случаях тематические имена используются косвенно через GtkImage или элементы Stock, а не напрямую, но поиск иконок напрямую также прост. Объект GtkIconTheme действует как база данных всех иконок в текущей теме. Вы можете создавать новые объекты GtkIconTheme, но гораздо эффективнее использовать стандартную тему иконок для GdkScreen, чтобы информация об иконках делилась с другими пользователями, которые ищут иконки.
GError*error = NULL; GtkIconTheme*icon_theme; GdkPixbuf*pixbuf; icon_theme =gtk_icon_theme_get_default(); pixbuf =gtk_icon_theme_load_icon(icon_theme, "my-icon-name",// icon name 48,// icon size 0,// flags &error); if(!pixbuf) { g_warning("Couldn’t load icon: %s", error->message); g_error_free(error); } else { // Use the pixbuf g_object_unref(pixbuf); }
Функции
gtk_icon_theme_new ()
GtkIconTheme *
gtk_icon_theme_new (void); Создаёт новый объект темы иконок. Объекты темы иконок используются для поиска иконки по имени в конкретной теме иконок. Обычно вы захотите использовать gtk_icon_theme_get_default() или gtk_icon_theme_get_for_screen(), а не создавать новый объект темы иконок для временного использования.
Возвращаемое значение
созданный GtkIconTheme объект.
С версии: 2.4
gtk_icon_theme_get_default ()
GtkIconTheme *
gtk_icon_theme_get_default (void); Получает тему иконок для основного экрана. См. gtk_icon_theme_get_for_screen().
Возвращаемое значение
Уникальный GtkIconTheme, связанный с основным экраном. Эта тема иконок связана с экраном и может использоваться, пока экран открыт. Не нужно ссылаться или освобождать её.
[transfer none]
С версии: 2.4
gtk_icon_theme_get_for_screen ()
GtkIconTheme *
gtk_icon_theme_get_for_screen (GdkScreen *screen); Получает объект темы иконок, связанный с screen; если эта функция ранее не вызывалась для данного экрана, будет создан новый объект темы иконок, связанный с экраном. Объекты тем иконок достаточно дорого создавать, поэтому использование этой функции обычно предпочтительнее, чем вызов gtk_icon_theme_new() и самостоятельной установки экрана; используя эту функцию, один объект темы иконок будет общим для пользователей.
Параметры
screen |
Возвращаемое значение
Уникальный GtkIconTheme, связанный с данным экраном. Эта тема иконок связана с экраном и может использоваться, пока экран открыт. Не нужно ссылаться или освобождать её.
[transfer none]
С версии: 2.4
gtk_icon_theme_set_screen ()
void gtk_icon_theme_set_screen (GtkIconTheme *icon_theme,GdkScreen *screen);
Устанавливает экран для темы иконок; экран используется для отслеживания текущей темы иконок пользователя, которая может отличаться для разных экранов.
Параметры
icon_theme | ||
screen |
С версии: 2.4
gtk_icon_theme_set_search_path ()
void gtk_icon_theme_set_search_path (GtkIconTheme *icon_theme,const gchar *path[],gint n_elements);
Устанавливает путь поиска для объекта темы иконок. При поиске темы иконок GTK+ будет искать подкаталог одного или нескольких каталогов в path с тем же именем, что и тема иконок, содержащий файл index.theme. (Тематика из нескольких элементов пути комбинируется, чтобы тема могла быть расширена путем добавления иконок в домашний каталог пользователя.)
Если иконка не найдена ни в текущей, ни в стандартной теме иконок, и файл изображения с соответствующим именем найден непосредственно в одном из элементов path, то это изображение будет использоваться для имени иконки. (Это устаревшая функция, и новые иконки следует помещать в резервную тему иконок, которая называется hicolor, а не непосредственно в путь к иконкам.)
Параметры
icon_theme | ||
path | массив каталогов, которые будут просматриваться для поиска тем иконок. | [array length=n_elements][element-type filename] |
n_elements | число элементов в |
С версии: 2.4
gtk_icon_theme_get_search_path ()
void gtk_icon_theme_get_search_path (GtkIconTheme *icon_theme,gchar **path[],gint *n_elements);
Получает текущий путь поиска. См. gtk_icon_theme_set_search_path().
Параметры
icon_theme | ||
path | место для хранения списка каталогов пути поиска темы иконок или | [allow-none][array length=n_elements][element-type filename][out] |
n_elements | место для хранения количества элементов в |
С версии: 2.4
gtk_icon_theme_append_search_path ()
void gtk_icon_theme_append_search_path (GtkIconTheme *icon_theme,const gchar *path);
Добавляет каталог в путь поиска. См. gtk_icon_theme_set_search_path().
Параметры
icon_theme | ||
path | имя каталога для добавления в путь к иконкам. | [type filename] |
С версии: 2.4
gtk_icon_theme_prepend_search_path ()
void gtk_icon_theme_prepend_search_path (GtkIconTheme *icon_theme,const gchar *path);
Вставляет каталог в начало пути поиска. См. gtk_icon_theme_set_search_path().
Параметры
icon_theme | ||
path | имя каталога для вставки в начало пути к иконкам. | [type filename] |
С версии: 2.4
gtk_icon_theme_add_resource_path ()
void gtk_icon_theme_add_resource_path (GtkIconTheme *icon_theme,const gchar *path);
Добавляет путь к ресурсам, который будет проверяться при поиске иконок, подобно путям поиска.
Эта функция должна использоваться для доступа к иконкам, специфичным для приложения, как части темы иконок.
Ресурсы рассматриваются как часть темы иконок hicolor и должны располагаться в подкаталогах, определённых в теме иконок hicolor, таких как @path/16x16/actions/run.png. Иконки, размещённые непосредственно в пути к ресурсам, вместо подкаталога, также рассматриваются как конечный резервный вариант.
Параметры
icon_theme | ||
path | путь к ресурсу |
С версии: 3.14
gtk_icon_theme_set_custom_theme ()
void gtk_icon_theme_set_custom_theme (GtkIconTheme *icon_theme,const gchar *theme_name);
Устанавливает имя темы значков, используемой объектом GtkIconTheme, перезаписывая системную конфигурацию. Данную функцию нельзя вызвать для объектов темы значков, возвращаемых из gtk_icon_theme_get_default() и gtk_icon_theme_get_for_screen().
Параметры
icon_theme | объект GtkIconTheme | |
theme_name | имя темы значков для использования вместо настроенной темы, или | [allow-none] |
С версии: 2.4
gtk_icon_theme_has_icon ()
gboolean gtk_icon_theme_has_icon (GtkIconTheme *icon_theme,const gchar *icon_name);
Проверяет, содержит ли тема значков значок с указанным именем.
Параметры
icon_theme | объект GtkIconTheme | |
icon_name | имя значка |
Возвращаемое значение
TRUE, если icon_theme содержит значок для icon_name.
С версии: 2.4
gtk_icon_theme_lookup_icon ()
GtkIconInfo * gtk_icon_theme_lookup_icon (GtkIconTheme *icon_theme,const gchar *icon_name,gint size,GtkIconLookupFlags flags);
Ищет значок по имени и возвращает объект GtkIconInfo содержащий информацию, такую как имя файла значка. Значок затем может быть отрисован в pixbuf с помощью gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() объединяет эти два шага, если вам нужен только pixbuf.)
При отрисовке на дисплеях с высокой плотностью пикселей не следует использовать size, умноженное на коэффициент масштабирования, возвращаемый функциями, такими как gdk_window_get_scale_factor(). Вместо этого следует использовать gtk_icon_theme_lookup_icon_for_scale(), так как загруженные ресурсы для заданного коэффициента масштабирования могут отличаться.
Параметры
icon_theme | объект GtkIconTheme | |
icon_name | имя искомого значка | |
size | размер значка | |
flags | флаги, изменяющие поведение поиска значка |
Возвращаемое значение
объект GtkIconInfo с информацией о значке или NULL, если значок не найден.
[nullable][transfer full]
С версии: 2.4
gtk_icon_theme_lookup_icon_for_scale ()
GtkIconInfo * gtk_icon_theme_lookup_icon_for_scale (GtkIconTheme *icon_theme,const gchar *icon_name,gint size,gint scale,GtkIconLookupFlags flags);
Ищет значок по имени для определенного масштаба окна и возвращает объект GtkIconInfo содержащий информацию, такую как имя файла значка. Значок затем может быть отрисован в pixbuf с помощью gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() объединяет эти два шага, если вам нужен только pixbuf.)
Параметры
icon_theme | объект GtkIconTheme | |
icon_name | имя искомого значка | |
size | размер значка | |
scale | желаемый масштаб | |
flags | флаги, изменяющие поведение поиска значка |
Возвращаемое значение
объект GtkIconInfo с информацией о значке или NULL, если значок не найден.
[nullable][transfer full]
С версии: 3.10
gtk_icon_theme_choose_icon ()
GtkIconInfo * gtk_icon_theme_choose_icon (GtkIconTheme *icon_theme,const gchar *icon_names[],gint size,GtkIconLookupFlags flags);
Ищет значок по имени и возвращает объект GtkIconInfo содержащий информацию, такую как имя файла значка. Значок затем может быть отрисован в pixbuf с помощью gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() объединяет эти два шага, если вам нужен только pixbuf.)
Если icon_names содержит более одного имени, эта функция пытается их все в заданном порядке, прежде чем перейти к наследованию тем значков.
Параметры
icon_theme | объект GtkIconTheme | |
icon_names | | [array zero-terminated=1] |
size | размер значка | |
flags | флаги, изменяющие поведение поиска значка |
Возвращаемое значение
объект GtkIconInfo с информацией о значке или NULL, если значок не найден.
[nullable][transfer full]
С версии: 2.12
gtk_icon_theme_choose_icon_for_scale ()
GtkIconInfo * gtk_icon_theme_choose_icon_for_scale (GtkIconTheme *icon_theme,const gchar *icon_names[],gint size,gint scale,GtkIconLookupFlags flags);
Ищет значок с заданным именем для определённого масштаба окна и возвращает GtkIconInfo, содержащий информацию, например, имя файла значка. Затем значок можно отрисовать в pixbuf с помощью gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() объединяет эти два шага, если вам нужен только pixbuf.)
Если icon_names содержит более одного имени, эта функция пытается найти значок по всем именам в заданном порядке, прежде чем перейти к унаследованным темам значков.
Параметры
icon_theme | ||
icon_names | | [array zero-terminated=1] |
size | размер значка | |
scale | желаемый масштаб | |
flags | флаги, изменяющие поведение поиска значка |
Возвращает
объект GtkIconInfo, содержащий информацию о значке, или NULL, если значок не был найден.
[nullable][transfer full]
С: 3.10
gtk_icon_theme_lookup_by_gicon ()
GtkIconInfo * gtk_icon_theme_lookup_by_gicon (GtkIconTheme *icon_theme,GIcon *icon,gint size,GtkIconLookupFlags flags);
Ищет значок и возвращает GtkIconInfo, содержащий информацию, например, имя файла значка. Затем значок можно отрисовать в pixbuf с помощью gtk_icon_info_load_icon().
При отрисовке на дисплеях с высокой плотностью пикселей не следует использовать size, умноженную на коэффициент масштабирования, возвращаемый функциями, такими как gdk_window_get_scale_factor(). Вместо этого следует использовать gtk_icon_theme_lookup_by_gicon_for_scale(), так как ресурсы, загруженные для данного коэффициента масштабирования, могут отличаться.
Параметры
icon_theme | ||
icon | искомый GIcon | |
size | размер значка | |
flags | флаги, изменяющие поведение поиска значка |
Возвращает
GtkIconInfo, содержащий информацию о значке, или NULL, если значок не был найден. Освободить с помощью g_object_unref().
[nullable][transfer full]
С: 2.14
gtk_icon_theme_lookup_by_gicon_for_scale ()
GtkIconInfo * gtk_icon_theme_lookup_by_gicon_for_scale (GtkIconTheme *icon_theme,GIcon *icon,gint size,gint scale,GtkIconLookupFlags flags);
Ищет значок и возвращает GtkIconInfo, содержащий информацию, например, имя файла значка. Затем значок можно отрисовать в pixbuf с помощью gtk_icon_info_load_icon().
Параметры
icon_theme | ||
icon | искомый GIcon | |
size | размер значка | |
scale | желаемый масштаб | |
flags | флаги, изменяющие поведение поиска значка |
Возвращает
GtkIconInfo, содержащий информацию о значке, или NULL, если значок не был найден. Освободить с помощью g_object_unref().
[nullable][transfer full]
С: 3.10
gtk_icon_theme_load_icon ()
GdkPixbuf * gtk_icon_theme_load_icon (GtkIconTheme *icon_theme,const gchar *icon_name,gint size,GtkIconLookupFlags flags,GError **error);
Ищет значок в теме значков, масштабирует его до заданного размера и отрисовывает в pixbuf. Это функция-удобство; если требуется более подробная информация о значке, используйте gtk_icon_theme_lookup_icon(), за которым следует gtk_icon_info_load_icon().
Обратите внимание, что, вероятно, вам нужно будет отслеживать изменения темы значков и обновлять значок. Обычно это делается путём подключения к сигналу GtkWidget::style-set. Если по какой-то причине вы не хотите обновлять значок при изменении темы значков, рассмотрите возможность использования gdk_pixbuf_copy() для создания частной копии возвращаемого pixbuf. В противном случае GTK+ может потребоваться сохранить загруженную старую тему значков, что будет тратой памяти.
Параметры
icon_theme | ||
icon_name | имя значка для поиска | |
size | желаемый размер значка. Результирующий значок может не быть точно такого размера; см. | |
flags | флаги, изменяющие поведение поиска значка | |
error | Место для хранения информации об ошибке при сбое, или | [allow-none] |
Возвращает
отрисованный значок; это может быть новый значок или новая ссылка на внутренний значок, поэтому вы не должны изменять значок. Используйте g_object_unref() для освобождения вашей ссылки на значок. NULL, если значок не был найден.
[nullable][transfer full]
С: 2.4
gtk_icon_theme_load_icon_for_scale ()
GdkPixbuf * gtk_icon_theme_load_icon_for_scale (GtkIconTheme *icon_theme,const gchar *icon_name,gint size,gint scale,GtkIconLookupFlags flags,GError **error);
Ищет значок в теме значков для определённого масштаба окна, масштабирует его до заданного размера и отрисовывает в pixbuf. Это вспомогательная функция; если необходимы более подробные сведения о значке, используйте gtk_icon_theme_lookup_icon() и затем gtk_icon_info_load_icon().
Обратите внимание, что вам, вероятно, нужно будет отслеживать изменения темы значков и обновлять значок. Это обычно делается путём подключения к сигналу GtkWidget::style-set. Если по какой-то причине вы не хотите обновлять значок при изменении темы значков, вы должны рассмотреть возможность использования gdk_pixbuf_copy() для создания частной копии pixbuf, возвращаемой этой функцией. В противном случае GTK+ может потребоваться сохранить загруженную старую тему значков, что будет тратой памяти.
Параметры
icon_theme | ||
icon_name | имя значка для поиска | |
size | желаемый размер значка. Результирующий значок может не быть точно такого размера; см. | |
scale | желаемый масштаб | |
flags | флаги, изменяющие поведение поиска значка | |
error | Место для хранения информации об ошибке при неудачном поиске или | [allow-none] |
Возвращает
отрисованный значок; это может быть новый значок или новая ссылка на внутренний значок, поэтому изменять его нельзя. Используйте g_object_unref() для освобождения ссылки на значок. NULL, если значок не найден.
[nullable][transfer full]
С: 3.10
gtk_icon_theme_load_surface ()
cairo_surface_t * gtk_icon_theme_load_surface (GtkIconTheme *icon_theme,const gchar *icon_name,gint size,gint scale,GdkWindow *for_window,GtkIconLookupFlags flags,GError **error);
Ищет значок в теме значков для определённого масштаба окна, масштабирует его до заданного размера и отрисовывает в поверхность cairo. Это вспомогательная функция; если необходимы более подробные сведения о значке, используйте gtk_icon_theme_lookup_icon() и затем gtk_icon_info_load_surface().
Обратите внимание, что вам, вероятно, нужно будет отслеживать изменения темы значков и обновлять значок. Это обычно делается путём подключения к сигналу GtkWidget::style-set.
Параметры
icon_theme | ||
icon_name | имя значка для поиска | |
size | желаемый размер значка. Результирующий значок может не быть точно такого размера; см. | |
scale | желаемый масштаб | |
for_window | [allow-none] | |
flags | флаги, изменяющие поведение поиска значка | |
error | Место для хранения информации об ошибке при неудачном поиске или | [allow-none] |
Возвращает
отрисованный значок; это может быть новый значок или новая ссылка на внутренний значок, поэтому изменять его нельзя. Используйте cairo_surface_destroy() для освобождения ссылки на значок. NULL, если значок не найден.
[nullable][transfer full]
С: 3.10
gtk_icon_theme_list_contexts ()
GList *
gtk_icon_theme_list_contexts (GtkIconTheme *icon_theme); Получает список доступных контекстов в текущей иерархии тем значков. Подробнее о контекстах см. gtk_icon_theme_list_icons().
Параметры
icon_theme |
Возвращает
список GList, содержащий имена всех контекстов в теме. Сначала освободите каждый элемент в списке с помощью g_free(), затем освободите сам список с помощью g_list_free().
[element-type utf8][transfer full]
С: 2.12
gtk_icon_theme_list_icons ()
GList * gtk_icon_theme_list_icons (GtkIconTheme *icon_theme,const gchar *context);
Отображает значки в текущей теме значков. Только подмножество значков может быть отображено путём предоставления строкового контекста. Набор значений для строкового контекста зависит от системы, но обычно включает такие значения, как «Applications» и «MimeTypes». Контексты объяснены в Спецификации темы значков. Стандартные контексты перечислены в Спецификации именования значков. Также см. gtk_icon_theme_list_contexts().
Параметры
icon_theme | ||
context | строка, определяющая определённый тип значка, или | [allow-none] |
Возвращает
список GList, содержащий имена всех значков в теме. Сначала освободите каждый элемент в списке с помощью g_free(), затем освободите сам список с помощью g_list_free().
[element-type utf8][transfer full]
С: 2.4
gtk_icon_theme_get_icon_sizes ()
gint * gtk_icon_theme_get_icon_sizes (GtkIconTheme *icon_theme,const gchar *icon_name);
Возвращает массив целых чисел, описывающих размеры, в которых значок доступен без масштабирования. Размер -1 означает, что значок доступен в масштабируемом формате. Массив имеет нулевую терминированность.
Параметры
icon_theme | ||
icon_name | имя значка |
Возвращает
Новый выделенный массив, описывающий размеры, в которых значок доступен. Массив должен быть освобождён с помощью g_free(), когда он больше не нужен.
[array zero-terminated=1][transfer full]
С: 2.6
gtk_icon_theme_get_example_icon_name ()
char *
gtk_icon_theme_get_example_icon_name (GtkIconTheme *icon_theme); Возвращает имя значка, представляющего текущую тему (например, для отображения списка тем пользователю).
Параметры
icon_theme |
С: 2.4
gtk_icon_theme_rescan_if_needed ()
gboolean
gtk_icon_theme_rescan_if_needed (GtkIconTheme *icon_theme); Проверяет, изменилась ли тема значков; если изменилась, все текущие кешированные данные будут удалены и пересчитаны при следующем доступе к icon_theme.
Параметры
icon_theme |
Возвращает
TRUE, если тема значков изменилась и должна быть пересчитана.
С: 2.4
gtk_icon_theme_add_builtin_icon ()
void gtk_icon_theme_add_builtin_icon (const gchar *icon_name,gint size,GdkPixbuf *pixbuf);
gtk_icon_theme_add_builtin_icon устарело начиная с версии 3.14 и не должно использоваться в новом коде.
Используйте gtk_icon_theme_add_resource_path() для добавления значков, специфичных для приложения, в тему значков.
Регистрирует встроенный значок для поиска в теме значков. Идея встроенных значков заключается в том, чтобы приложение или библиотека, использующие значки тем, работали без необходимости наличия файлов в файловой системе. Например, стандартные изображения для всех значков GTK+ зарегистрированы как встроенные значки.
В общем случае, если вы используете gtk_icon_theme_add_builtin_icon(), вы должны также установить значок в тему значков, чтобы он был доступен.
Эта функция обычно используется со загруженными pixbufs через gdk_pixbuf_new_from_inline().
Параметры
icon_name | имя значка для регистрации | |
size | размер в пикселях, в котором регистрируется значок (различные изображения могут быть зарегистрированы для одного и того же имени значка в разных размерах). | |
pixbuf | GdkPixbuf содержащий изображение для использования с |
С: 2.4
gtk_icon_info_copy ()
GtkIconInfo *
gtk_icon_info_copy (GtkIconInfo *icon_info); gtk_icon_info_copy устарело начиная с версии 3.8 и не должно использоваться в новом коде.
Используйте g_object_ref()
Создаёт копию GtkIconInfo.
[skip]
Параметры
icon_info |
Возвращает
новый GtkIconInfo.
[transfer full]
С: 2.4
gtk_icon_info_free ()
void
gtk_icon_info_free (GtkIconInfo *icon_info); gtk_icon_info_free устарело начиная с версии 3.8 и не должно использоваться в новом коде.
Используйте g_object_unref()
Освобождает GtkIconInfo и связанную информацию.
[skip]
Параметры
icon_info |
С: 2.4
gtk_icon_info_new_for_pixbuf ()
GtkIconInfo * gtk_icon_info_new_for_pixbuf (GtkIconTheme *icon_theme,GdkPixbuf *pixbuf);
Создаёт GtkIconInfo для GdkPixbuf.
Параметры
icon_theme | ||
pixbuf | pixbuf, который необходимо обернуть в GtkIconInfo |
С: 2.14
gtk_icon_info_get_base_size ()
gint
gtk_icon_info_get_base_size (GtkIconInfo *icon_info); Возвращает базовый размер значка. Базовый размер — это размер значка, указанный создателем темы значков. Он может отличаться от фактического размера изображения; примером этого являются небольшие значки эмблем, которые могут быть прикреплены к большему значку. Таким значкам будет задан тот же базовый размер, что и большему значку, к которому они прикреплены.
Обратите внимание, что для масштабируемых значков базовый размер не включает базовое масштабирование.
Параметры
icon_info |
Возвращает
базовый размер или 0, если базовый размер значка не известен.
С: 2.4
gtk_icon_info_get_base_scale ()
gint
gtk_icon_info_get_base_scale (GtkIconInfo *icon_info); Возвращает базовое масштабирование значка. Базовое масштабирование — это масштабирование значка, указанное создателем темы значков. Например, значок, нарисованный для экрана высокой чёткости с масштабированием окна 2 при базовом размере 32, будет иметь высоту 64 пикселя и базовое масштабирование 2.
Параметры
icon_info |
Возвращает
базовое масштабирование
С: 3.10
gtk_icon_info_get_filename ()
const gchar *
gtk_icon_info_get_filename (GtkIconInfo *icon_info); Получает имя файла для значка. Если флаг GTK_ICON_LOOKUP_USE_BUILTIN был передан в gtk_icon_theme_lookup_icon(), возможно, имя файла отсутствует, если возвращается встроенный значок; в этом случае следует использовать gtk_icon_info_get_builtin_pixbuf().
Параметры
icon_info |
Возвращает
имя файла для значка или NULL, если вместо этого следует использовать gtk_icon_info_get_builtin_pixbuf(). Значение возврата принадлежит GTK+ и не должно быть изменено или освобождено.
[nullable][type filename]
С: 2.4
gtk_icon_info_get_builtin_pixbuf ()
GdkPixbuf *
gtk_icon_info_get_builtin_pixbuf (GtkIconInfo *icon_info); gtk_icon_info_get_builtin_pixbuf устарел начиная с версии 3.14 и не должен использоваться в новом коде.
Эта функция устарела, используйте gtk_icon_theme_add_resource_path() вместо встроенных значков.
Получает встроенное изображение для этого значка, если таковое имеется. Чтобы позволить GTK+ использовать встроенные изображения значков, необходимо передать GTK_ICON_LOOKUP_USE_BUILTIN в gtk_icon_theme_lookup_icon().
Параметры
icon_info |
Возвращает
встроенное изображение pixbuf или NULL. Дополнительная ссылка на возвращенное pixbuf не добавляется, поэтому, если вы хотите сохранить его, используйте g_object_ref(). Возвращенное изображение не должно быть изменено.
[transfer none]
С: 2.4
gtk_icon_info_load_icon ()
GdkPixbuf * gtk_icon_info_load_icon (GtkIconInfo *icon_info,GError **error);
Отображает значок, предварительно найденный в теме значков с помощью gtk_icon_theme_lookup_icon(); размер будет основан на размере, переданном в gtk_icon_theme_lookup_icon(). Обратите внимание, что возвращаемое pixbuf может не быть точно таким размером; тема значков может содержать значки, которые незначительно отличаются от своих номинальных размеров, и кроме того GTK+ будет избегать масштабирования значков, которые он считает достаточно близкими к запрошенному размеру или для которых исходное изображение должно быть слишком сильно масштабировано. (Это сохраняет четкость). Это поведение можно изменить, передав флаг GTK_ICON_LOOKUP_FORCE_SIZE при получении GtkIconInfo. Если этот флаг указан, pixbuf, возвращаемый этой функцией, будет масштабирован до точного размера.
Параметры
icon_info | ||
error | место для хранения информации об ошибке при сбое или | [allow-none] |
Возвращает
отображенный значок; это может быть новый значок или новая ссылка на внутренний значок, поэтому вы не должны изменять значок. Используйте g_object_unref() для освобождения ссылки на значок.
[transfer full]
С: 2.4
gtk_icon_info_load_surface ()
cairo_surface_t * gtk_icon_info_load_surface (GtkIconInfo *icon_info,GdkWindow *for_window,GError **error);
Отображает значок, предварительно найденный в теме значков с помощью gtk_icon_theme_lookup_icon(); размер будет основан на размере, переданном в gtk_icon_theme_lookup_icon(). Обратите внимание, что полученная поверхность может не быть точно такого размера; тема значков может содержать значки, которые незначительно отличаются от их номинальных размеров, и кроме того GTK+ будет избегать масштабирования значков, которые он считает достаточно близкими к запрошенному размеру или для которых исходное изображение должно быть слишком сильно масштабировано. (Это сохраняет четкость). Это поведение можно изменить, передав флаг GTK_ICON_LOOKUP_FORCE_SIZE при получении GtkIconInfo. Если этот флаг указан, поверхность, возвращаемая этой функцией, будет масштабирована до точного размера.
Параметры
icon_info | ||
for_window | [allow-none] | |
error | место для информации об ошибке при сбое, или | [allow-none] |
Возвращает
отображенный значок; это может быть новый значок или новая ссылка на внутренний значок, поэтому вы не должны изменять значок. Используйте cairo_surface_destroy() для освобождения ссылки на значок.
[transfer full]
С: 3.10
gtk_icon_info_load_icon_async ()
void gtk_icon_info_load_icon_async (GtkIconInfo *icon_info,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
Асинхронно загрузить, отрисовать и масштабировать значок, предварительно найденный в теме значков с помощью gtk_icon_theme_lookup_icon().
Для получения более подробной информации см. gtk_icon_info_load_icon(), которая является синхронной версией этого вызова.
Параметры
icon_info | ||
cancellable | опциональный объект GCancellable, | [allow-none] |
callback | функция GAsyncReadyCallback, вызываемая при удовлетворении запроса. | [scope async] |
user_data | данные, передаваемые функции обратного вызова. | [closure] |
С: 3.8
gtk_icon_info_load_icon_finish ()
GdkPixbuf * gtk_icon_info_load_icon_finish (GtkIconInfo *icon_info,GAsyncResult *res,GError **error);
Завершает асинхронную загрузку значка, см. gtk_icon_info_load_icon_async().
Параметры
icon_info | ||
res | ||
error | место для хранения информации об ошибке при ошибке или | [allow-none] |
Возвращаемое значение
отрисованный значок; это может быть вновь созданный значок или новая ссылка на внутренний значок, поэтому вы не должны изменять значок. Используйте g_object_unref() для освобождения ссылки на значок.
[transfer full]
С: 3.8
gtk_icon_info_load_symbolic ()
GdkPixbuf * gtk_icon_info_load_symbolic (GtkIconInfo *icon_info,const GdkRGBA *fg,const GdkRGBA *success_color,const GdkRGBA *warning_color,const GdkRGBA *error_color,gboolean *was_symbolic,GError **error);
Загружает значок, изменяя его в соответствии с системными цветами для переднего плана, цветов успеха, предупреждения и ошибки, предоставленных. Если значок не является символическим, функция вернёт результат из gtk_icon_info_load_icon().
Это позволяет загружать символические значки, которые будут соответствовать теме системы.
Если вы не реализуете виджет, вам следует использовать g_themed_icon_new_with_default_fallbacks() для загрузки значка.
В качестве реализационных деталей загруженный значок должен быть типа SVG, содержать термин «symbolic» в качестве последнего компонента имени значка и использовать CSS-стили «fg», «success», «warning» и «error» в самом файле SVG.
См. Спецификацию символических значков для получения дополнительной информации о символических значках.
Параметры
icon_info | ||
fg | a GdkRGBA, представляющий цвет переднего плана значка | |
success_color | a GdkRGBA, представляющий цвет предупреждения значка или | [allow-none] |
warning_color | a GdkRGBA, представляющий цвет предупреждения значка или | [allow-none] |
error_color | a GdkRGBA, представляющий цвет ошибки значка или | [allow-none] |
was_symbolic | a gboolean, возвращает, был ли загруженный значок символическим и был ли цвет | [out][allow-none] |
error | место для хранения информации об ошибке при ошибке или | [allow-none] |
С: 3.0
gtk_icon_info_load_symbolic_async ()
void gtk_icon_info_load_symbolic_async (GtkIconInfo *icon_info,const GdkRGBA *fg,const GdkRGBA *success_color,const GdkRGBA *warning_color,const GdkRGBA *error_color,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
Асинхронная загрузка, отрисовка и масштабирование символьного значка, предварительно найденного в теме значков с помощью gtk_icon_theme_lookup_icon().
Подробнее см. gtk_icon_info_load_symbolic(), которая является синхронной версией этого вызова.
Параметры
icon_info | объект GtkIconInfo из | |
fg | GdkRGBA, представляющий цвет переднего плана значка | |
success_color | GdkRGBA, представляющий цвет предупреждения значка или | [allow-none] |
warning_color | GdkRGBA, представляющий цвет предупреждения значка или | [allow-none] |
error_color | GdkRGBA, представляющий цвет ошибки значка или | [allow-none] |
cancellable | опциональный объект GCancellable, | [allow-none] |
callback | GAsyncReadyCallback для вызова при удовлетворении запроса. | [scope async] |
user_data | данные, передаваемые в функцию обратного вызова. | [closure] |
С: 3.8
gtk_icon_info_load_symbolic_finish ()
GdkPixbuf * gtk_icon_info_load_symbolic_finish (GtkIconInfo *icon_info,GAsyncResult *res,gboolean *was_symbolic,GError **error);
Завершает асинхронную загрузку значка, см. gtk_icon_info_load_symbolic_async().
Параметры
icon_info | объект GtkIconInfo из | |
res | объект GAsyncResult | |
was_symbolic | gboolean, возвращает, был ли загруженный значок символьный и был ли применён цвет | [out][allow-none] |
error | место для хранения информации об ошибке при неудаче или | [allow-none] |
Возвращаемое значение
отрисованный значок; это может быть новый значок или новая ссылка на внутренний значок, поэтому вы не должны его изменять. Используйте g_object_unref() для освобождения ссылки на значок.
[transfer full]
С: 3.8
gtk_icon_info_load_symbolic_for_style ()
GdkPixbuf * gtk_icon_info_load_symbolic_for_style (GtkIconInfo *icon_info,GtkStyle *style,GtkStateType state,gboolean *was_symbolic,GError **error);
gtk_icon_info_load_symbolic_for_style устарел с версии 3.0 и не должен использоваться в новых кодах.
Используйте gtk_icon_info_load_symbolic_for_context() вместо него
Загружает значок, изменяя его в соответствии с системными цветами для цветов переднего плана, успеха, предупреждения и ошибки, указанных в параметрах. Если значок не является символическим, функция вернёт результат из gtk_icon_info_load_icon().
Это позволяет загружать символьные значки, которые будут соответствовать системной теме.
См. gtk_icon_info_load_symbolic() для получения дополнительной информации.
Параметры
icon_info | объект GtkIconInfo | |
style | объект GtkStyle для получения цветов | |
state | состояние виджета для использования цветов | |
was_symbolic | gboolean, возвращает, был ли загруженный значок символьный и был ли применён цвет | [out][allow-none] |
error | место для хранения информации об ошибке при неудаче или | [allow-none] |
С: 3.0
gtk_icon_info_load_symbolic_for_context ()
GdkPixbuf * gtk_icon_info_load_symbolic_for_context (GtkIconInfo *icon_info,GtkStyleContext *context,gboolean *was_symbolic,GError **error);
Загружает значок, изменяя его для соответствия системным цветам для переднего плана, успешного, предупреждающего и ошибочного цветов, предоставленных. Если значок не является символическим, функция вернёт результат из gtk_icon_info_load_icon(). Данная функция использует стандартный цвет переднего плана и символические цвета с названиями «success_color», «warning_color» и «error_color» из контекста.
Это позволяет загружать символические значки, которые будут соответствовать системной теме.
См. gtk_icon_info_load_symbolic() для получения более подробной информации.
Параметры
С: 3.0
gtk_icon_info_load_symbolic_for_context_async ()
void gtk_icon_info_load_symbolic_for_context_async (GtkIconInfo *icon_info,GtkStyleContext *context,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
Асинхронно загружает, отрисовывает и масштабирует символический значок, предварительно найденный в теме значков с помощью gtk_icon_theme_lookup_icon().
Для получения более подробной информации см. gtk_icon_info_load_symbolic_for_context(), которая является синхронной версией этого вызова.
Параметры
icon_info | ||
context | ||
cancellable | необъект GCancellable, | [allow-none] |
callback | a GAsyncReadyCallback для вызова при выполнении запроса. | [scope async] |
user_data | данные для передачи функции обратного вызова. | [closure] |
С: 3.8
gtk_icon_info_load_symbolic_for_context_finish ()
GdkPixbuf * gtk_icon_info_load_symbolic_for_context_finish (GtkIconInfo *icon_info,GAsyncResult *res,gboolean *was_symbolic,GError **error);
Завершает асинхронную загрузку значка, см. gtk_icon_info_load_symbolic_for_context_async().
Параметры
Возвращаемое значение
отрисованный значок; он может быть вновь созданным значком или новой ссылкой на внутренний значок, поэтому не следует изменять значок. Используйте g_object_unref() для освобождения вашей ссылки на значок.
[transfer full]
С: 3.8
gtk_icon_info_set_raw_coordinates ()
void gtk_icon_info_set_raw_coordinates (GtkIconInfo *icon_info,gboolean raw_coordinates);
gtk_icon_info_set_raw_coordinates устарел с версии 3.14 и не должен использоваться в новом коде.
Встроенные прямоугольники и точки привязки устарели
Устанавливает, должны ли координаты, возвращаемые gtk_icon_info_get_embedded_rect() и gtk_icon_info_get_attach_points(), возвращаться в исходной форме, как указано в теме значков, вместо масштабирования, соответствующего pixbuf, возвращаемому gtk_icon_info_load_icon().
Сырые координаты несколько странны; они определены как относящиеся к не масштабированной растровой картинке для PNG и XPM значков, но для SVG значков они находятся в 1000x1000 координатном пространстве, которое масштабируется до конечного размера значка. Вы можете определить, является ли значок SVG, используя gtk_icon_info_get_filename(), и посмотреть, является ли он не-NULL и оканчивается ли на “.svg”.
Данная функция предоставляется в основном для обеспечения совместимости с более старыми API и, как ожидается, не будет полезна для приложений.
Параметры
icon_info | ||
raw_coordinates | указывает, должны ли координаты встроенных прямоугольников и присоединённых точек возвращаться в их исходном (немасштабированном) виде. |
С: 2.4
gtk_icon_info_get_embedded_rect ()
gboolean gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info,GdkRectangle *rectangle);
gtk_icon_info_get_embedded_rect было устаревшим с версии 3.14 и не должно использоваться в новом коде.
Встроенные прямоугольники устарели
Эта функция устарела и всегда возвращает FALSE.
Параметры
icon_info | ||
rectangle | GdkRectangle, в котором хранить координаты встроенного прямоугольника; координаты хранятся только когда эта функция возвращает | [out] |
Возвращаемое значение
С: 2.4
gtk_icon_info_get_attach_points ()
gboolean gtk_icon_info_get_attach_points (GtkIconInfo *icon_info,GdkPoint **points,gint *n_points);
gtk_icon_info_get_attach_points было устаревшим с версии 3.14 и не должно использоваться в новом коде.
Точки прикрепления устарели
Эта функция устарела и всегда возвращает FALSE.
Параметры
Возвращаемое значение
С: 2.4
gtk_icon_info_get_display_name ()
const gchar *
gtk_icon_info_get_display_name (GtkIconInfo *icon_info); gtk_icon_info_get_display_name было устаревшим с версии 3.14 и не должно использоваться в новом коде.
Имена отображения устарели
Эта функция устарела и всегда возвращает NULL.
Параметры
icon_info |
Возвращаемое значение
С: 2.4
gtk_icon_info_is_symbolic ()
gboolean
gtk_icon_info_is_symbolic (GtkIconInfo *icon_info); Проверяет, является ли значок символическим. В настоящее время это делается только по имени файла, а не по содержимому файла. Это поведение может измениться в будущем.
Параметры
icon_info |
С: 3.12
Типы и значения
GtkIconInfo
typedef struct _GtkIconInfo GtkIconInfo;
Содержит информацию, полученную при поиске значка в теме значков.
struct GtkIconTheme
struct GtkIconTheme;
Выступает в качестве базы данных информации о теме значков. Обычно, вы получаете тему значков для конкретного экрана, используя gtk_icon_theme_get_for_screen(), и она будет содержать информацию о текущей теме значков для этого экрана, но вы также можете создать новый объект GtkIconTheme и явно установить имя темы значков, используя gtk_icon_theme_set_custom_theme().
struct GtkIconThemeClass
struct GtkIconThemeClass {
GObjectClass parent_class;
void (* changed) (GtkIconTheme *icon_theme);
};
Члены
| Сигнал, генерируемый при переключении текущей темы значков или при обнаружении GTK+ изменений в содержимом текущей темы значков. |
перечисление GtkIconLookupFlags
Используется для указания параметров для gtk_icon_theme_lookup_icon()
Члены
GTK_ICON_LOOKUP_NO_SVG | Никогда не получать значки SVG, даже если gdk-pixbuf их поддерживает. Не может использоваться вместе с | |
GTK_ICON_LOOKUP_FORCE_SVG | Получать значки SVG, даже если gdk-pixbuf их не поддерживает. Не может использоваться вместе с | |
GTK_ICON_LOOKUP_USE_BUILTIN | При передаче в | |
GTK_ICON_LOOKUP_GENERIC_FALLBACK | Попытаться сократить имя значка по символам «-» перед просмотром унаследованных тем. Этот флаг поддерживается только в функциях, принимающих одно имя значка. Для более общего fallback, см. | |
GTK_ICON_LOOKUP_FORCE_SIZE | Всегда получать значок, масштабированный до запрошенного размера. С версии 2.14. | |
GTK_ICON_LOOKUP_FORCE_REGULAR | Попытаться всегда загрузить обычные значки, даже если указаны символические имена значков. С версии 3.14. | |
GTK_ICON_LOOKUP_FORCE_SYMBOLIC | Попытаться всегда загрузить символические значки, даже если указаны имена обычных значков. С версии 3.14. | |
GTK_ICON_LOOKUP_DIR_LTR | Попытаться загрузить вариант значка для направления текста слева направо. С версии 3.14. | |
GTK_ICON_LOOKUP_DIR_RTL | Попытаться загрузить вариант значка для направления текста справа налево. С версии 3.14. |
GTK_ICON_THEME_ERROR
#define GTK_ICON_THEME_ERROR gtk_icon_theme_error_quark ()
Используемый GQuark для ошибок GtkIconThemeError.
перечисление GtkIconThemeError
Коды ошибок для операций GtkIconTheme.
Члены
GTK_ICON_THEME_NOT_FOUND | Указанный значок не существует в теме. | |
GTK_ICON_THEME_FAILED | Произошла неопределенная ошибка. |
Подробности сигналов
Сигнал “changed”
void user_function (GtkIconTheme *icon_theme, gpointer user_data)
Генерируется при переключении текущей темы значков или при обнаружении GTK+ изменений в содержимом текущей темы значков.
Параметры
icon_theme | тема значков | |
user_data | пользовательские данные, установленные при подключении обработчика сигнала. |
Флаги: Запуск последним
© 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/GtkIconTheme.html