## GtkStatusIcon

GtkStatusIcon — Display an icon in the system tray

## Functions

GtkStatusIcon * | gtk_status_icon_new ()
GtkStatusIcon * | gtk_status_icon_new_from_pixbuf ()
GtkStatusIcon * | gtk_status_icon_new_from_file ()
GtkStatusIcon * | gtk_status_icon_new_from_stock ()
GtkStatusIcon * | gtk_status_icon_new_from_icon_name ()
GtkStatusIcon * | gtk_status_icon_new_from_gicon ()
void | gtk_status_icon_set_from_pixbuf ()
void | gtk_status_icon_set_from_file ()
void | gtk_status_icon_set_from_stock ()
void | gtk_status_icon_set_from_icon_name ()
void | gtk_status_icon_set_from_gicon ()
GtkImageType | gtk_status_icon_get_storage_type ()
GdkPixbuf * | gtk_status_icon_get_pixbuf ()
const gchar * | gtk_status_icon_get_stock ()
const gchar * | gtk_status_icon_get_icon_name ()
GIcon * | gtk_status_icon_get_gicon ()
gint | gtk_status_icon_get_size ()
void | gtk_status_icon_set_screen ()
GdkScreen * | gtk_status_icon_get_screen ()
void | gtk_status_icon_set_tooltip ()
void | gtk_status_icon_set_tooltip_text ()
gchar * | gtk_status_icon_get_tooltip_text ()
void | gtk_status_icon_set_tooltip_markup ()
gchar * | gtk_status_icon_get_tooltip_markup ()
void | gtk_status_icon_set_has_tooltip ()
gboolean | gtk_status_icon_get_has_tooltip ()
void | gtk_status_icon_set_title ()
const gchar * | gtk_status_icon_get_title ()
void | gtk_status_icon_set_name ()
void | gtk_status_icon_set_visible ()
gboolean | gtk_status_icon_get_visible ()
void | gtk_status_icon_set_blinking ()
gboolean | gtk_status_icon_get_blinking ()
gboolean | gtk_status_icon_is_embedded ()
void | gtk_status_icon_position_menu ()
gboolean | gtk_status_icon_get_geometry ()
guint32 | gtk_status_icon_get_x11_window_id ()

## Properties

gboolean | blinking | Read / Write
gboolean | embedded | Read
gchar * | file | Write
GIcon * | gicon | Read / Write
gboolean | has-tooltip | Read / Write
gchar * | icon-name | Read / Write
GtkOrientation | orientation | Read
GdkPixbuf * | pixbuf | Read / Write
GdkScreen * | screen | Read / Write
gint | size | Read
gchar * | stock | Read / Write
GtkImageType | storage-type | Read
gchar * | title | Read / Write
gchar * | tooltip-markup | Read / Write
gchar * | tooltip-text | Read / Write
gboolean | visible | Read / Write

## Signals

void | activate | Action
gboolean | button-press-event | Run Last
gboolean | button-release-event | Run Last
void | popup-menu | Action
gboolean | query-tooltip | Run Last
gboolean | scroll-event | Run Last
gboolean | size-changed | Run Last

## Types and Values

struct | GtkStatusIcon

## Object Hierarchy

        GObject
        ╰── GtkStatusIcon

## Includes

    #include <gtk/gtk.h>

## Description

The "system tray" or notification area is normally used for transient icons that indicate some special state. For example, a system tray icon might appear to tell the user that they have new mail, or have an incoming instant message, or something along those lines. The basic idea is that creating an icon in the notification area is less annoying than popping up a dialog.

