![]() |
Deluge Firmware 1.3.0
Build date: 2025.11.26
|

Public Attributes | |
| cpp_name = cpp_name | |
| clazz = clazz | |
| title = name | |
| name = title | |
| arg_template = arg_template | |
| description = description | |
| available_when = None | |
Base class for all menus descriptors.
You probably want a subclass of this class if the Menu on the C++ side has
any special behavior:
* If the menu contains others (it's a ``Submenu`` subclass in C++) then you
probably want a :py:class:`Submenu` instead.
* If the menu appears only in a single submenu but can change its name and
behavior depending on other system state, you want a
:py:class:`MultiModeMenu`
* If the menu appears in multiple submenus but has a different meaning in
each, you want to define a :py:class:`MultiContextMenu` somewhere and
use :py:meth:`MultiContextMenu.with_context` to instantiate it when it's
used.
TODO - Additional support is needed for capturing the following pieces of
documentaiton-relavant information:
- Whether a given menu item supports MIDI mapping (this should also be
integrated into codegen).
- Whether a given menu item supports the kit "holding affect all"
behavior (this would be nice to integrate into codegen but is harder).
- Maybe some sort of stable identifier for linking purposes?
:param clazz: The C++ class to use for this menu item.
:param cpp_name: The variable name to use when emitting C++ code.
:param arg_template: A list of Python format strings which will be used to
generate the C++ initializer arguments.
:param description: Path to the description of this menu, relative to
``docs/menu``. Can be None, for menus which expect their children to be
rendered as siblings of themselves rather than rendering themselves.
:param name: The key in the langauge map for the string to be rendered when
this menu item is presented for selection in a submenu. If None,
inherited from ``title``. At least one of ``name`` or ``title`` must be
provided.
:param title: The key in the language map for the header of this menu item
when it's opened. If None, inherited from ``name``. At least one of
``name`` or ``title`` must be provided.
:param available_when: A human-readable description of when this menu item
is available, if it's only available in certain contexts or when the
system is in a particular state. A value of None (the default)
indicates this menu item is always available.