|  |  | GTK+ Reference Manual |
Top | Description | Object Hierarchy | Properties | Signals

## GtkStatusIcon

GtkStatusIcon — Отображает значок в системном лотке

## Краткое описание

    #include <gtk/gtk.h>

                GtkStatusIcon;
    GtkStatusIcon* gtk_status_icon_new          (void);
    GtkStatusIcon* gtk_status_icon_new_from_pixbuf
                                                (GdkPixbuf *pixbuf);
    GtkStatusIcon* gtk_status_icon_new_from_file
                                                (const gchar *filename);
    GtkStatusIcon* gtk_status_icon_new_from_stock
                                                (const gchar *stock_id);
    GtkStatusIcon* gtk_status_icon_new_from_icon_name
                                                (const gchar *icon_name);
    void        gtk_status_icon_set_from_pixbuf (GtkStatusIcon *status_icon,
                                                 GdkPixbuf *pixbuf);
    void        gtk_status_icon_set_from_file   (GtkStatusIcon *status_icon,
                                                 const gchar *filename);
    void        gtk_status_icon_set_from_stock  (GtkStatusIcon *status_icon,
                                                 const gchar *stock_id);
    void        gtk_status_icon_set_from_icon_name
                                                (GtkStatusIcon *status_icon,
                                                 const gchar *icon_name);
    GtkImageType gtk_status_icon_get_storage_type
                                                (GtkStatusIcon *status_icon);
    GdkPixbuf*  gtk_status_icon_get_pixbuf      (GtkStatusIcon *status_icon);
    const gchar* gtk_status_icon_get_stock      (GtkStatusIcon *status_icon);
    const gchar* gtk_status_icon_get_icon_name  (GtkStatusIcon *status_icon);
    gint        gtk_status_icon_get_size        (GtkStatusIcon *status_icon);
    void        gtk_status_icon_set_tooltip     (GtkStatusIcon *status_icon,
                                                 const gchar *tooltip_text);
    void        gtk_status_icon_set_visible     (GtkStatusIcon *status_icon,
                                                 gboolean visible);
    gboolean    gtk_status_icon_get_visible     (GtkStatusIcon *status_icon);
    void        gtk_status_icon_set_blinking    (GtkStatusIcon *status_icon,
                                                 gboolean blinking);
    gboolean    gtk_status_icon_get_blinking    (GtkStatusIcon *status_icon);
    gboolean    gtk_status_icon_is_embedded     (GtkStatusIcon *status_icon);
    void        gtk_status_icon_position_menu   (GtkMenu *menu,
                                                 gint *x,
                                                 gint *y,
                                                 gboolean *push_in,
                                                 gpointer user_data);
    gboolean    gtk_status_icon_get_geometry    (GtkStatusIcon *status_icon,
                                                 GdkScreen **screen,
                                                 GdkRectangle *area,
                                                 GtkOrientation *orientation);

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

      GObject
       +----GtkStatusIcon

## Свойства

      "blinking"             gboolean              : Read / Write
      "file"                 gchararray            : Write
      "icon-name"            gchararray            : Read / Write
      "pixbuf"               GdkPixbuf             : Read / Write
      "size"                 gint                  : Read
      "stock"                gchararray            : Read / Write
      "storage-type"         GtkImageType          : Read
      "visible"              gboolean              : Read / Write

## Сигналы

    "activate"  void        user_function      (GtkStatusIcon *status_icon,
                                                gpointer       user_data)        : Run first / Action
    "popup-menu"
                void        user_function      (GtkStatusIcon *status_icon,
                                                guint          button,
                                                guint          activate_time,
                                                gpointer       user_data)          : Run first / Action
    "size-changed"
                gboolean    user_function      (GtkStatusIcon *status_icon,
                                                gint           size,
                                                gpointer       user_data)        : Run last

## Описание

Область уведомления или "system tray" обычно используется для размещения переходных значков указывающих некоторое специальное состояние. Например, значок в системном лотке мог бы сообщить пользователю о пришедшем почтовом сообщении, или показывать быстрые короткие сообщения, или что нибудь аналогичное. Основная идея в том, что значок в системном лотке выдающий небольшие сообщения является менее раздражающим, нежели всплывающий диалог.

GtkStatusIcon объект может использоваться для отображения значка в системном лотке ("system tray"). Значок может иметь подсказки, а пользователь может интерактивно взаимодействовать с ним, вызывая контекстное меню. Критическая информация не должна отображаться только в GtkStatusIcon, так как может быть невидима (например когда пользователь не включил на панели область уведомления). Это может быть проверено с помощью `gtk_status_icon_is_embedded()`.