A GtkStatusIcon object can be used to display an icon in a "system tray". The icon can have a tooltip, and the user can interact with it by activating it or popping up a context menu. Critical information should not solely be displayed in a GtkStatusIcon, since it may not be visible (e.g. when the user doesn't have a notification area on his panel). This can be checked with `gtk_status_icon_is_embedded()`.

On X11, the implementation follows the freedesktop.org "System Tray" specification. Implementations of the "tray" side of this specification can be found e.g. in the GNOME and KDE panel applications.

Note that a GtkStatusIcon is not a widget, but just a GObject. Making it a widget would be impractical, since the system tray on Win32 doesn't allow to embed arbitrary widgets.

## Functions

### gtk_status_icon_new ()

    GtkStatusIcon *
    gtk_status_icon_new (void);

Creates an empty status icon object.

#### Returns

a new GtkStatusIcon

Since 2.10

### gtk_status_icon_new_from_pixbuf ()

    GtkStatusIcon *
    gtk_status_icon_new_from_pixbuf (GdkPixbuf *pixbuf);

Creates a status icon displaying `pixbuf` .

The image will be scaled down to fit in the available space in the notification area, if necessary.

#### Parameters

pixbuf | a GdkPixbuf |

#### Returns

a new GtkStatusIcon

Since 2.10

### gtk_status_icon_new_from_file ()

    GtkStatusIcon *
    gtk_status_icon_new_from_file (const gchar *filename);

Creates a status icon displaying the file `filename` .

The image will be scaled down to fit in the available space in the notification area, if necessary.

#### Parameters

filename | a filename |

#### Returns

a new GtkStatusIcon

Since 2.10

### gtk_status_icon_new_from_stock ()

    GtkStatusIcon *
    gtk_status_icon_new_from_stock (const gchar *stock_id);

Creates a status icon displaying a stock icon. Sample stock icon names are GTK_STOCK_OPEN, GTK_STOCK_QUIT. You can register your own stock icon names, see `gtk_icon_factory_add_default()` and `gtk_icon_factory_add()`.

#### Parameters

stock_id | a stock icon id |

#### Returns

a new GtkStatusIcon

Since 2.10

### gtk_status_icon_new_from_icon_name ()

    GtkStatusIcon *
    gtk_status_icon_new_from_icon_name (const gchar *icon_name);

Creates a status icon displaying an icon from the current icon theme. If the current icon theme is changed, the icon will be updated appropriately.

#### Parameters

icon_name | an icon name |

#### Returns

a new GtkStatusIcon

Since 2.10

### gtk_status_icon_new_from_gicon ()

    GtkStatusIcon *
    gtk_status_icon_new_from_gicon (GIcon *icon);

Creates a status icon displaying a GIcon. If the icon is a themed icon, it will be updated when the theme changes.

#### Parameters

icon | a GIcon |

#### Returns

a new GtkStatusIcon

Since 2.14

### gtk_status_icon_set_from_pixbuf ()

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

Makes `status_icon` display `pixbuf` . See `gtk_status_icon_new_from_pixbuf()` for details.

#### Parameters

status_icon | a GtkStatusIcon |
pixbuf | a GdkPixbuf or `NULL`. | [allow-none]

Since 2.10

### gtk_status_icon_set_from_file ()

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

Makes `status_icon` display the file `filename` . See `gtk_status_icon_new_from_file()` for details.

#### Parameters

status_icon | a GtkStatusIcon |
filename | a filename |

Since 2.10

### gtk_status_icon_set_from_stock ()

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

Makes `status_icon` display the stock icon with the id `stock_id` . See `gtk_status_icon_new_from_stock()` for details.

#### Parameters

status_icon | a GtkStatusIcon |
stock_id | a stock icon id |

Since 2.10

### gtk_status_icon_set_from_icon_name ()

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

Makes `status_icon` display the icon named `icon_name` from the current icon theme. See `gtk_status_icon_new_from_icon_name()` for details.

#### Parameters

status_icon | a GtkStatusIcon |
icon_name | an icon name |

Since 2.10

### gtk_status_icon_set_from_gicon ()

    void
    gtk_status_icon_set_from_gicon (GtkStatusIcon *status_icon,
                                    GIcon *icon);

Makes `status_icon` display the GIcon. See `gtk_status_icon_new_from_gicon()` for details.

#### Parameters

status_icon | a GtkStatusIcon |
icon | a GIcon |

Since 2.14

### gtk_status_icon_get_storage_type ()

    GtkImageType
    gtk_status_icon_get_storage_type (GtkStatusIcon *status_icon);

Gets the type of representation being used by the GtkStatusIcon to store image data. If the GtkStatusIcon has no image data, the return value will be `GTK_IMAGE_EMPTY`.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the image representation being used

Since 2.10

### gtk_status_icon_get_pixbuf ()

    GdkPixbuf *
    gtk_status_icon_get_pixbuf (GtkStatusIcon *status_icon);

Gets the GdkPixbuf being displayed by the GtkStatusIcon. The storage type of the status icon must be `GTK_IMAGE_EMPTY` or `GTK_IMAGE_PIXBUF` (see `gtk_status_icon_get_storage_type()`). The caller of this function does not own a reference to the returned pixbuf.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the displayed pixbuf, or `NULL` if the image is empty.

[transfer none]

Since 2.10

### gtk_status_icon_get_stock ()

    const gchar *
    gtk_status_icon_get_stock (GtkStatusIcon *status_icon);

Gets the id of the stock icon being displayed by the GtkStatusIcon. The storage type of the status icon must be `GTK_IMAGE_EMPTY` or `GTK_IMAGE_STOCK` (see `gtk_status_icon_get_storage_type()`). The returned string is owned by the GtkStatusIcon and should not be freed or modified.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

stock id of the displayed stock icon, or `NULL` if the image is empty.

Since 2.10

### gtk_status_icon_get_icon_name ()

    const gchar *
    gtk_status_icon_get_icon_name (GtkStatusIcon *status_icon);

Gets the name of the icon being displayed by the GtkStatusIcon. The storage type of the status icon must be `GTK_IMAGE_EMPTY` or `GTK_IMAGE_ICON_NAME` (see `gtk_status_icon_get_storage_type()`). The returned string is owned by the GtkStatusIcon and should not be freed or modified.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

name of the displayed icon, or `NULL` if the image is empty.

Since 2.10

### gtk_status_icon_get_gicon ()

    GIcon *
    gtk_status_icon_get_gicon (GtkStatusIcon *status_icon);

Retrieves the GIcon being displayed by the GtkStatusIcon. The storage type of the status icon must be `GTK_IMAGE_EMPTY` or `GTK_IMAGE_GICON` (see `gtk_status_icon_get_storage_type()`). The caller of this function does not own a reference to the returned GIcon.

If this function fails, `icon` is left unchanged;

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the displayed icon, or `NULL` if the image is empty.

[transfer none]

Since 2.14

### gtk_status_icon_get_size ()

    gint
    gtk_status_icon_get_size (GtkStatusIcon *status_icon);

Gets the size in pixels that is available for the image. Stock icons and named icons adapt their size automatically if the size of the notification area changes. For other storage types, the size-changed signal can be used to react to size changes.

Note that the returned size is only meaningful while the status icon is embedded (see `gtk_status_icon_is_embedded()`).

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the size that is available for the image

Since 2.10

### gtk_status_icon_set_screen ()

    void
    gtk_status_icon_set_screen (GtkStatusIcon *status_icon,
                                GdkScreen *screen);

Sets the GdkScreen where `status_icon` is displayed; if the icon is already mapped, it will be unmapped, and then remapped on the new screen.

#### Parameters

status_icon | a GtkStatusIcon |
screen | a GdkScreen |

Since 2.12

### gtk_status_icon_get_screen ()

    GdkScreen *
    gtk_status_icon_get_screen (GtkStatusIcon *status_icon);

Returns the GdkScreen associated with `status_icon` .

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

a GdkScreen.

[transfer none]

Since 2.12

### gtk_status_icon_set_tooltip ()

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

`gtk_status_icon_set_tooltip` has been deprecated since version 2.16 and should not be used in newly-written code.

Use `gtk_status_icon_set_tooltip_text()` instead.

Sets the tooltip of the status icon.

#### Parameters

status_icon | a GtkStatusIcon |
tooltip_text | the tooltip text, or `NULL`. | [allow-none]

Since 2.10

### gtk_status_icon_set_tooltip_text ()

    void
    gtk_status_icon_set_tooltip_text (GtkStatusIcon *status_icon,
                                      const gchar *text);

Sets `text` as the contents of the tooltip.

This function will take care of setting “has-tooltip” to `TRUE` and of the default handler for the “query-tooltip” signal.

See also the “tooltip-text” property and `gtk_tooltip_set_text()`.

#### Parameters

status_icon | a GtkStatusIcon |
text | the contents of the tooltip for `status_icon` |

Since 2.16

### gtk_status_icon_get_tooltip_text ()

    gchar *
    gtk_status_icon_get_tooltip_text (GtkStatusIcon *status_icon);

Gets the contents of the tooltip for `status_icon` .

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the tooltip text, or `NULL`. You should free the returned string with `g_free()` when done.

Since 2.16

### gtk_status_icon_set_tooltip_markup ()

    void
    gtk_status_icon_set_tooltip_markup (GtkStatusIcon *status_icon,
                                        const gchar *markup);

Sets `markup` as the contents of the tooltip, which is marked up with the Pango text markup language.

This function will take care of setting “has-tooltip” to `TRUE` and of the default handler for the “query-tooltip” signal.

See also the “tooltip-markup” property and `gtk_tooltip_set_markup()`.

#### Parameters

status_icon | a GtkStatusIcon |
markup | the contents of the tooltip for `status_icon` , or `NULL`. | [allow-none]

Since 2.16

### gtk_status_icon_get_tooltip_markup ()

    gchar *
    gtk_status_icon_get_tooltip_markup (GtkStatusIcon *status_icon);

Gets the contents of the tooltip for `status_icon` .

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the tooltip text, or `NULL`. You should free the returned string with `g_free()` when done.

Since 2.16

### gtk_status_icon_set_has_tooltip ()

    void
    gtk_status_icon_set_has_tooltip (GtkStatusIcon *status_icon,
                                     gboolean has_tooltip);

Sets the has-tooltip property on `status_icon` to `has_tooltip` . See “has-tooltip” for more information.

#### Parameters

status_icon | a GtkStatusIcon |
has_tooltip | whether or not `status_icon` has a tooltip |

Since 2.16

### gtk_status_icon_get_has_tooltip ()

    gboolean
    gtk_status_icon_get_has_tooltip (GtkStatusIcon *status_icon);

Returns the current value of the has-tooltip property. See “has-tooltip” for more information.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

current value of has-tooltip on `status_icon` .

Since 2.16

### gtk_status_icon_set_title ()

    void
    gtk_status_icon_set_title (GtkStatusIcon *status_icon,
                               const gchar *title);

Sets the title of this tray icon. This should be a short, human-readable, localized string describing the tray icon. It may be used by tools like screen readers to render the tray icon.

#### Parameters

status_icon | a GtkStatusIcon |
title | the title |

Since 2.18

### gtk_status_icon_get_title ()

    const gchar *
    gtk_status_icon_get_title (GtkStatusIcon *status_icon);

Gets the title of this tray icon. See `gtk_status_icon_set_title()`.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

the title of the status icon

Since 2.18

### gtk_status_icon_set_name ()

    void
    gtk_status_icon_set_name (GtkStatusIcon *status_icon,
                              const gchar *name);

Sets the name of this tray icon. This should be a string identifying this icon. It is may be used for sorting the icons in the tray and will not be shown to the user.

#### Parameters

status_icon | a GtkStatusIcon |
name | the name |

Since 2.20

### gtk_status_icon_set_visible ()

    void
    gtk_status_icon_set_visible (GtkStatusIcon *status_icon,
                                 gboolean visible);

Shows or hides a status icon.

#### Parameters

status_icon | a GtkStatusIcon |
visible | `TRUE` to show the status icon, `FALSE` to hide it |

Since 2.10

### gtk_status_icon_get_visible ()

    gboolean
    gtk_status_icon_get_visible (GtkStatusIcon *status_icon);

Returns whether the status icon is visible or not. Note that being visible does not guarantee that the user can actually see the icon, see also `gtk_status_icon_is_embedded()`.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

`TRUE` if the status icon is visible

Since 2.10

### gtk_status_icon_set_blinking ()

    void
    gtk_status_icon_set_blinking (GtkStatusIcon *status_icon,
                                  gboolean blinking);

`gtk_status_icon_set_blinking` has been deprecated since version 2.22 and should not be used in newly-written code.

This function will be removed in GTK+ 3

Makes the status icon start or stop blinking. Note that blinking user interface elements may be problematic for some users, and thus may be turned off, in which case this setting has no effect.

#### Parameters

status_icon | a GtkStatusIcon |
blinking | `TRUE` to turn blinking on, `FALSE` to turn it off |

Since 2.10

### gtk_status_icon_get_blinking ()

    gboolean
    gtk_status_icon_get_blinking (GtkStatusIcon *status_icon);

`gtk_status_icon_get_blinking` has been deprecated since version 2.22 and should not be used in newly-written code.

This function will be removed in GTK+ 3

Returns whether the icon is blinking, see `gtk_status_icon_set_blinking()`.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

`TRUE` if the icon is blinking

Since 2.10

### gtk_status_icon_is_embedded ()

    gboolean
    gtk_status_icon_is_embedded (GtkStatusIcon *status_icon);

Returns whether the status icon is embedded in a notification area.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

`TRUE` if the status icon is embedded in a notification area.

Since 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);

