Update of /cvsroot/htoolkit/gio/src/Graphics/UI/GIO
In directory sc8-pr-cvs1:/tmp/cvs-serv606/gio/src/Graphics/UI/GIO
Modified Files:
Menu.hs
Log Message:
Implementation for SDI/MDI menu
Index: Menu.hs
===================================================================
RCS file: /cvsroot/htoolkit/gio/src/Graphics/UI/GIO/Menu.hs,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Menu.hs 26 Mar 2003 12:59:24 -0000 1.4
--- Menu.hs 1 Apr 2003 23:54:20 -0000 1.5
***************
*** 13,17 ****
module Graphics.UI.GIO.Menu
( -- * Menus
! Menu, menubar, submenu
-- * Menu items
-- ** Menu item
--- 13,17 ----
module Graphics.UI.GIO.Menu
( -- * Menus
! Menu, mainMenu, menu
-- * Menu items
-- ** Menu item
***************
*** 33,72 ****
--------------------------------------------------------------------}
-- | A menu is a widget that contains menu items or other (sub) menus.
! -- The top level menu is always a 'menubar'.
! data Menu = Menu{ hmenu :: MenuHandle
! , hwindow :: WindowHandle -- associated window
}
! -- | Create a menu bar on a window.
! --
! -- Menu bars can be shown using the 'Graphics.UI.GIO.Window.layout' attribute of the window.
! --
! -- > do w <- window []
! -- > mbar <- menubar [] w
! -- > set w [layout =: mbar]
! --
! -- They are always layed out as controls without any size, and are always rendered
! -- on top of the window view area, stretching horizontally.
! menubar :: [Prop Menu] -> Window -> IO Menu
! menubar props w
! = do mbar <- do hwnd <- get w windowHandle
! Lib.unregisterWindowMenus hwnd -- unregister previous menu handlers
! hbar <- Lib.createMenuBar hwnd -- set a fresh menu bar
! return (Menu hbar hwnd)
! set mbar props
! return mbar
!
! -- | Add a sub menu.
! submenu :: String -> [Prop Menu] -> Menu -> IO Menu
! submenu title props parent
! = do m <- do hmenu <- Lib.addSubMenu (hmenu parent) title
! return (Menu hmenu (hwindow parent))
set m props
return m
- instance Control Menu where
- pack m
- = stdPack (hwindow m) (return (Size 0 0)) (\r -> Lib.drawMenuBar (hwindow m))
-
{--------------------------------------------------------------------
Menu items
--- 33,51 ----
--------------------------------------------------------------------}
-- | A menu is a widget that contains menu items or other (sub) menus.
! -- The top level menu is always a 'mainMenu'.
! data Menu = Menu{ hmenu :: !MenuHandle
}
+ -- | The main application menu
+ mainMenu :: Menu
+ mainMenu = Menu Lib.mainMenu
! -- | Add a menu.
! menu :: String -> [Prop Menu] -> Menu -> IO Menu
! menu title props parent
! = do m <- do hmenu <- Lib.addMenu (hmenu parent) title
! return (Menu hmenu)
set m props
return m
{--------------------------------------------------------------------
Menu items
***************
*** 83,87 ****
menuitem title props menu
= do mitem <- do hitem <- Lib.addMenuItem (hmenu menu) Lib.KeyNull title
- Lib.registerWindowMenu (hwindow menu) hitem
vkey <- newVar Lib.KeyNull
return (MenuItem hitem menu title vkey)
--- 62,65 ----
|