В оконной системе X11, реализована следующая спецификация freedesktop.org "System Tray" specification. Осуществление "tray" аспекта этой спецификации может быть найдено например в GNOME и KDE.

Помните GtkStatusIcon это не виджет, а просто GObject. Создание в виде виджета было бы не практично, так как системный лоток в Win32 не позволяет внедрение произвольных виджетов.

## Детали

### GtkStatusIcon

    typedef struct _GtkStatusIcon GtkStatusIcon;

### gtk_status_icon_new ()

    GtkStatusIcon* gtk_status_icon_new          (void);

Создаёт новый пустой объект значка состояния.

Возвращает : | новый GtkStatusIcon

Начиная с версии 2.10

### gtk_status_icon_new_from_pixbuf ()

    GtkStatusIcon* gtk_status_icon_new_from_pixbuf
                                                (GdkPixbuf *pixbuf);

Создаёт новый значок состояния отображающий `pixbuf`.

Изображение будет уменьшено для соответствия свободному пространству области уведомления при необходимости.

`pixbuf` : | GdkPixbuf
Возвращает : | новый GtkStatusIcon

Начиная с версии 2.10

### gtk_status_icon_new_from_file ()

    GtkStatusIcon* gtk_status_icon_new_from_file
                                                (const gchar *filename);

Создаёт новый значок состояния отображающий файл `filename`.

Изображение будет уменьшено для соответствия свободному пространству области уведомления при необходимости.

`filename` : | Имя файла
Возвращает : | новый GtkStatusIcon

Начиная с версии 2.10

### gtk_status_icon_new_from_stock ()

    GtkStatusIcon* gtk_status_icon_new_from_stock
                                                (const gchar *stock_id);

Создаёт новый значок состояния отображающий заготовленный значок. Например заготовленные значки с именами GTK_STOCK_OPEN, GTK_STOCK_QUIT. Вы можете зарегистрировать собственное имя заготовленного значка, смотрите `gtk_icon_factory_add_default()` и `gtk_icon_factory_add()`.

`stock_id` : | Id готового значка
Возвращает : | новый GtkStatusIcon

Начиная с версии 2.10

### gtk_status_icon_new_from_icon_name ()

    GtkStatusIcon* gtk_status_icon_new_from_icon_name
                                                (const gchar *icon_name);

Создаёт новый значок состояния отображающий значок из текущей темы значков. Если текущая тема значков изменяется, значок будет соответственно обновляться.

`icon_name` : | Имя значка
Возвращает : | новый GtkStatusIcon

Начиная с версии 2.10

### gtk_status_icon_set_from_pixbuf ()

    void        gtk_status_icon_set_from_pixbuf (GtkStatusIcon *status_icon,
                                                 GdkPixbuf *pixbuf);

Создаёт `status_icon` отображающий `pixbuf`. Подробнее смотрите `gtk_status_icon_new_from_pixbuf()`.

`status_icon` : | GtkStatusIcon
`pixbuf` : | GdkPixbuf или `NULL`

Начиная с версии 2.10

### gtk_status_icon_set_from_file ()

    void        gtk_status_icon_set_from_file   (GtkStatusIcon *status_icon,
                                                 const gchar *filename);

Создаёт `status_icon` отображающий файл `filename`. Подробнее смотрите `gtk_status_icon_new_from_file()`.

`status_icon` : | GtkStatusIcon
`filename` : | Имя файла

Начиная с версии 2.10

### gtk_status_icon_set_from_stock ()

    void        gtk_status_icon_set_from_stock  (GtkStatusIcon *status_icon,
                                                 const gchar *stock_id);

Создаёт `status_icon` отображающий заготовленный значок с id `stock_id`. Подробнее смотрите `gtk_status_icon_new_from_stock()`.

`status_icon` : | GtkStatusIcon
`stock_id` : | Id заготовленного значка

Начиная с версии 2.10

### gtk_status_icon_set_from_icon_name ()

    void        gtk_status_icon_set_from_icon_name
                                                (GtkStatusIcon *status_icon,
                                                 const gchar *icon_name);

Создаёт `status_icon` отображающий значок по имени `icon_name` из текущей темы значков. Подробности смотрите `gtk_status_icon_new_from_icon_name()`.

`status_icon` : | GtkStatusIcon
`icon_name` : | Имя значка

Начиная с версии 2.10

### gtk_status_icon_get_storage_type ()

    GtkImageType gtk_status_icon_get_storage_type
                                                (GtkStatusIcon *status_icon);