Menu positioning function to use with `gtk_menu_popup()` to position `menu` aligned to the status icon `user_data` .

#### Parameters

menu | the GtkMenu |
x | return location for the x position |
y | return location for the y position |
push_in | whether the first menu item should be offset (pushed in) to be aligned with the menu popup position (only useful for GtkOptionMenu). |
user_data | the status icon to position the menu on |

Since 2.10

### gtk_status_icon_get_geometry ()

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

Obtains information about the location of the status icon on screen. This information can be used to e.g. position popups like notification bubbles.

See `gtk_status_icon_position_menu()` for a more convenient alternative for positioning menus.

Note that some platforms do not allow GTK+ to provide this information, and even on platforms that do allow it, the information is not reliable unless the status icon is embedded in a notification area, see `gtk_status_icon_is_embedded()`.

#### Parameters

status_icon | a GtkStatusIcon |
screen | return location for the screen, or `NULL` if the information is not needed. | [out][transfer none][allow-none]
area | return location for the area occupied by the status icon, or `NULL`. | [out][allow-none]
orientation | return location for the orientation of the panel in which the status icon is embedded, or `NULL`. A panel at the top or bottom of the screen is horizontal, a panel at the left or right is vertical. | [out][allow-none]

#### Returns

`TRUE` if the location information has been filled in

