uni-htk-2.2.0.0: HTk/Menuitems/MenuSeparator.hs
-- | HTk\'s /menu separator/.
-- A simple separator to group menu entries.
module HTk.Menuitems.MenuSeparator (
MenuSeparator,
createMenuSeparator
) where
import HTk.Kernel.Core
import HTk.Kernel.Configuration
import HTk.Kernel.Resources
import HTk.Menuitems.MenuItem
import HTk.Menuitems.Menu
import Events.Synchronized
import Util.Computation
-- -----------------------------------------------------------------------
-- datatype
-- -----------------------------------------------------------------------
-- | The @MenuSeparator@ datatype.
data MenuSeparator = MenuSeparator GUIOBJECT deriving Eq
-- -----------------------------------------------------------------------
-- creation
-- -----------------------------------------------------------------------
-- | Constructs a new menu separator and returns a handler.
createMenuSeparator :: Menu
-- ^ the parent menu.
-> [Config MenuSeparator]
-- ^ the list of configuration options for this menu
-- separator.
-> IO MenuSeparator
-- ^ A menu separator.
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
toGUIObject (MenuSeparator w) = w
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