Получает тип изображения используемый GtkStatusIcon для хранения данных изображения. Если GtkStatusIcon не имеет данных изображения, возвращаемое значение будет соответствовать `GTK_IMAGE_EMPTY`.

`status_icon` : | GtkStatusIcon
Возвращает : | Используемое изображение

Начиная с версии 2.10

### gtk_status_icon_get_pixbuf ()

    GdkPixbuf*  gtk_status_icon_get_pixbuf      (GtkStatusIcon *status_icon);

Получает GdkPixbuf отображаемый GtkStatusIcon. Тип хранимого значка состояния должен быть `GTK_IMAGE_EMPTY` или `GTK_IMAGE_PIXBUF` (смотрите `gtk_status_icon_get_storage_type()`). Вызывающий эту функцию не владеет ссылкой для возвращаемого изображения (pixbuf).

`status_icon` : | GtkStatusIcon
Возвращает : | Отображаемый pixbuf, или `NULL` если изображение пустое.

Начиная с версии 2.10

### gtk_status_icon_get_stock ()

    const gchar* gtk_status_icon_get_stock      (GtkStatusIcon *status_icon);

Получает id заготовленного значка отображаемого GtkStatusIcon. Тип хранимого значка состояния должен быть `GTK_IMAGE_EMPTY` или `GTK_IMAGE_STOCK` (смотрите `gtk_status_icon_get_storage_type()`). Возвращаемой строкой владеет GtkStatusIcon и она не должна изменяться или освобождаться.

`status_icon` : | GtkStatusIcon
Возвращает : | id отображаемого заготовленного значка, или `NULL` если изображение пустое.

Начиная с версии 2.10

### gtk_status_icon_get_icon_name ()

    const gchar* gtk_status_icon_get_icon_name  (GtkStatusIcon *status_icon);

Получает имя значка отображаемого GtkStatusIcon. Тип хранимого значка должен быть `GTK_IMAGE_EMPTY` или `GTK_IMAGE_ICON_NAME` (смотрите `gtk_status_icon_get_storage_type()`). Возвращаемой строкой владеет GtkStatusIcon и она не должна изменяться или освобождаться.

`status_icon` : | GtkStatusIcon
Возвращает : | Имя отображаемого значка, или `NULL` если изображение пустое.

Начиная с версии 2.10

### gtk_status_icon_get_size ()

    gint        gtk_status_icon_get_size        (GtkStatusIcon *status_icon);

Получает размер в пикселах который доступен для изображения. Заготовленные значки и именованные значки адаптируются автоматически если изменяется размер области уведомления. Для других типов хранения, может использоваться сигнал size-changed для реакции на изменение размера.

`status_icon` : | GtkStatusIcon
Возвращает : | Размер который доступен для изображения

Начиная с версии 2.10

### gtk_status_icon_set_tooltip ()

    void        gtk_status_icon_set_tooltip     (GtkStatusIcon *status_icon,
                                                 const gchar *tooltip_text);

Устанавливает подсказку значка состояния.

`status_icon` : | GtkStatusIcon
`tooltip_text` : | Текст подсказки, или `NULL`

Начиная с версии 2.10

### gtk_status_icon_set_visible ()

    void        gtk_status_icon_set_visible     (GtkStatusIcon *status_icon,
                                                 gboolean visible);

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

`status_icon` : | GtkStatusIcon
`visible` : | `TRUE` для показа значка состояния, `FALSE` для его скрытия

Начиная с версии 2.10

### gtk_status_icon_get_visible ()

    gboolean    gtk_status_icon_get_visible     (GtkStatusIcon *status_icon);

Возвращает видим ли значок состояния или нет. Помните что состояние видимости не гарантирует что пользователь реально видит значок, смотрите также `gtk_status_icon_is_embedded()`.

`status_icon` : | GtkStatusIcon
Возвращает : | `TRUE` если значок состояния видим

Начиная с версии 2.10

### gtk_status_icon_set_blinking ()

    void        gtk_status_icon_set_blinking    (GtkStatusIcon *status_icon,
                                                 gboolean blinking);

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

`status_icon` : | GtkStatusIcon
`blinking` : | `TRUE` включает мерцание, `FALSE` выключает

Начиная с версии 2.10

### gtk_status_icon_get_blinking ()

    gboolean    gtk_status_icon_get_blinking    (GtkStatusIcon *status_icon);

Определяет мерцает ли значок, смотрите `gtk_status_icon_set_blinking()`.

`status_icon` : | GtkStatusIcon
Возвращает : | `TRUE` если значок мерцает

