Portability | portable (depends on GHC) |
---|---|
Stability | provisional |
Maintainer | gtk2hs-users@lists.sourceforge.net |
Safe Haskell | Safe-Infered |
Manipulating stock icons
- data IconFactory
- class GObjectClass o => IconFactoryClass o
- castToIconFactory :: GObjectClass obj => obj -> IconFactory
- gTypeIconFactory :: GType
- toIconFactory :: IconFactoryClass o => o -> IconFactory
- iconFactoryNew :: IO IconFactory
- iconFactoryAdd :: IconFactory -> StockId -> IconSet -> IO ()
- iconFactoryAddDefault :: IconFactory -> IO ()
- iconFactoryLookup :: IconFactory -> StockId -> IO (Maybe IconSet)
- iconFactoryLookupDefault :: StockId -> IO (Maybe IconSet)
- iconFactoryRemoveDefault :: IconFactory -> IO ()
- data IconSet
- iconSetNew :: IO IconSet
- iconSetNewFromPixbuf :: Pixbuf -> IO IconSet
- iconSetAddSource :: IconSet -> IconSource -> IO ()
- iconSetRenderIcon :: WidgetClass widget => IconSet -> TextDirection -> StateType -> IconSize -> widget -> IO Pixbuf
- iconSetGetSizes :: IconSet -> IO [IconSize]
- data IconSource
- iconSourceNew :: IO IconSource
- data TextDirection
- = TextDirNone
- | TextDirLtr
- | TextDirRtl
- iconSourceGetDirection :: IconSource -> IO (Maybe TextDirection)
- iconSourceSetDirection :: IconSource -> TextDirection -> IO ()
- iconSourceResetDirection :: IconSource -> IO ()
- iconSourceGetFilename :: IconSource -> IO (Maybe String)
- iconSourceSetFilename :: IconSource -> FilePath -> IO ()
- iconSourceGetPixbuf :: IconSource -> IO (Maybe Pixbuf)
- iconSourceSetPixbuf :: IconSource -> Pixbuf -> IO ()
- iconSourceGetSize :: IconSource -> IO (Maybe IconSize)
- iconSourceSetSize :: IconSource -> IconSize -> IO ()
- iconSourceResetSize :: IconSource -> IO ()
- data StateType
- iconSourceGetState :: IconSource -> IO (Maybe StateType)
- iconSourceSetState :: IconSource -> StateType -> IO ()
- iconSourceResetState :: IconSource -> IO ()
- data IconSize
- iconSizeCheck :: IconSize -> IO Bool
- iconSizeRegister :: String -> Int -> Int -> IO IconSize
- iconSizeRegisterAlias :: IconSize -> String -> IO ()
- iconSizeFromName :: String -> IO IconSize
- iconSizeGetName :: IconSize -> IO (Maybe String)
Detail
Browse the available stock icons in the list of stock IDs found here. You can also use the gtk-demo application for this purpose.
An icon factory manages a collection of IconSet
; a IconSet
manages a
set of variants of a particular icon (i.e. a IconSet
contains variants for
different sizes and widget states). Icons in an icon factory are named by a
stock ID, which is a simple string identifying the icon. Each Style
has a
list of IconFactory
derived from the current theme; those icon factories
are consulted first when searching for an icon. If the theme doesn't set a
particular icon, Gtk+ looks for the icon in a list of default icon
factories, maintained by iconFactoryAddDefault
and
iconFactoryRemoveDefault
. Applications with icons should add a default
icon factory with their icons, which will allow themes to override the icons
for the application.
To display an icon, always use
styleLookupIconSet
on the widget that
will display the icon, or the convenience function
widgetRenderIcon
. These
functions take the theme into account when looking up the icon to use for a
given stock ID.
Class Hierarchy
| GObject
| +----IconFactory
Types
data IconFactory Source
class GObjectClass o => IconFactoryClass o Source
castToIconFactory :: GObjectClass obj => obj -> IconFactorySource
toIconFactory :: IconFactoryClass o => o -> IconFactorySource
Constructors
iconFactoryNew :: IO IconFactorySource
Create a new IconFactory.
- An application should create a new
IconFactory
and add all needed icons. By callingiconFactoryAddDefault
these icons become available as stock objects and can easily be displayed byImage
. Furthermore, a theme can override the icons defined by the application.
Methods
iconFactoryAdd :: IconFactory -> StockId -> IconSet -> IO ()Source
Add an IconSet to an IconFactory.
In order to use the new stock object, the factory as to be added to the
default factories by iconFactoryAddDefault
.
iconFactoryAddDefault :: IconFactory -> IO ()Source
Add all entries of the IconFactory to the applications stock object database.
iconFactoryLookup :: IconFactory -> StockId -> IO (Maybe IconSet)Source
Looks up the stock id in the icon factory, returning an icon set if found, otherwise Nothing.
For display to the user, you should use
styleLookupIconSet
on the
Style
for the widget that will display the icon, instead of using this function
directly, so that themes are taken into account.
iconFactoryLookupDefault :: StockId -> IO (Maybe IconSet)Source
Looks for an icon in the list of default icon factories.
For display to the user, you should use
styleLookupIconSet
on the
Style
for the widget that will display the icon, instead of using this function
directly, so that themes are taken into account.
iconFactoryRemoveDefault :: IconFactory -> IO ()Source
Remove an IconFactory from the application's stock database.
iconSetNew :: IO IconSetSource
Create a new IconSet.
- Each icon in an application is contained in an
IconSet
. TheIconSet
contains several variants (IconSource
s) to accomodate for different sizes and states.
iconSetNewFromPixbuf :: Pixbuf -> IO IconSetSource
Creates a new IconSet
with the given pixbuf as the default/fallback
source image. If you don't add any additional IconSource to the icon set,
all variants of the icon will be created from the pixbuf, using scaling,
pixelation, etc. as required to adjust the icon size or make the icon look
insensitive/prelighted.
iconSetAddSource :: IconSet -> IconSource -> IO ()Source
Add an IconSource
(an Icon with
attributes) to an IconSet
.
- If an icon is looked up in the IconSet
set
the best matching IconSource will be taken. It is therefore advisable to add a default (wildcarded) icon, than can be used if no exact match is found.
iconSetRenderIcon :: WidgetClass widget => IconSet -> TextDirection -> StateType -> IconSize -> widget -> IO PixbufSource
iconSetGetSizes :: IconSet -> IO [IconSize]Source
Obtains a list of icon sizes this icon set can render.
data IconSource Source
iconSourceNew :: IO IconSourceSource
Create a new IconSource.
- An IconSource is a single image that is usually added to an IconSet. Next to the image it contains information about which state, text direction and size it should apply.
data TextDirection Source
iconSourceGetDirection :: IconSource -> IO (Maybe TextDirection)Source
Retrieve the TextDirection
of
this IconSource.
-
Nothing
is returned if no explicit direction was set.
iconSourceSetDirection :: IconSource -> TextDirection -> IO ()Source
Mark this IconSource
that it
should only apply to the specified TextDirection
.
iconSourceResetDirection :: IconSource -> IO ()Source
Reset the specific
TextDirection
set with iconSourceSetDirection
.
iconSourceGetFilename :: IconSource -> IO (Maybe String)Source
Retrieve the filename this IconSource was based on.
- Returns
Nothing
if the IconSource was generated by a Pixbuf.
iconSourceSetFilename :: IconSource -> FilePath -> IO ()Source
Load an icon picture from this filename.
iconSourceGetPixbuf :: IconSource -> IO (Maybe Pixbuf)Source
Retrieves the source pixbuf, or Nothing if none is set.
iconSourceSetPixbuf :: IconSource -> Pixbuf -> IO ()Source
Sets a pixbuf to use as a base image when creating icon variants for
IconSet
.
iconSourceGetSize :: IconSource -> IO (Maybe IconSize)Source
Retrieve the IconSize
of this
IconSource.
-
Nothing
is returned if no explicit size was set (i.e. thisIconSource
matches all sizes).
iconSourceSetSize :: IconSource -> IconSize -> IO ()Source
Set this IconSource
to a specific
size.
iconSourceResetSize :: IconSource -> IO ()Source
Reset the IconSize
of this
IconSource
so that is matches anything.
Widget states
iconSourceGetState :: IconSource -> IO (Maybe StateType)Source
Retrieve the StateType
of this
IconSource
.
-
Nothing
is returned if theIconSource
matches all states.
iconSourceSetState :: IconSource -> StateType -> IO ()Source
Mark this icon to be used only with this specific state.
iconSourceResetState :: IconSource -> IO ()Source
Reset the StateType
of this
IconSource
so that is matches anything.
The size of an icon in pixels.
- This enumeration contains one case that is not exported and which
is used when new sizes are registered using
iconSizeRegister
. - Applying
show
to this type will reveal the name of the size that is registered with Gtk+.
IconSizeInvalid | Don't scale but use any of the available sizes. |
IconSizeMenu | Icon size to use in next to menu items in drop-down menus. |
IconSizeSmallToolbar | Icon size for small toolbars. |
IconSizeLargeToolbar | Icon size for larger toolbars. |
IconSizeButton | Icon size for icons in buttons, next to the label. |
IconSizeDnd | Icon size for icons in drag-and-drop. |
IconSizeDialog | Icon size for icons next to dialog text. |
IconSizeUser Int |
iconSizeCheck :: IconSize -> IO BoolSource
Check if a given IconSize is registered.
- Useful if your application expects a theme to install a set with a specific size. You can test if this actually happend and use another size if not.
:: String | the new name of the size |
-> Int | the width of the icon |
-> Int | the height of the icon |
-> IO IconSize | the new icon size |
Register a new IconSize.
iconSizeFromName :: String -> IO IconSizeSource
Lookup an IconSize by name.
- This fixed value
iconSizeInvalid
is returned if the name was not found.