uni-htk-2.2.0.0: HTk/Widgets/Label.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleContexts #-}
-- | HTk\'s /label/ widget.
-- A label is a simple container for text or images\/bitmaps.
module HTk.Widgets.Label (
Label,
newLabel
) where
import HTk.Kernel.Core
import HTk.Kernel.BaseClasses(Widget)
import HTk.Kernel.Configuration
import HTk.Components.Image
import HTk.Components.BitMap
import Util.Computation
import Events.Destructible
import Events.Synchronized
import HTk.Kernel.Packer
import HTk.Kernel.Tooltip
-- -----------------------------------------------------------------------
-- datatype
-- -----------------------------------------------------------------------
-- | The @Label@ datatype.
newtype Label = Label GUIOBJECT deriving Eq
-- -----------------------------------------------------------------------
-- creation
-- -----------------------------------------------------------------------
-- | Constructs a new label widget and returns a handler.
newLabel :: Container par => par
-- ^ the parent widget, which has to be a container widget
-- (an instance of @class Container@).
-> [Config Label]
-- ^ the list of configuration options for this label.
-> IO Label
-- ^ A label widget.
newLabel par cnf =
do
w <- createWidget (toGUIObject par) LABEL
configure (Label w) cnf
-- -----------------------------------------------------------------------
-- instantiations
-- -----------------------------------------------------------------------
-- | Internal.
instance GUIObject Label where
toGUIObject (Label w) = w
cname _ = "Label"
-- | A label widget can be destroyed.
instance Destroyable Label where
-- Destroys a label widget.
destroy = destroy . toGUIObject
-- | A label widget has standard widget properties
-- (concerning focus, cursor).
instance Widget Label
-- | A label widget has a configureable border.
instance HasBorder Label
-- | A label widget has a foreground and background colour.
instance HasColour Label where
legalColourID = hasForeGroundColour
-- | You can specify the font of a label.
instance HasFont Label
-- | A label has a configureable text justification.
instance HasJustify Label
-- | A label can contain an image.
instance HasPhoto Label
-- | A label can contain a bitmap.
instance HasBitMap Label
-- | You can specify the size of a label.
instance HasSize Label
-- | You can set the index of a text character to underline.
instance HasUnderline Label
-- | A label can contain text.
instance GUIValue b => HasText Label b
-- | A label widget can have a tooltip (only displayed if you are using
-- tixwish).
instance HasTooltip Label
-- | You can synchronize on a label object.
instance Synchronized Label where
-- Synchronizes on a label object.
synchronize = synchronize . toGUIObject
-- | A label has a text anchor.
instance HasAnchor Label