Copyright | (c) Sven Panne 2002-2018 |
---|---|
License | BSD3 |
Maintainer | Sven Panne <svenpanne@gmail.com> |
Stability | stable |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
GLUT supports simple cascading pop-up menus. They are designed to let a user select various modes within a program. The functionality is simple and minimalistic and is meant to be that way. Do not mistake GLUT's pop-up menu facility with an attempt to create a full-featured user interface.
Synopsis
- data Menu
- = Menu [MenuItem]
- | MenuWithFont BitmapFont [MenuItem]
- data MenuItem
- type MenuCallback = IO ()
- attachMenu :: MonadIO m => MouseButton -> Menu -> m ()
- numMenuItems :: GettableStateVar Int
Documentation
A menu is simply a list of menu items, possibly with an associated font.
A single item within a menu can either be a plain menu entry or a sub-menu entry, allowing for arbitrarily deep nested menus.
type MenuCallback = IO () Source #
attachMenu :: MonadIO m => MouseButton -> Menu -> m () Source #
Create a new pop-up menu for the current window, attaching it to the given mouse button. A previously attached menu (if any), is detached before and won't receive callbacks anymore.
It is illegal to call attachMenu
while any (sub-)menu is in use, i.e.
popped up.
X Implementation Notes: If available, GLUT for X will take advantage of
overlay planes for implementing pop-up menus. The use of overlay planes can
eliminate display callbacks when pop-up menus are deactivated. The
SERVER_OVERLAY_VISUALS
convention is used to determine if overlay visuals
are available.
numMenuItems :: GettableStateVar Int Source #
Contains the number of menu items in the current menu.