Since 2.10

### gtk_status_icon_get_x11_window_id ()

    guint32
    gtk_status_icon_get_x11_window_id (GtkStatusIcon *status_icon);

This function is only useful on the X11/freedesktop.org platform. It returns a window ID for the widget in the underlying status icon implementation. This is useful for the Galago notification service, which can send a window ID in the protocol in order for the server to position notification windows pointing to a status icon reliably.

This function is not intended for other use cases which are more likely to be met by one of the non-X11 specific methods, such as `gtk_status_icon_position_menu()`.

#### Parameters

status_icon | a GtkStatusIcon |

#### Returns

An 32 bit unsigned integer identifier for the underlying X11 Window

Since 2.14

## Types and Values

### struct GtkStatusIcon

    struct GtkStatusIcon;

## Property Details

### The `“blinking”` property

      “blinking”                 gboolean

Whether or not the status icon is blinking.

`GtkStatusIcon:blinking` has been deprecated since version 2.22 and should not be used in newly-written code.

This property will be removed in GTK+ 3

Flags: Read / Write

Default value: FALSE

### The `“embedded”` property

      “embedded”                 gboolean

`TRUE` if the statusicon is embedded in a notification area.

Flags: Read

Default value: FALSE

Since 2.12

### The `“file”` property

      “file”                     gchar *

