module Menu:sig
..end
Various types of menus.
The generic Menu.create
function produces menus whose entries can be arbitrary
layouts located at arbitrary places. But for usual entries, it is enough to
provide a string for the entry label, and the layout will be constructed
automatically.
The specialized Menu.bar
function will produce a familiar menu bar with drop-down
submenus.
type
t
typeaction =
unit -> unit
type
label =
| |
Text of |
| |
Layout of |
type
entry = {
|
label : |
|
content : |
}
type
content =
| |
Action of |
|||
| |
Flat of |
(* | A Flat content will produce a horizontal menu | *) |
| |
Tower of |
(* | A Tower content will produce a vertical menu | *) |
| |
Custom of |
(* | In a Custom content, only Layout labels should be used, and their position should be defined before creating the menu. | *) |
| |
Separator |
(* | Currently only used for inserting separator lines in Tower menus. | *) |
val create : ?dst:Layout.t -> content -> t
Generic menu creation, inserted in the dst
layout.
val add_bar : dst:Layout.t -> entry list -> unit
Creation of a menu bar in the dst
layout, with drop-down submenus.
bar dst entries
inserts a layout which contains the menu bar into the top of
the dst
layout (so, some room should be provided). The dst
layout
should be big enough to contain the submenus. Any item flowing out of dst
will not get focus.
val bar : entry list -> Layout.t
Return a menu layout that will be installed with Menu.add_bar
into the top
house at startup.
val separator : entry