| 
 | |
|  | 
| GTK+ Reference Manual | ||||
|---|---|---|---|---|
| GtkIconThemeGtkIconTheme Определение значка по имени. | 
#include <gtk/gtk.h>
            GtkIconInfo;
            GtkIconTheme;
enum        GtkIconLookupFlags;
#define     GTK_ICON_THEME_ERROR
enum        GtkIconThemeError;
GtkIconTheme* gtk_icon_theme_new            (void);
GtkIconTheme* gtk_icon_theme_get_default    (void);
GtkIconTheme* gtk_icon_theme_get_for_screen (GdkScreen *screen);
void        gtk_icon_theme_set_screen       (GtkIconTheme *icon_theme,
                                             GdkScreen *screen);
void        gtk_icon_theme_set_search_path  (GtkIconTheme *icon_theme,
                                             const gchar *path[],
                                             gint n_elements);
void        gtk_icon_theme_get_search_path  (GtkIconTheme *icon_theme,
                                             gchar **path[],
                                             gint *n_elements);
void        gtk_icon_theme_append_search_path
                                            (GtkIconTheme *icon_theme,
                                             const gchar *path);
void        gtk_icon_theme_prepend_search_path
                                            (GtkIconTheme *icon_theme,
                                             const gchar *path);
void        gtk_icon_theme_set_custom_theme (GtkIconTheme *icon_theme,
                                             const gchar *theme_name);
gboolean    gtk_icon_theme_has_icon         (GtkIconTheme *icon_theme,
                                             const gchar *icon_name);
GtkIconInfo* gtk_icon_theme_lookup_icon     (GtkIconTheme *icon_theme,
                                             const gchar *icon_name,
                                             gint size,
                                             GtkIconLookupFlags flags);
GdkPixbuf*  gtk_icon_theme_load_icon        (GtkIconTheme *icon_theme,
                                             const gchar *icon_name,
                                             gint size,
                                             GtkIconLookupFlags flags,
                                             GError **error);
GList*      gtk_icon_theme_list_icons       (GtkIconTheme *icon_theme,
                                             const gchar *context);
gint*       gtk_icon_theme_get_icon_sizes   (GtkIconTheme *icon_theme,
                                             const gchar *icon_name);
char*       gtk_icon_theme_get_example_icon_name
                                            (GtkIconTheme *icon_theme);
gboolean    gtk_icon_theme_rescan_if_needed (GtkIconTheme *icon_theme);
void        gtk_icon_theme_add_builtin_icon (const gchar *icon_name,
                                             gint size,
                                             GdkPixbuf *pixbuf);
GtkIconInfo* gtk_icon_info_copy             (GtkIconInfo *icon_info);
void        gtk_icon_info_free              (GtkIconInfo *icon_info);
gint        gtk_icon_info_get_base_size     (GtkIconInfo *icon_info);
const gchar* gtk_icon_info_get_filename     (GtkIconInfo *icon_info);
GdkPixbuf*  gtk_icon_info_get_builtin_pixbuf
                                            (GtkIconInfo *icon_info);
GdkPixbuf*  gtk_icon_info_load_icon         (GtkIconInfo *icon_info,
                                             GError **error);
void        gtk_icon_info_set_raw_coordinates
                                            (GtkIconInfo *icon_info,
                                             gboolean raw_coordinates);
gboolean    gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info,
                                             GdkRectangle *rectangle);
gboolean    gtk_icon_info_get_attach_points (GtkIconInfo *icon_info,
                                             GdkPoint **points,
                                             gint *n_points);
const gchar* gtk_icon_info_get_display_name (GtkIconInfo *icon_info);GObject +----GtkIconTheme
"changed"   void        user_function      (GtkIconTheme *icon_theme,
                                            gpointer      user_data)       : Run lastGtkIconTheme обеспечивает средство для поиска значков по названию и размеру. Основная причина использования названия вместо просто определённого имени файла заключается в том, что позволяет другим значкам использоваться в зависимости от выбора icon theme польльзователя. Режим темы значков в Linux и Unix следует из Спецификации темы значков. Есть тема значков по умолчанию, названная hicolor, где приложения должны устанавливать свои значки, но большинство дополнительных тем приложений могут быть установлены в зависимости от выбора пользователя или поставщика операционной системы.