Начиная с версии 2.10

### gtk_status_icon_is_embedded ()

    gboolean    gtk_status_icon_is_embedded     (GtkStatusIcon *status_icon);

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

`status_icon` : | GtkStatusIcon
Возвращает : | `TRUE` если значок встроен в область уведомления.

Начиная с версии 2.10

### gtk_status_icon_position_menu ()

    void        gtk_status_icon_position_menu   (GtkMenu *menu,
                                                 gint *x,
                                                 gint *y,
                                                 gboolean *push_in,
                                                 gpointer user_data);

Функция позиционирования меню для использования с `gtk_menu_popup()` размещающая `menu` выравненным относительно значка состояния `user_data`.

`menu` : | GtkMenu
`x` : | x позиция
`y` : | y позиция
`push_in` : | Должно ли меню быть полного размера или сжатого.
`user_data` : | Значок состояния для позиционирования меню

Начиная с версии 2.10

### gtk_status_icon_get_geometry ()

    gboolean    gtk_status_icon_get_geometry    (GtkStatusIcon *status_icon,
                                                 GdkScreen **screen,
                                                 GdkRectangle *area,
                                                 GtkOrientation *orientation);

Определяет информацию о расположении значка состояния на экране. Эта информация может использоваться например для позиционирования уведомлений как всплывающие пузырьки. Смотрите `gtk_status_icon_position_menu()` для более удобного позиционирования меню.

Помните, некторые платформы не позволяют GTK+ обеспечивать эту информацию.

`status_icon` : | GtkStatusIcon
`screen` : | Экран, или NULL если информация не нужна
`area` : | Область занятая значком или NULL
`orientation` : | Ориентация панели в которую встроен значок или NULL. Панель может быть сверху, снизу, с право, с лево.
Возвращает : | `TRUE` если информация заполнена

Начиная с версии 2.10

## Детали свойств

### Свойство "`blinking`"

      "blinking"             gboolean              : Read / Write

Мерцает или нет значок состояния.

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

### Свойство "`file`"

      "file"                 gchararray            : Write

Имя файла для загрузки и отображения.

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

### Свойство "`icon-name`"

      "icon-name"            gchararray            : Read / Write

Имя значка из темы значков.

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

### Свойство "`pixbuf`"

      "pixbuf"               GdkPixbuf             : Read / Write

GdkPixbuf для отображения.

### Свойство "`size`"

      "size"                 gint                  : Read

Размер значка.

Допустимые значения : >= 0

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

### Свойство "`stock`"

      "stock"                gchararray            : Read / Write

Stock ID заготовленного изображения для отображения.

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

### Свойство "`storage-type`"

      "storage-type"         GtkImageType          : Read

Представление используемое для данных изображения.

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

### Свойство "`visible`"

      "visible"              gboolean              : Read / Write

Видим или нет значок состояния.

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

## Детали сигналов

### Сигнал "activate"

    void        user_function                  (GtkStatusIcon *status_icon,
                                                gpointer       user_data)        : Run first / Action

Издаётся когда пользователь активирует значок состояния. Способы активизации значка состояния зависят от платформы.

`status_icon` : | Объект получающий сигнал
`user_data` : | Данные пользователя устанавливаемые при подключении обработчика сигнала.

Начиная с версии 2.10

### Сигнал "popup-menu"

    void        user_function                  (GtkStatusIcon *status_icon,
                                                guint          button,
                                                guint          activate_time,
                                                gpointer       user_data)          : Run first / Action

Издаётся когда пользователь вызывает содержимое меню значка состояния. Могут ли значки состояния иметь иеню и как они активизируются зависит от платформы.

Параметры `button` и `activate_timeout` должны помещаться как последние аргументы в `gtk_menu_popup()`.

`status_icon` : | Объект получающий сигнал
`button` : | Кнопка которая была нажата, или 0 если сигнал не издаётся в ответ на событие нажатой кнопки
`activate_time` : | Пауза события которое выполняет распространение сигнала
`user_data` : | Данные пользователя устанавливаемые при подключении обработчика сигнала.

Начиная с версии 2.10

### Сигнал "size-changed"

    gboolean    user_function                  (GtkStatusIcon *status_icon,
                                                gint           size,
                                                gpointer       user_data)        : Run last

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

`status_icon` : | Объект получающий сигнал
`size` : | Новый размер
`user_data` : | Данные пользователя устанавливаемые при подключении обработчика сигнала.
Возвращает : | `TRUE` если значок был обновлен до нового размера. Иначе, GTK+ растянет значок до необходимого размера.

Начиная с версии 2.10