Detail

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 StatusIcon 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 StatusIcon, 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 statusIconIsEmbedded.

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 StatusIcon 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.

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.

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

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
statusIconIsEmbedded.