Именованные значки подобны средству Themeable Stock Images(3) и различия между ними могут быть немного запутанными. Имейте ввиду несколько вещей:
Заготовленные изображения обычно используются вместе с Заготовками пунктов(3)., таких как 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", /* имя значка */ 48, /* размер */ 0, /* флаг */ &error); if (!pixbuf) { g_warning ("Couldn't load icon: %s", error->message); g_error_free (message); } else { /* Использование pixbuf */ g_object_unref (pixbuf); }
typedef struct _GtkIconInfo GtkIconInfo;
Содержит информацию, найденную при определении значка в теме значков.
typedef struct _GtkIconTheme GtkIconTheme;
Используется как база данных информации о теме значков. Как правило, вы отыскиваете тему значка для специального отображения используя gtk_icon_theme_get_for_screen() и она будет вмещать информацию о текущемй теме значков для отображения, но ва также можете создать новый объект GtkIconTheme и установить тему значков используя gtk_icon_theme_set_custom_theme().
typedef enum { GTK_ICON_LOOKUP_NO_SVG = 1 << 0, GTK_ICON_LOOKUP_FORCE_SVG = 1 << 1, GTK_ICON_LOOKUP_USE_BUILTIN = 1 << 2 } GtkIconLookupFlags;
Использует специальные опции для gtk_icon_theme_lookup_icon()
| GTK_ICON_LOOKUP_NO_SVG | Никогда не возвращает SVG значки, даже если gdk-pixbuf поддерживает их. Не может использоваться вместе с GTK_ICON_LOOKUP_FORCE_SVG. | 
| GTK_ICON_LOOKUP_FORCE_SVG | Возвращает SVG значки, даже если gdk-pixbuf не поддерживает их. Не должен использоваться вместе с GTK_ICON_LOOKUP_NO_SVG. | 
| GTK_ICON_LOOKUP_USE_BUILTIN | Когда помещён в gtk_icon_theme_lookup_icon() включает встроенные значки также как и файлы. Для встроенных значков, gtk_icon_info_get_filename() возвращает NULL и вам нужно вызвать gtk_icon_info_get_builtin_pixbuf(). | 
#define GTK_ICON_THEME_ERROR gtk_icon_theme_error_quark ()
typedef enum {
  GTK_ICON_THEME_NOT_FOUND,
  GTK_ICON_THEME_FAILED
} GtkIconThemeError;Коды ошибок для GtkIconTheme операций.
| GTK_ICON_THEME_NOT_FOUND | Определенный значок не существует в теме | 
| GTK_ICON_THEME_FAILED | Произошла не установленная ошибка. | 
GtkIconTheme* gtk_icon_theme_new (void);
Создаёт новый объект темы значков. Объект темы значков используется чтобы отыскать значок в специальной теме значков. Обычно, используется gtk_icon_theme_get_default() или gtk_icon_theme_get_for_screen() вместо создания новых объектов темы значков с нуля.
| Возвращает : | вновь созданный объект GtkIconTheme. | 
Начиная с версии 2.4
GtkIconTheme* gtk_icon_theme_get_default (void);
Делает тему значков отображаемой по умолчанию. Смотрите gtk_icon_theme_get_for_screen().
| Возвращает : | Уникальный GtkIconTheme ассоциированный с экраном по умолчанию. Эта тема значков ассоциированная с экраном используется до тех пор пока экран открыт. | 
Начиная с версии 2.4
GtkIconTheme* gtk_icon_theme_get_for_screen (GdkScreen *screen);
Делает объект темы значков ассоциированным с screen; если эта функция не имела предварительного вызова для получаемого экрана, новый объект темы значков будет создан и ассоциирован с экраном. Использование этой функции обычно лучший выбор чем вызов gtk_icon_theme_new() и настройка экрана самостоятельно; при использовании этой функции, единственный объект темы значков будет распределён между пользователями.
| screen : | |
| Возвращает : | Уникальный GtkIconTheme связанный с полученным экраном. Может использоваться всё время пока открыт экран. | 
Начиная с версии 2.4
void        gtk_icon_theme_set_screen       (GtkIconTheme *icon_theme,
                                             GdkScreen *screen);Устанавливает экран для темы значка; чтобы проследить текущую в настоящее время тему значка пользователя, которая могла бы быть другой для различных экранов.
