| Gtk2Hs | Contents | Index

Graphics.UI.Gtk.Display.StatusIcon

Portability | portable (depends on GHC)
Stability | provisional
Maintainer | gtk2hs-users@lists.sourceforge.net

Contents

Detail
Class Hierarchy
Types
Constructors
Methods
Attributes
Signals
Deprecated

Description

Display an icon in the system tray

- Module available since Gtk+ version 2.10

Synopsis

data StatusIcon
class TreeSortableClass o => StatusIconClass o
castToStatusIcon :: GObjectClass obj => obj -> StatusIcon
toStatusIcon :: StatusIconClass o => o -> StatusIcon
statusIconNew :: IO StatusIcon
statusIconNewFromPixbuf :: Pixbuf -> IO StatusIcon
statusIconNewFromFile :: String -> IO StatusIcon
statusIconNewFromStock :: StockId -> IO StatusIcon
statusIconNewFromIconName :: String -> IO StatusIcon
statusIconSetFromPixbuf :: StatusIconClass self => self -> Pixbuf -> IO ()
statusIconSetFromFile :: StatusIconClass self => self -> String -> IO ()
statusIconSetFromStock :: StatusIconClass self => self -> StockId -> IO ()
statusIconSetFromIconName :: StatusIconClass self => self -> String -> IO ()
statusIconGetStorageType :: StatusIconClass self => self -> IO ImageType
statusIconGetPixbuf :: StatusIconClass self => self -> IO (Maybe Pixbuf)
statusIconGetStock :: StatusIconClass self => self -> IO (Maybe StockId)
statusIconGetIconName :: StatusIconClass self => self -> IO (Maybe String)
statusIconGetSize :: StatusIconClass self => self -> IO Int
statusIconSetTooltip :: StatusIconClass self => self -> String -> IO ()
statusIconSetVisible :: StatusIconClass self => self -> Bool -> IO ()
statusIconGetVisible :: StatusIconClass self => self -> IO Bool
statusIconSetBlinking :: StatusIconClass self => self -> Bool -> IO ()
statusIconGetBlinking :: StatusIconClass self => self -> IO Bool
statusIconIsEmbedded :: StatusIconClass self => self -> IO Bool
statusIconPositionMenu :: (MenuClass menu, StatusIconClass self) => menu -> self -> IO (Int, Int, Bool)
statusIconGetGeometry :: StatusIconClass self => self -> IO (Maybe (Rectangle, Orientation))
statusIconPixbuf :: StatusIconClass self => Attr self Pixbuf
statusIconFile :: StatusIconClass self => WriteAttr self (Maybe String)
statusIconStock :: StatusIconClass self => Attr self (Maybe String)
statusIconIconName :: StatusIconClass self => Attr self (Maybe String)
statusIconStorageType :: StatusIconClass self => ReadAttr self ImageType
statusIconSize :: StatusIconClass self => ReadAttr self Int
statusIconBlinking :: StatusIconClass self => Attr self Bool
statusIconVisible :: StatusIconClass self => Attr self Bool
statusIconSizeChanged :: StatusIconClass self => Signal self (Int -> IO Bool)
statusIconActivate :: StatusIconClass self => Signal self (IO ())
statusIconPopupMenu :: StatusIconClass self => Signal self (Maybe MouseButton -> TimeStamp -> IO ())
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)

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

GObjectClass StatusIcon
StatusIconClass StatusIcon
TreeSortableClass StatusIcon

class TreeSortableClass o => StatusIconClass o

Instances

StatusIconClass StatusIcon

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 |

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

:: StatusIconClass self |
=> self |
-> Pixbuf | `pixbuf` - a `Pixbuf`
-> IO () |
Makes `statusIcon` display `pixbuf`. See `statusIconNewFromPixbuf` for details.

statusIconSetFromFile

:: StatusIconClass self |
=> self |
-> String | `filename` - a filename
-> IO () |
Makes `statusIcon` display the file `filename`. See `statusIconNewFromFile` for details.

statusIconSetFromStock

:: StatusIconClass self |
=> self |
-> StockId | `stockId` - a stock icon id
-> IO () |
Makes `statusIcon` display the stock icon with the id `stockId`. See `statusIconNewFromStock` for details.

statusIconSetFromIconName

:: StatusIconClass self |
=> self |
-> String | `iconName` - an icon name
-> IO () |
Makes `statusIcon` display the icon named `iconName` from the current icon theme. See `statusIconNewFromIconName` for details.

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 Graphics.UI.Gtk.Display.Image.ImageEmpty.

statusIconGetPixbuf

:: StatusIconClass self |
=> self |
-> IO (Maybe Pixbuf) | returns the displayed pixbuf, or `Nothing` if the image is empty.

statusIconGetStock

:: StatusIconClass self |
=> self |
-> IO (Maybe StockId) | returns stock id of the displayed stock icon, or `Nothing` if the image is empty.

statusIconGetIconName

:: StatusIconClass self |
=> self |
-> IO (Maybe String) | returns name of the displayed icon, or `Nothing` if the image is empty.

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

:: StatusIconClass self |
=> self |
-> IO Bool | returns `True` if the icon is blinking
Returns whether the icon is blinking, see `statusIconSetBlinking`.

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: Graphics.UI.Gtk.Display.Image.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
statusIconSizeChanged :: 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.
statusIconActivate :: StatusIconClass self => Signal self (IO ())
Gets emitted when the user activates the status icon. If and how status icons can activated is platform-dependent.
statusIconPopupMenu :: 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 Graphics.UI.Gtk.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 2.4.2