uni-htk-2.2.0.0: HTk/Canvasitems/Polygon.hs
-- | HTk\'s /polygon/ canvas item.
-- A polygon object on a canvas widget.
module HTk.Canvasitems.Polygon (
Polygon,
createPolygon
) where
import HTk.Kernel.Core
import HTk.Canvasitems.CanvasItem
import HTk.Canvasitems.CanvasTag
import HTk.Canvasitems.CanvasItemAux
import Events.Synchronized
import Util.Computation
import Events.Destructible
-- -----------------------------------------------------------------------
-- Polygon
-- -----------------------------------------------------------------------
-- | The @Polygon@ datatype.
newtype Polygon = Polygon GUIOBJECT deriving Eq
-- -----------------------------------------------------------------------
-- Constructor
-- -----------------------------------------------------------------------
-- | Constructs a new polygon item.
createPolygon :: Canvas
-- ^ the parent canvas.
-> [Config Polygon]
-- ^ the list of configuration options for this polygon
-- item.
-> IO Polygon
-- ^ A polygon item.
createPolygon cnv cnf =
createCanvasItem cnv POLYGON Polygon cnf [(-1,-1),(-1,-1),(-1,-1)]
-- -----------------------------------------------------------------------
-- Instantiations
-- -----------------------------------------------------------------------
-- | Internal.
instance GUIObject Polygon where
toGUIObject (Polygon w) = w
cname _ = "Polygon"
-- | An polygon item can be destroyed.
instance Destroyable Polygon where
-- Destroys a polygon item.
destroy = destroy . toGUIObject
-- | You can synchronize on a polygon item.
instance Synchronized Polygon where
-- Synchronizes on a polygon item.
synchronize w = synchronize (toGUIObject w)
-- | A polygon item is a canvas item (any canvas item is an instance of the
-- abstract @class CanvasItem@).
instance CanvasItem Polygon
-- | A polygon item can have several tags (handlers for a set of canvas
-- items).
instance TaggedCanvasItem Polygon
-- | A polygon item is a filled canvas item (it has filling, outline,
-- outline width, and stipple configurations).
instance FilledCanvasItem Polygon
-- | A line is a segmented canvas item. It has a splinesteps and smooth
-- configuration.
instance SegmentedCanvasItem Polygon