| icon_theme : | |
| screen : | 
Начиная с версии 2.4
void        gtk_icon_theme_set_search_path  (GtkIconTheme *icon_theme,
                                             const gchar *path[],
                                             gint n_elements);Устанавливает путь поиска объектов темы значков. Просматривая темы значков, GTK+ будет искать, в одном или больше, подкаталогах обозначенного path каталога с именем как у темы значков. (Многочисленные пути элементов тем скомбинированы, чтобы позволить темам быть расширенными добавлением значков из домашнего каталога пользователя.)
Кроме того, если искомый значок не найден в текущемй теме или теме значков по умолчанию, а файл изображения с правильным именем найден непосредственно в одном из элементов path, то это изображение будет использовано для именованного значка. (Это особенность наследования и новые значки должны быть помещены в тему значков по умолчанию с названием DEFAULT_THEME_NAME, а не непосредственно в путь значка.)
| icon_theme : | |
| path : | Массив каталогов в которых происходит поиск значков тем. | 
| n_elements : | Число элементов в path. | 
Начиная с версии 2.4
void        gtk_icon_theme_get_search_path  (GtkIconTheme *icon_theme,
                                             gchar **path[],
                                             gint *n_elements);Выполняет текущий поиск пути. Смотрите gtk_icon_theme_set_search_path().
| icon_theme : | |
| path : | Расположение сохраненного списка каталогов тем значков или NULL. Сохранённое значение должно быть освобождено с помощью g_strfreev(). | 
| n_elements : | Расположение сохраняемого числа элементов в path, или NULL | 
Начиная с версии 2.4
void        gtk_icon_theme_append_search_path
                                            (GtkIconTheme *icon_theme,
                                             const gchar *path);Добавляет каталог в путь поиска. Смотрите gtk_icon_theme_set_search_path().
| icon_theme : | |
| path : | Имя каталога для добавления | 
Начиная с версии 2.4
void        gtk_icon_theme_prepend_search_path
                                            (GtkIconTheme *icon_theme,
                                             const gchar *path);Устанавливает каталог первичным в пути поиска. Смотрите gtk_icon_theme_set_search_path().
| icon_theme : | |
| path : | Имя каталога для установки первичным в путь поиска | 
Начиная с версии 2.4
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 : | |
| theme_name : | Имя темы значков используемая вместо сконфигурированной темы, или NULL чтобы сбросить предварительно установленную тему | 
Начиная с версии 2.4
gboolean    gtk_icon_theme_has_icon         (GtkIconTheme *icon_theme,
                                             const gchar *icon_name);Проверяет наличие специфического имени значка в теме значков.
| icon_theme : | |
| icon_name : | Имя значка | 
| Возвращает : | TRUE если icon_theme включает значки для icon_name. | 
Начиная с версии 2.4
GtkIconInfo* gtk_icon_theme_lookup_icon     (GtkIconTheme *icon_theme,
                                             const gchar *icon_name,
                                             gint size,
                                             GtkIconLookupFlags flags);Находит именованный значок и возвращает структуру содержащую информацию такую как имя файла значка. Значок может быть передан в pixbuf используя gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() комбинирует эти два шага если всё что вам нужно это pixbuf.)
| icon_theme : | |
| icon_name : | Именованный значок, который необходимо найти | 
| size : | Желательный размер значка | 
| flags : | Флаг изменяющий поведение поиска значка | 
| Возвращает : | GtkIconInfo структура вмещающая информацию о значке, или NULL если значок не найден. Освобождается при помощи gtk_icon_info_free() | 
Начиная с версии 2.4
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 : | Желаемый размер значка. Результат может не точно соответствовать желаемому размеру; смотрите gtk_icon_info_load_icon(). | 
| flags : | Флаг изменяющий поведение поиска значка | 
| error : | Расположение информации об ошибках при неудачах, или NULL. | 
| Возвращает : | значок; это может быть вновь созданный значок или новые свойства внутреннего значка, таким образом вы не должны изменять значок. Используйте g_object_unref() для реализации ваших свойств значка. NULL если значок не найден. | 
Начиная с версии 2.4
GList*      gtk_icon_theme_list_icons       (GtkIconTheme *icon_theme,
                                             const gchar *context);Перечисляет значки в текущемй теме значков. Только подмножество значков может быть перечислено обеспечивая содержимое строки. Набор значений для содержимого строки системно зависим, но обычно будут включены, такие значения как 'apps' и 'mimetypes'.