Filename to load and display.

Flags: Write

Default value: NULL

### The `“gicon”` property

      “gicon”                    GIcon *

The GIcon displayed in the GtkStatusIcon. For themed icons, the image will be updated automatically if the theme changes.

Flags: Read / Write

Since 2.14

### The `“has-tooltip”` property

      “has-tooltip”              gboolean

Enables or disables the emission of “query-tooltip” on `status_icon` . A value of `TRUE` indicates that `status_icon` can have a tooltip, in this case the status icon will be queried using “query-tooltip” to determine whether it will provide a tooltip or not.

Note that setting this property to `TRUE` for the first time will change the event masks of the windows of this status icon to include leave-notify and motion-notify events. This will not be undone when the property is set to `FALSE` again.

Whether this property is respected is platform dependent. For plain text tooltips, use “tooltip-text” in preference.

Flags: Read / Write

Default value: FALSE

Since 2.16

### The `“icon-name”` property

      “icon-name”                gchar *

The name of the icon from the icon theme.

Flags: Read / Write

Default value: NULL

### The `“orientation”` property

      “orientation”              GtkOrientation

The orientation of the tray in which the statusicon is embedded.

Flags: Read

Default value: GTK_ORIENTATION_HORIZONTAL

Since 2.12

### The `“pixbuf”` property

      “pixbuf”                   GdkPixbuf *

