From: <kr_...@us...> - 2003-04-01 23:54:24
|
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 ---- |