Top |
Functions
Properties
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 |
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 System Tray Specification. Implementations of the “tray” side of this specification can be found e.g. in the GNOME 2 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.
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.
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.
Since 2.10
gtk_status_icon_new_from_stock ()
GtkStatusIcon *
gtk_status_icon_new_from_stock (const gchar *stock_id
);
gtk_status_icon_new_from_stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_status_icon_new_from_icon_name()
instead.
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()
.
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.
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.
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.
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.
Since 2.10
gtk_status_icon_set_from_stock ()
void gtk_status_icon_set_from_stock (GtkStatusIcon *status_icon
,const gchar *stock_id
);
gtk_status_icon_set_from_stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_status_icon_set_from_icon_name()
instead.
Makes status_icon
display the stock icon with the id stock_id
.
See gtk_status_icon_new_from_stock()
for details.
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.
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.
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
.
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.
Since 2.10
gtk_status_icon_get_stock ()
const gchar *
gtk_status_icon_get_stock (GtkStatusIcon *status_icon
);
gtk_status_icon_get_stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use gtk_status_icon_get_icon_name()
instead.
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.
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.
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;
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()
).
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.
Since 2.12
gtk_status_icon_get_screen ()
GdkScreen *
gtk_status_icon_get_screen (GtkStatusIcon *status_icon
);
Returns the GdkScreen associated with status_icon
.
Since 2.12
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()
.
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
.
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()
.
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
.
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.
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.
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.
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()
.
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.
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.
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()
.
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.
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. |
[out] |
y |
return location for the y position. |
[out] |
push_in |
whether the first menu item should be offset (pushed in) to be aligned with the menu popup position (only useful for GtkOptionMenu). |
[out] |
user_data |
the status icon to position the menu on. |
[type GtkStatusIcon] |
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 |
||
screen |
return location for
the screen, or |
[out][transfer none][allow-none] |
area |
return location for the area occupied by
the status icon, or |
[out][allow-none] |
orientation |
return location for the
orientation of the panel in which the status icon is embedded,
or |
[out][allow-none] |
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()
.
Since 2.14
Property Details
The “embedded”
property
“embedded” gboolean
TRUE
if the statusicon is embedded in a notification area.
Flags: Read
Default value: FALSE
Since 2.12
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 “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.
GtkStatusIcon:stock
has been deprecated since version 3.10 and should not be used in newly-written code.
Use “icon-name” instead.
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 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. |
[type Gdk.EventButton] |
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. |
[type Gdk.EventButton] |
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 hover 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 |
|
y |
the y coordinate of the cursor position where the request has been
emitted, relative to |
|
keyboard_mode |
|
|
tooltip |
||
user_data |
user data set when the signal handler was connected. |
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. |
[type Gdk.EventScroll] |
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.16
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