A GdkPixbuf to display.

Flags: Read / Write

### The `“screen”` property

      “screen”                   GdkScreen *

The screen where this status icon will be displayed.

Flags: Read / Write

### The `“size”` property

      “size”                     gint

The size of the icon.

Flags: Read

Allowed values: >= 0

Default value: 0

### The `“stock”` property

      “stock”                    gchar *

Stock ID for a stock image to display.

Flags: Read / Write

Default value: NULL

### The `“storage-type”` property

      “storage-type”             GtkImageType

The representation being used for image data.

Flags: Read

Default value: GTK_IMAGE_EMPTY

### The `“title”` property

      “title”                    gchar *

The title of this tray icon. This should be a short, human-readable, localized string describing the tray icon. It may be used by tools like screen readers to render the tray icon.

Flags: Read / Write

Default value: NULL

Since 2.18

### The `“tooltip-markup”` property

      “tooltip-markup”           gchar *

Sets the text of tooltip to be the given string, which is marked up with the Pango text markup language. Also see `gtk_tooltip_set_markup()`.

This is a convenience property which will take care of getting the tooltip shown if the given string is not `NULL`. “has-tooltip” will automatically be set to `TRUE` and the default handler for the “query-tooltip” signal will take care of displaying the tooltip.

On some platforms, embedded markup will be ignored.

Flags: Read / Write

Default value: NULL

Since 2.16

### The `“tooltip-text”` property

      “tooltip-text”             gchar *

Sets the text of tooltip to be the given string.

Also see `gtk_tooltip_set_text()`.

This is a convenience property which will take care of getting the tooltip shown if the given string is not `NULL`. “has-tooltip” will automatically be set to `TRUE` and the default handler for the “query-tooltip” signal will take care of displaying the tooltip.

Note that some platforms have limitations on the length of tooltips that they allow on status icons, e.g. Windows only shows the first 64 characters.

Flags: Read / Write

Default value: NULL

Since 2.16

### The `“visible”` property

      “visible”                  gboolean

Whether or not the status icon is visible.

Flags: Read / Write

Default value: TRUE

## Signal Details

### The `“activate”` signal

    void
    user_function (GtkStatusIcon *status_icon,
                   gpointer       user_data)

Gets emitted when the user activates the status icon. If and how status icons can activated is platform-dependent.

Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.

#### Parameters

status_icon | the object which received the signal |
user_data | user data set when the signal handler was connected. |

Flags: Action

