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 text 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 -> tGeneric menu creation, inserted in the dst layout.
val add_bar : dst:Layout.t -> entry list -> unitCreation 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.tReturn a menu layout that will be installed with Menu.add_bar into the top
house at startup.
val separator : entry