LavaUI docs GitHub

message MenuItem

Control plane

Fields

checked: boolean

Only read for checkbox.

idl/lava.npidl:753

enabled: boolean

A greyed row that is still shown, which is the point: "Maximize" missing from a fullscreen window's menu moves every row below it, and a menu whose geometry changes with the window is a menu nobody builds muscle memory for.

idl/lava.npidl:758

id: u32

What the client echoes back in MenuReply.chosen when this row is picked. Opaque to it, and meaningful only to the compositor that sent it. Never 0 for a row that can be chosen — 0 is how a reply says "dismissed", so an item with that id would be indistinguishable from the user pressing Escape.

idl/lava.npidl:749

kind: MenuItemKind

Not documented.

idl/lava.npidl:751

parent: u32

0 for a row of the root menu. Otherwise the id of the submenu row this row sits under.

The list is flat because the wire has no recursion; the menu client builds the tree. A row whose parent is not a submenu in this same list is dropped rather than shown at the root — a parent that does not exist is a bug in the sender, and promoting the row would put a VPN's "Disconnect" next to "About".

idl/lava.npidl:771

shortcut: string

Right-aligned accelerator label — "Alt+F4". Cosmetic: the compositor already has these bindings and the menu never matches on this string. Empty for a row with no chord.

idl/lava.npidl:762

title: string

Not documented.

idl/lava.npidl:750