Since 2.10

### The `“button-press-event”` signal

    gboolean
    user_function (GtkStatusIcon *status_icon,
                   GdkEvent      *event,
                   gpointer       user_data)

The ::button-press-event signal will be emitted when a button (typically from a mouse) is pressed.

Whether this event is emitted is platform-dependent. Use the ::activate and ::popup-menu signals in preference.

#### Parameters

status_icon | the object which received the signal |
event | the GdkEventButton which triggered this signal |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` to stop other handlers from being invoked for the event. `FALSE` to propagate the event further.

Flags: Run Last

Since 2.14

### The `“button-release-event”` signal

    gboolean
    user_function (GtkStatusIcon *status_icon,
                   GdkEvent      *event,
                   gpointer       user_data)

The ::button-release-event signal will be emitted when a button (typically from a mouse) is released.

Whether this event is emitted is platform-dependent. Use the ::activate and ::popup-menu signals in preference.

#### Parameters

status_icon | the object which received the signal |
event | the GdkEventButton which triggered this signal |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` to stop other handlers from being invoked for the event. `FALSE` to propagate the event further.

Flags: Run Last

Since 2.14

### The `“popup-menu”` signal

    void
    user_function (GtkStatusIcon *status_icon,
                   guint          button,
                   guint          activate_time,
                   gpointer       user_data)

Gets emitted when the user brings up the context menu of the status icon. Whether status icons can have context menus and how these are activated is platform-dependent.

The `button` and `activate_time` parameters should be passed as the last to arguments to `gtk_menu_popup()`.

Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.

#### Parameters

status_icon | the object which received the signal |
button | the button that was pressed, or 0 if the signal is not emitted in response to a button press event |
activate_time | the timestamp of the event that triggered the signal emission |
user_data | user data set when the signal handler was connected. |

Flags: Action

Since 2.10

### The `“query-tooltip”` signal

    gboolean
    user_function (GtkStatusIcon *status_icon,
                   gint           x,
                   gint           y,
                   gboolean       keyboard_mode,
                   GtkTooltip    *tooltip,
                   gpointer       user_data)

Emitted when the “gtk-tooltip-timeout” has expired with the cursor hovering above `status_icon` ; or emitted when `status_icon` got focus in keyboard mode.

Using the given coordinates, the signal handler should determine whether a tooltip should be shown for `status_icon` . If this is the case `TRUE` should be returned, `FALSE` otherwise. Note that if `keyboard_mode` is `TRUE`, the values of `x` and `y` are undefined and should not be used.

The signal handler is free to manipulate `tooltip` with the therefore destined function calls.

Whether this signal is emitted is platform-dependent. For plain text tooltips, use “tooltip-text” in preference.

#### Parameters

status_icon | the object which received the signal |
x | the x coordinate of the cursor position where the request has been emitted, relative to `status_icon` |
y | the y coordinate of the cursor position where the request has been emitted, relative to `status_icon` |
keyboard_mode | `TRUE` if the tooltip was trigged using the keyboard |
tooltip | a GtkTooltip |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` if `tooltip` should be shown right now, `FALSE` otherwise.

Flags: Run Last

Since 2.16

### The `“scroll-event”` signal

    gboolean
    user_function (GtkStatusIcon *status_icon,
                   GdkEvent      *event,
                   gpointer       user_data)

The ::scroll-event signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned.

Whether this event is emitted is platform-dependent.

#### Parameters

status_icon | the object which received the signal. |
event | the GdkEventScroll which triggered this signal |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` to stop other handlers from being invoked for the event. `FALSE` to propagate the event further.

Flags: Run Last

### The `“size-changed”` signal

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

Gets emitted when the size available for the image changes, e.g. because the notification area got resized.

#### Parameters

status_icon | the object which received the signal |
size | the new size |
user_data | user data set when the signal handler was connected. |

#### Returns

`TRUE` if the icon was updated for the new size. Otherwise, GTK+ will scale the icon as necessary.

Flags: Run Last

Since 2.10