GTK+ Reference Manual | ||||
---|---|---|---|---|
#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_screen (GtkStatusIcon *status_icon, GdkScreen *screen); GdkScreen* gtk_status_icon_get_screen (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);
"blinking" gboolean : Read / Write "embedded" gboolean : Read "file" gchararray : Write "icon-name" gchararray : Read / Write "orientation" GtkOrientation : Read "pixbuf" GdkPixbuf : Read / Write "screen" GdkScreen : Read / Write "size" gint : Read "stock" gchararray : Read / Write "storage-type" GtkImageType : Read "visible" gboolean : Read / Write
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.
GtkStatusIcon* gtk_status_icon_new (void);
Creates an empty status icon object.
Returns : | a new GtkStatusIcon |
Since 2.10
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.
pixbuf : |
a GdkPixbuf |
Returns : | a new GtkStatusIcon |
Since 2.10
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.
filename : |
a filename |
Returns : | a new GtkStatusIcon |
Since 2.10
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()
.
stock_id : |
a stock icon id |
Returns : | a new GtkStatusIcon |
Since 2.10
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.
icon_name : |
an icon name |
Returns : | a new GtkStatusIcon |
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
pixbuf : |
a GdkPixbuf or NULL
|
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
filename : |
a filename |
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
stock_id : |
a stock icon id |
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
icon_name : |
an icon name |
Since 2.10
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
.
status_icon : |
a GtkStatusIcon |
Returns : | the image representation being used |
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
Returns : | the displayed pixbuf, or NULL if the image is empty.
|
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
Returns : | stock id of the displayed stock icon,
or NULL if the image is empty.
|
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
Returns : | name of the displayed icon, or NULL if the image is empty.
|
Since 2.10
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()
).
status_icon : |
a GtkStatusIcon |
Returns : | the size that is available for the image |
Since 2.10
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.
status_icon : |
a GtkStatusIcon |
screen : |
a GdkScreen |
Since 2.12
GdkScreen* gtk_status_icon_get_screen (GtkStatusIcon *status_icon);
Returns the GdkScreen associated with status_icon
.
status_icon : |
a GtkStatusIcon |
Returns : | a GdkScreen. |
Since 2.12
void gtk_status_icon_set_tooltip (GtkStatusIcon *status_icon, const gchar *tooltip_text);
Sets the tooltip of the status icon.
status_icon : |
a GtkStatusIcon |
tooltip_text : |
the tooltip text, or NULL
|
Since 2.10
void gtk_status_icon_set_visible (GtkStatusIcon *status_icon, gboolean visible);
Shows or hides a status icon.
status_icon : |
a GtkStatusIcon |
visible : |
TRUE to show the status icon, FALSE to hide it
|
Since 2.10
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()
.
status_icon : |
a GtkStatusIcon |
Returns : | TRUE if the status icon is visible
|
Since 2.10
void gtk_status_icon_set_blinking (GtkStatusIcon *status_icon, gboolean blinking);
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.
status_icon : |
a GtkStatusIcon |
blinking : |
TRUE to turn blinking on, FALSE to turn it off
|
Since 2.10
gboolean gtk_status_icon_get_blinking (GtkStatusIcon *status_icon);
Returns whether the icon is blinking, see
gtk_status_icon_set_blinking()
.
status_icon : |
a GtkStatusIcon |
Returns : | TRUE if the icon is blinking
|
Since 2.10
gboolean gtk_status_icon_is_embedded (GtkStatusIcon *status_icon);
Returns whether the status icon is embedded in a notification area.
status_icon : |
a GtkStatusIcon |
Returns : | TRUE if the status icon is embedded in
a notification area.
|
Since 2.10
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
.
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
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()
.
status_icon : |
a GtkStatusIcon |
screen : |
return location for the screen, or NULL if the
information is not needed
|
area : |
return location for the area occupied by the status
icon, or NULL
|
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.
|
Returns : | TRUE if the location information has
been filled in
|
Since 2.10
"blinking"
property"blinking" gboolean : Read / Write
Whether or not the status icon is blinking.
Default value: FALSE
"embedded"
property"embedded" gboolean : Read
TRUE
if the statusicon is embedded in a notification area.
Default value: FALSE
Since 2.12
"icon-name"
property"icon-name" gchararray : Read / Write
The name of the icon from the icon theme.
Default value: NULL
"orientation"
property"orientation" GtkOrientation : Read
The orientation of the tray in which the statusicon is embedded.
Default value: GTK_ORIENTATION_HORIZONTAL
Since 2.12
"screen"
property"screen" GdkScreen : Read / Write
The screen where this status icon will be displayed.
"stock"
property"stock" gchararray : Read / Write
Stock ID for a stock image to display.
Default value: NULL
"storage-type"
property"storage-type" GtkImageType : Read
The representation being used for image data.
Default value: GTK_IMAGE_EMPTY
"visible"
property"visible" gboolean : Read / Write
Whether or not the status icon is visible.
Default value: TRUE
"activate"
signalvoid user_function (GtkStatusIcon *status_icon, gpointer user_data) : Run First / Action
Gets emitted when the user activates the status icon. If and how status icons can activated is platform-dependent.
status_icon : |
the object which received the signal |
user_data : |
user data set when the signal handler was connected. |
Since 2.10
"popup-menu"
signalvoid user_function (GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data) : Run First / Action
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_timeout
parameters should be
passed as the last to arguments to gtk_menu_popup()
.
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. |
Since 2.10
"size-changed"
signalgboolean user_function (GtkStatusIcon *status_icon, gint size, gpointer user_data) : Run Last
Gets emitted when the size available for the image changes, e.g. because the notification area got resized.
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.
|
Since 2.10