| icon_theme : | |
| context : | Строка идентифицирующая специальный тип значка, или NULL для списка всех значков. | 
| Возвращает : | GList список содержащий имена всех значков в теме. Вы должны в первую очередь освободить каждый элемент в списке с помощью g_free(), потом освободить сам список с помощью g_list_free(). | 
Начиная с версии 2.4
gint*       gtk_icon_theme_get_icon_sizes   (GtkIconTheme *icon_theme,
                                             const gchar *icon_name);Возвращает массив целых чисел, в которых значок доступен без масштабирования. Размер -1 означает доступность масштабирования значка. Массив заканчивается 0 (zero-terminated).
| icon_theme : | |
| icon_name : | Именованный значок | 
| Возвращает : | Недавно определённый массив, в котором описываются размеры в которых доступен значок. Массив должен быть освобождён, когда не нужен для дальнейшего использования, с помощью g_free(). | 
Начиная с версии 2.6
char*       gtk_icon_theme_get_example_icon_name
                                            (GtkIconTheme *icon_theme);Получает название значка, который представлен текущемй темой (например, используется когда представляется список тем пользователю.)
| icon_theme : | |
| Возвращает : | Название значка примера или NULL. Освобождается с помощью g_free(). | 
Начиная с версии 2.4
gboolean gtk_icon_theme_rescan_if_needed (GtkIconTheme *icon_theme);
Выясняет, изменилась ли тема значка; если да, то любая кэширующая информация в текущеме время отбрасывается и будет перезагружена в следующий раз доступа к icon_theme.
| icon_theme : | |
| Возвращает : | TRUE если тема значков была изменена и требуется перезагрузка. | 
Начиная с версии 2.4
void        gtk_icon_theme_add_builtin_icon (const gchar *icon_name,
                                             gint size,
                                             GdkPixbuf *pixbuf);Регистрирует встроенный значок для поиска темы. Идея встроенных значков позволяет приложениям или библиотекам использовать тематические значки в функциях требующих представления файлов в файловой системе. Например, по умолчанию изображения для всех заготовленных значков GTK+'s имеют регистрацию как встроенные значки.
Вообще, если вы используете gtk_icon_theme_add_builtin_icon(), вы также должны установить значок в тему значков, чтобы значок был обще-доступен.
Эта функция будет использоваться с pixbufs, загруженным через gdk_pixbuf_new_from_inline().
| icon_name : | Имя регистрируемого значка | 
| size : | Размер значка для регистрации (различные изображения могут быть зарегистрированы для одного и того же имени значков различных размеров.) | 
| pixbuf : | GdkPixbuf содержит изображение используемое для icon_name. | 
Начиная с версии 2.4
GtkIconInfo* gtk_icon_info_copy (GtkIconInfo *icon_info);
Создаёт копию GtkIconInfo.
| icon_info : | |
| Возвращает : | новый GtkIconInfo | 
Начиная с версии 2.4
void gtk_icon_info_free (GtkIconInfo *icon_info);
Освобождает GtkIconInfo и ассоциированную информацию
| icon_info : | 
Начиная с версии 2.4
gint gtk_icon_info_get_base_size (GtkIconInfo *icon_info);
Выдаёт основной размер значка. Основной размер, это размер значка определённый создателем темы значков. Он может отличаться от реального размера изображения; например маленькая эмблема значка может быть прикреплена к большому значку. Эти значки будут получать тот же самый основной размер, как и большие значки к которым они прикреплены.
| icon_info : | |
| Возвращает : | Основной размер, или 0, если нет основного размера значка. | 
Начиная с версии 2.4
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+ и оно не должно изменяться или становиться недоступным. | 
Начиная с версии 2.4
GdkPixbuf*  gtk_icon_info_get_builtin_pixbuf
                                            (GtkIconInfo *icon_info);Выдаёт встроенное изображение для этого значка. Позволяет GTK+ использовать встроенные значки изображений, вы можете поместить GTK_ICON_LOOKUP_USE_BUILTIN в gtk_icon_theme_lookup_icon().
