Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::view::MenuBar Class Reference

Cross-platform menu bar descriptor. More...

#include <app_framework.hpp>

Classes

struct  MenuItem
struct  Menu

Public Member Functions

void add_menu (std::string title, std::vector< MenuItem > items)
 Add a menu with items.
void set_key_mapping (const KeyMapping &keys)
 Build menus automatically from a KeyMapping's command categories.
const std::vector< Menu > & menus () const
 Get all menus for custom rendering (Linux, embedded).

Detailed Description

Cross-platform menu bar descriptor.

MenuBar owns menu titles, items, actions, shortcuts, enabled state, and submenu metadata. Hosts that need a platform menu should consume menus() and install their own backend.

MenuBar menu;
menu.set_key_mapping(keys); // auto-populates from commands
// Or build manually:
menu.add_menu("File", {
{"New", [&]{ new_project(); }, KeyShortcut{KeyCode::n, kModCmd}},
{"Open...", [&]{ open(); }, KeyShortcut{KeyCode::o, kModCmd}},
{}, // separator
{"Quit", [&]{ quit(); }, KeyShortcut{KeyCode::q, kModCmd}},
});
Cross-platform menu bar descriptor.
Definition app_framework.hpp:111
void add_menu(std::string title, std::vector< MenuItem > items)
Add a menu with items.
void set_key_mapping(const KeyMapping &keys)
Build menus automatically from a KeyMapping's command categories.
@ kModCmd
Command (macOS) — alias for platform primary modifier.
Definition input_events.hpp:21
@ q
Definition input_events.hpp:41
@ n
Definition input_events.hpp:40
@ o
Definition input_events.hpp:40
A keyboard shortcut (key + modifiers).
Definition app_framework.hpp:23

Member Function Documentation

◆ add_menu()

void pulp::view::MenuBar::add_menu ( std::string title,
std::vector< MenuItem > items )

Add a menu with items.

◆ menus()

const std::vector< Menu > & pulp::view::MenuBar::menus ( ) const
inline

Get all menus for custom rendering (Linux, embedded).

◆ set_key_mapping()

void pulp::view::MenuBar::set_key_mapping ( const KeyMapping & keys)

Build menus automatically from a KeyMapping's command categories.


The documentation for this class was generated from the following file: