|
Graphics.UI.Gtk.Display.StatusIcon | Portability | portable (depends on GHC) | Stability | provisional | Maintainer | gtk2hs-users@lists.sourceforge.net |
|
|
|
|
|
Description |
Display an icon in the system tray
- Module available since Gtk+ version 2.10
|
|
Synopsis |
|
|
|
|
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.
|
|
Class Hierarchy
|
|
| GObject
| +----StatusIcon
|
|
Types
|
|
data StatusIcon |
Instances | |
|
|
class CellLayoutClass o => StatusIconClass o |
| Instances | |
|
|
castToStatusIcon :: GObjectClass obj => obj -> StatusIcon |
|
toStatusIcon :: StatusIconClass o => o -> StatusIcon |
|
Constructors
|
|
statusIconNew :: IO StatusIcon |
Creates an empty status icon object.
|
|
statusIconNewFromPixbuf |
:: Pixbuf | pixbuf - a Pixbuf
| -> IO StatusIcon | | Creates a status icon displaying pixbuf.
The image will be scaled down to fit in the available space in the
notification area, if necessary.
|
|
|
statusIconNewFromFile |
:: String | filename - a filename
| -> IO StatusIcon | | 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.
|
|
|
statusIconNewFromStock |
:: StockId | stockId - a stock icon id
| -> IO StatusIcon | | Creates a status icon displaying a stock icon. Sample stock icon names
are stockOpen, stockQuit. You can register your own stock icon names, see
iconFactoryAddDefault and iconFactoryAdd.
|
|
|
statusIconNewFromIconName |
:: String | iconName - an icon name
| -> IO StatusIcon | | 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.
|
|
|
Methods
|
|
statusIconSetFromPixbuf |
|
|
statusIconSetFromFile |
|
|
statusIconSetFromStock |
|
|
statusIconSetFromIconName |
|
|
statusIconGetStorageType |
:: StatusIconClass self | | => self | | -> IO ImageType | returns the image representation being used
| Gets the type of representation being used by the StatusIcon to store
image data. If the StatusIcon has no image data, the return value will be
ImageEmpty.
|
|
|
statusIconGetPixbuf |
:: StatusIconClass self | | => self | | -> IO (Maybe Pixbuf) | returns the displayed pixbuf, or Nothing if the
image is empty.
| Gets the Pixbuf being displayed by the StatusIcon. The storage type
of the status icon must be ImageEmpty or ImagePixbuf (see
statusIconGetStorageType). The caller of this function does not own a
reference to the returned pixbuf.
|
|
|
statusIconGetStock |
:: StatusIconClass self | | => self | | -> IO (Maybe StockId) | returns stock id of the displayed stock icon, or Nothing
if the image is empty.
| Gets the id of the stock icon being displayed by the StatusIcon. The
storage type of the status icon must be ImageEmpty or ImageStock (see
statusIconGetStorageType). The returned string is owned by the
StatusIcon and should not be freed or modified.
|
|
|
statusIconGetIconName |
:: StatusIconClass self | | => self | | -> IO (Maybe String) | returns name of the displayed icon, or Nothing
if the image is empty.
| Gets the name of the icon being displayed by the StatusIcon. The
storage type of the status icon must be ImageEmpty or ImageIconName (see
statusIconGetStorageType). The returned string is owned by the
StatusIcon and should not be freed or modified.
|
|
|
statusIconGetSize |
:: StatusIconClass self | | => self | | -> IO Int | returns the size that is available for the image
| 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.
|
|
|
statusIconSetTooltip |
:: StatusIconClass self | | => self | | -> String | tooltipText - the tooltip text
| -> IO () | | Sets the tooltip of the status icon.
|
|
|
statusIconSetVisible |
:: StatusIconClass self | | => self | | -> Bool | visible - True to show the status icon, False to hide it
| -> IO () | | Shows or hides a status icon.
|
|
|
statusIconGetVisible |
:: StatusIconClass self | | => self | | -> IO Bool | returns True if the status icon is visible
| 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
statusIconIsEmbedded.
|
|
|
statusIconSetBlinking |
:: StatusIconClass self | | => self | | -> Bool | blinking - True to turn blinking on, False to turn it off
| -> IO () | | 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.
|
|
|
statusIconGetBlinking |
|
|
statusIconIsEmbedded |
:: StatusIconClass self | | => self | | -> IO Bool | returns True if the status icon is embedded in a
notification area.
| Returns whether the status icon is embedded in a notification area.
|
|
|
statusIconPositionMenu |
:: (MenuClass menu, StatusIconClass self) | | => menu | menu - the Menu
| -> self | userData - the status icon to position the
menu on
| -> IO (Int, Int, Bool) | (x,y,pushIn) -
(x,y) - coordinates.
pushIn - whether the menu should be
pushed in to be completely inside the screen
instead of just clamped to the size to the
screen.
| Menu positioning function to use with menuPopup to position menu
aligned to the status icon userData.
|
|
|
statusIconGetGeometry :: StatusIconClass self => self -> IO (Maybe (Rectangle, 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.
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.
|
|
Attributes
|
|
statusIconPixbuf :: StatusIconClass self => Attr self Pixbuf |
A Pixbuf to display.
|
|
statusIconFile :: StatusIconClass self => WriteAttr self (Maybe String) |
Filename to load and display.
Default value: Nothing
|
|
statusIconStock :: StatusIconClass self => Attr self (Maybe String) |
Stock ID for a stock image to display.
Default value: Nothing
|
|
statusIconIconName :: StatusIconClass self => Attr self (Maybe String) |
The name of the icon from the icon theme.
Default value: Nothing
|
|
statusIconStorageType :: StatusIconClass self => ReadAttr self ImageType |
The representation being used for image data.
Default value: ImageEmpty
|
|
statusIconSize :: StatusIconClass self => ReadAttr self Int |
The size of the icon.
Allowed values: >= 0
Default value: 0
|
|
statusIconBlinking :: StatusIconClass self => Attr self Bool |
Whether or not the status icon is blinking.
Default value: False
|
|
statusIconVisible :: StatusIconClass self => Attr self Bool |
Whether or not the status icon is visible.
Default value: True
|
|
Signals
|
|
sizeChanged :: StatusIconClass self => Signal self (Int -> IO Bool) |
Gets emitted when the size available for the image changes, e.g. because
the notification area got resized.
|
|
activate :: StatusIconClass self => Signal self (IO ()) |
Gets emitted when the user activates the status icon.
If and how status icons can activated is platform-dependent.
|
|
popupMenu :: StatusIconClass self => Signal self (Maybe MouseButton -> TimeStamp -> IO ()) |
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 MouseButton and TimeStamp parameters should be
passed as the last to arguments to menuPopup.
|
|
Deprecated
|
|
onActivate :: StatusIconClass self => self -> IO () -> IO (ConnectId self) |
|
afterActivate :: StatusIconClass self => self -> IO () -> IO (ConnectId self) |
|
onPopupMenu :: StatusIconClass self => self -> (Maybe MouseButton -> TimeStamp -> IO ()) -> IO (ConnectId self) |
|
afterPopupMenu :: StatusIconClass self => self -> (Maybe MouseButton -> TimeStamp -> IO ()) -> IO (ConnectId self) |
|
onSizeChanged :: StatusIconClass self => self -> (Int -> IO Bool) -> IO (ConnectId self) |
|
afterSizeChanged :: StatusIconClass self => self -> (Int -> IO Bool) -> IO (ConnectId self) |
|
Produced by Haddock version 0.8 |