GLUT- A binding for the OpenGL Utility ToolkitSource codeContentsIndex
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.
newtype Menu = Menu [MenuItem]
data MenuItem
= MenuEntry String MenuCallback
| SubMenu String Menu
type MenuCallback = IO ()
attachMenu :: MouseButton -> Menu -> IO ()
numMenuItems :: GettableStateVar Int
newtype Menu Source
A menu is simply a list of menu items.
Menu [MenuItem]
data MenuItem Source
A single item within a menu can either be a plain menu entry or a sub-menu entry, allowing for arbitrarily deep nested menus.
MenuEntry String MenuCallbackA plain menu entry with an associated callback, which is triggered when the user selects the entry
SubMenu String MenuA sub-menu, which is cascaded when the user selects the entry, allowing sub-menu entries to be selected
type MenuCallback = IO ()Source
attachMenu :: MouseButton -> Menu -> IO ()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 IntSource
Contains the number of menu items in the current menu.
Produced by Haddock version 0.8