uni-htk-2.2.0.0: HTk/Canvasitems/Rectangle.hs
-- | HTk\'s /rectangle/ canvas item.
-- A rectangle object on a canvas widget.
module HTk.Canvasitems.Rectangle (
Rectangle,
createRectangle
) where
import HTk.Kernel.Core
import HTk.Kernel.Configuration
import HTk.Canvasitems.CanvasItem
import HTk.Canvasitems.CanvasTag
import HTk.Canvasitems.CanvasItemAux
import Events.Destructible
import Util.Computation
import Events.Synchronized
-- -----------------------------------------------------------------------
-- datatype
-- -----------------------------------------------------------------------
-- | The @Rectangle@ datatype.
newtype Rectangle = Rectangle GUIOBJECT deriving Eq
-- -----------------------------------------------------------------------
-- construction
-- -----------------------------------------------------------------------
-- | Constructs a new rectangle item.
createRectangle :: Canvas
-- ^ the parent canvas.
-> [Config Rectangle]
-- ^ the list of configuration options for this rectangle
-- item.
-> IO Rectangle
-- ^ A rectangle item.
createRectangle cnv cnf =
createCanvasItem cnv RECTANGLE Rectangle cnf [(-1,-1),(-1,-1)]
-- -----------------------------------------------------------------------
-- instances
-- -----------------------------------------------------------------------
-- | Internal.
instance GUIObject Rectangle where
toGUIObject (Rectangle w) = w
cname _ = "Rectangle"
-- | A rectangle item can be destroyed.
instance Destroyable Rectangle where
-- Destroys a rectangle item.
destroy = destroy . toGUIObject
-- | You can synchronize on a rectangle item.
instance Synchronized Rectangle where
-- Synchronize on a rectangle item.
synchronize = synchronize . toGUIObject
-- | A rectangle item is a canvas item (any canvas item is an instance of
-- the abstract @class CanvasItem@).
instance CanvasItem Rectangle
-- | A rectangle item can have several tags (handlers for a set of canvas
-- items).
instance TaggedCanvasItem Rectangle
-- | A rectangle item is a filled canvas item (it has filling, outline,
-- outline width, and stipple configurations).
instance FilledCanvasItem Rectangle
-- | An alternative way to specify a rectangle\'s coords.
instance HasGeometry Rectangle where
-- Sets the geometry of a rectangle (width, height, upper left position).
geometry = itemGeo
-- Gets the geometry of a rectangle (width, height, upper left position).
getGeometry = getGeo
-- | You can specify the (upper left) position of a rectangle.
instance HasPosition Rectangle where
-- Sets the (upper left) position of a rectangle.
position = itemPosition
-- Gets the (upper left) position of a rectangle.
getPosition = getItemPosition
-- | You can specify the size of an rectangle item.
instance HasSize Rectangle where
-- Sets the width of a rectangle item.
width = itemWidth
-- Gets the width of a rectangle item.
getWidth = getItemWidth
-- Sets the height of a rectangle item.
height = itemHeight
-- Gets the height of a rectangle item.
getHeight = getItemHeight
-- Sets the size (width, height) of a rectangle item.
size = itemSize
-- Gets the size (width, height) of a rectangle item.
getSize = getItemSize