-- -----------------------------------------------------------------------
--
-- $Source: /repository/uni/htk/menuitems/MenuSeparator.hs,v $
--
-- HTk - a GUI toolkit for Haskell - (c) Universitaet Bremen
--
-- $Revision: 1.3 $ from $Date: 2001/12/17 20:54:56 $
-- Last modification by $Author: ludi $
--
-- -----------------------------------------------------------------------
---
-- HTk's menu separator.
-- A simple separator to group menu entries.
module MenuSeparator (
MenuSeparator,
createMenuSeparator
) where
import Core
import Configuration
import Resources
import MenuItem
import Menu
import Synchronized
import Computation
-- -----------------------------------------------------------------------
-- datatype
-- -----------------------------------------------------------------------
---
-- The MenuSeparator datatype.
data MenuSeparator = MenuSeparator GUIOBJECT deriving Eq
-- -----------------------------------------------------------------------
-- creation
-- -----------------------------------------------------------------------
---
-- Constructs a new menu separator and returns a handler.
-- @param m - the parent menu.
-- @param cnf - the list of configuration options for this menu
-- separator.
-- @return result - A menu separator.
createMenuSeparator :: Menu -> [Config MenuSeparator] -> IO MenuSeparator
createMenuSeparator m cnf =
createMenuItem m MENUSEPARATOR MenuSeparator cnf
-- -----------------------------------------------------------------------
-- instances
-- -----------------------------------------------------------------------
---
-- A menu separator is a menu item (any menu item instantiates the
-- abstract class MenuItem).
instance MenuItem MenuSeparator
---
-- Internal.
instance GUIObject MenuSeparator where
---
-- Internal.
toGUIObject (MenuSeparator w) = w
---
-- Internal.
cname w = "MenuSeparator"
---
-- You can synchronize on a menu separator.
instance Synchronized MenuSeparator where
---
-- Synchronizes on a menu separator.
synchronize = synchronize . toGUIObject
---
-- A menu separator has a configureable border.
instance HasBorder MenuSeparator
---
-- A menu separator has either a vertival or a horizontal orientation.
instance HasOrientation MenuSeparator where
---
-- Sets the menu separators orientation.
orient Horizontal s = configure s [height 2] >> return s
orient Vertical s = configure s [width 2] >> return s
---
-- You can specify the size of a menu separator.
instance HasSize MenuSeparator