| icon_info : | структура GtkIconInfo | 
| Возвращает : | Встроенное изображение pixbuf, или NULL. Не расширяет справочную информацию добавляемую к возвращаемому pixbuf, поэтому если вам это нужно, используйте g_object_ref(). Возвращаемое изображение не может изменяться. | 
Начиная с версии 2.4
GdkPixbuf*  gtk_icon_info_load_icon         (GtkIconInfo *icon_info,
                                             GError **error);Предоставляет значок, предварительно найденный в теме значков, используя gtk_icon_theme_lookup_icon(); размер будет базироваться на размере помещенном в gtk_icon_theme_lookup_icon(). Отметьте, что результирующий pixbuf может не быть именно этого размера; тема значков может иметь значки отличающиеся немного от номинального размера, а кроме того GTK+ позволит масштабирование значков, которые достаточно близки к запрошенному размеру или для которых исходное изображение должно было бы масштабироваться слишком сильно. (это улучшает резкость.)
| icon_info : | Структура GtkIconInfo из gtk_icon_theme_lookup_icon() | 
| error : | Расположение сохранённых ошибок информирующих о неудачах, или NULL. | 
| Возвращает : | Предоставляет значок; это может быть вновь-созданный значок или новая информация внутреннего значка, поэтому вы не должны изменять значок. Используйте g_object_unref() для освободить справочную информацию о значке. | 
Начиная с версии 2.4
void        gtk_icon_info_set_raw_coordinates
                                            (GtkIconInfo *icon_info,
                                             gboolean raw_coordinates);Устанавливает должны ли координаты возвращённые 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's, и не очень полезна для приложений.
| icon_info : | |
| raw_coordinates : | Должны ли координаты возвращаться в их оригинальной (не масштабируемой) форме. | 
Начиная с версии 2.4
gboolean    gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info,
                                             GdkRectangle *rectangle);Предоставляет координаты пределов прямоугольника значка, который может использоваться для отображения информации, такой как, предварительный просмотр содержимого текстового файла. Смотрите gtk_icon_info_set_raw_coordinates() для дальнейшей информации о координатной системе.
| icon_info : | |
| rectangle : | GdkRectangle в которой сохраняются внутренние координаты прямоугольника, только когда функция возвращает TRUE. | 
| Возвращает : | TRUE если значок имеет внедрённый прямоугольник | 
Начиная с версии 2.4
gboolean    gtk_icon_info_get_attach_points (GtkIconInfo *icon_info,
                                             GdkPoint **points,
                                             gint *n_points);Выбираются установленные, прикреплённые точки для значка. Прикреплённые точки , это расположение в значке, которое может быть использовано для прикрепления эмблем или оверлейных программ для значка.
| icon_info : | |
| points : | Расположение для хранения указателя на массив точек, или NULL освобождающий массив точек с помощью g_free(). | 
| n_points : | Расположение сохраняющее число точек в points, или NULL | 
| Возвращает : | TRUE если есть любые прикрепленные точки для значка. | 
Начиная с версии 2.4
const gchar* gtk_icon_info_get_display_name (GtkIconInfo *icon_info);
Выдаёт название отображения для значка. Имя отображения, это строка для использования вместо имени значка в визуальном пользовательском контексте, например как список значков.
| icon_info : | |
| Возвращает : | Имя отображения для значка или NULL, если значок не имеет специального имени отображения. Этим значением владеет icon_info и оно не может быть изменено или освобождено. | 
Начиная с версии 2.4
void        user_function                  (GtkIconTheme *icon_theme,
                                            gpointer      user_data)       : Run lastСоздаётся когда текущая тема значков переключена или GTK+ определил что произошли изменения в текущемй теме значков.
| icon_theme : | Тема значков | 
| user_data : | Пользовательские данные установленные когда подключен обработчик сигнала. | 
| Закладки на сайте Проследить за страницей | Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |