GtkIconTheme
GtkIconTheme — Поиск значков по имени
Функции
Сигналы
| void | changed | Выполнить последним |
Типы и значения
| GtkIconInfo | |
| struct | GtkIconTheme |
| struct | GtkIconThemeClass |
| перечисление | GtkIconLookupFlags |
| #define | GTK_ICON_THEME_ERROR |
| перечисление | GtkIconThemeError |
Иерархия объектов
GObject
╰── GtkIconTheme
Включаемые файлы
#include <gtk/gtk.h>
Описание
GtkIconTheme предоставляет средство для поиска иконок по имени и размеру. Основная причина использования имени вместо простого предоставления имени файла заключается в возможности использования различных иконок в зависимости от того, какая «тема иконок» выбрана пользователем. Работа тем иконок в Linux и Unix соответствует Спецификации темы иконок. Существует резервная тема иконок, названная hicolor, где приложения должны устанавливать свои иконки, но могут быть установлены дополнительные темы иконок по выбору поставщиков операционных систем и пользователей.
Имена иконок аналогичны устаревшим пунктам меню, и различие между ними может быть немного запутанным. Следует учитывать несколько моментов:
Изображения-заготовки обычно используются в сочетании с пунктами меню-заготовками, такими как
GTK_STOCK_OKилиGTK_STOCK_OPEN. Имена иконок проще настроить и поэтому более полезны для новых иконок, которые приложение хочет добавить, таких как иконки приложения или окна.Изображения-заготовки могут загружаться только в размерах, определённых перечислением GtkIconSize, или пользовательскими размерами, определёнными с помощью
gtk_icon_size_register(), в то время как именованные иконки более гибкие и позволяют указать любой размер в пикселях.Поскольку изображения-заготовки тесно связаны с пунктами меню-заготовками, а значит и с действиями в пользовательском интерфейсе, изображения-заготовки могут иметь несколько вариантов для разных состояний виджетов или направлений письма.
Хорошее правило — если есть изображение-заготовка для того, что вы хотите использовать, используйте его, иначе используйте именованную иконку. Оказывается, что внутренне изображения-заготовки обычно определяются в терминах одной или нескольких именованных иконок. (Пример с более чем одной иконкой — иконки, зависящие от направления письма; GTK_STOCK_GO_FORWARD использует две тематические иконки «gtk-stock-go-forward-ltr» и «gtk-stock-go-forward-rtl».)
Во многих случаях именованные темы используются косвенно, через GtkImage или пункты меню-заготовки, а не напрямую, но прямой поиск иконок также прост. Объект 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, связанный с основным экраном. Эта тема иконок связана с экраном и может быть использована, пока экран открыт. Не нужно использовать ref или unref.
[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 | объект GdkScreen |
Возвращает
Уникальный объект GtkIconTheme, связанный с заданным экраном. Эта тема иконок связана с экраном и может быть использована, пока экран открыт. Не нужно использовать ref или unref.
[transfer none]
С версии: 2.4
gtk_icon_theme_set_screen ()
void gtk_icon_theme_set_screen (GtkIconTheme *icon_theme,GdkScreen *screen);
Устанавливает экран для темы иконок; экран используется для отслеживания текущей темы иконок пользователя, которая может отличаться для разных экранов.
Параметры
icon_theme | объект GtkIconTheme | |
screen | объект GdkScreen |
С версии: 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 | объект GtkIconTheme | |
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 | объект GtkIconTheme | |
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 | объект GtkIconTheme | |
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 | объект GtkIconTheme | |
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 | объект GtkIconTheme | |
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 | the GIcon для поиска | |
size | желаемый размер значка | |
flags | флаги, изменяющие поведение поиска значка |
Возвращаемое значение
a 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 | the GIcon для поиска | |
size | желаемый размер значка | |
scale | желаемый масштаб | |
flags | флаги, изменяющие поведение поиска значка |
Возвращаемое значение
a 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 | GdkWindow для оптимизации отрисовки, или | [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 |
Возвращает
имя примерного значка или NULL. Освободить с помощью g_free().
[nullable]
С: 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(). Возвращаемое изображение не должно изменяться.
[nullable][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. Если этот флаг был указан, pixbuf, возвращаемый этой функцией, будет масштабирован до точного размера.
Параметры
icon_info | ||
for_window | GdkWindow для оптимизации рисования, или | [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 | a 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 | структура GtkIconInfo полученная из | |
res | объект GAsyncResult | |
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 | структура GtkIconInfo | |
fg | a GdkRGBA представляющий цвет переднего плана значка | |
success_color | a GdkRGBA представляющий цвет предупреждения значка или | [allow-none] |
warning_color | a GdkRGBA representing the warning color of the icon or | [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 | a GdkRGBA представляющий цвет переднего плана значка | |
success_color | a GdkRGBA representing the warning color of the icon or | [allow-none] |
warning_color | a GdkRGBA представляющий цвет предупреждения значка или | [allow-none] |
error_color | a GdkRGBA представляющий цвет ошибки значка или | [allow-none] |
cancellable | необязательный объект GCancellable, | [allow-none] |
callback | a 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 | ||
res | a GAsyncResult | |
was_symbolic | a 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 | ||
style | a GtkStyle для взятия цветов | |
state | состояние виджета для использования цветов | |
was_symbolic | a 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() для получения более подробной информации.
Параметры
icon_info | ||
context | ||
was_symbolic | a gboolean, возвращает, был ли загруженный значок символичным и был ли к нему применён цвет | [out][allow-none] |
error | место для хранения информации об ошибке при неудаче, или | [allow-none] |
С: 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().
Параметры
icon_info | ||
res | a GAsyncResult | |
was_symbolic | a gboolean, возвращает, был ли загруженный значок символическим и применялся ли | [out][allow-none] |
error | место для хранения информации об ошибке при неудаче, или | [allow-none] |
Возвращает
отрендеренный значок; это может быть новый созданный значок или новая ссылка на внутренний значок, поэтому вы не должны изменять значок. Используйте g_object_unref() для освобождения ссылки на значок.
[transfer full]
C момента: 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().
Необработанные координаты несколько странные; они должны задаваться относительно не масштабируемого pixmap для PNG и XPM значков, но для SVG значков они находятся в пространстве координат 1000x1000, которое масштабируется до конечного размера значка. Вы можете определить, является ли значок SVG, используя gtk_icon_info_get_filename(), и посмотреть, является ли он не-NULL и заканчивается на “.svg”.
Эта функция предоставляется в основном для обеспечения совместимости с более старыми API и не ожидается, что она будет полезна для приложений.
Параметры
icon_info | ||
raw_coordinates | указывает, должны ли координаты встроенных прямоугольников и точек привязки возвращаться в их исходной (не масштабированной) форме. |
C момента: 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] |
Возвращает
FALSE
C момента: 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.
Параметры
icon_info | ||
points | место для хранения указателя на массив точек, или | [allow-none][array length=n_points][out] |
n_points | место для хранения количества точек в | [allow-none] |
Возвращает
FALSE
C момента: 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 |
Возвращает
NULL
C момента: 2.4
gtk_icon_info_is_symbolic ()
gboolean
gtk_icon_info_is_symbolic (GtkIconInfo *icon_info); Проверяет, является ли значок символическим или нет. В настоящее время для определения этого используется только имя файла, а не содержимое файла. Это поведение может измениться в будущем.
Параметры
icon_info |
Возвращает
TRUE если значок символический, FALSE в противном случае
C момента: 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 | Попробовать сократить имя значка по символам '-' перед просмотром унаследованных тем. Этот флаг поддерживается только в функциях, принимающих одно имя значка. Для более общего возврата к исходному значению, см. | |
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 | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Run Last
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkIconTheme.html