Loading...
Searching...
No Matches
ml::MenuItem Struct Reference

A single entry in a MenuBar dropdown or submenu. More...

#include <Malena/Graphics/Controls/MenuItem.h>

Public Member Functions

bool hasSubmenu () const

Static Public Member Functions

static MenuItem chk (const std::string &label, bool &ref, std::function< void()> onChange={})
 Checkable item that toggles a bool reference.
static MenuItem disabled (const std::string &label)
 Greyed-out non-interactive label.
static MenuItem item (const std::string &label, std::function< void()> action={}, const std::string &shortcut="", const sf::Texture *icon=nullptr)
 Standard clickable item.
static MenuItem sep ()
 Horizontal divider line.
static MenuItem sub (const std::string &label, std::vector< MenuItem > items)
 Item that opens a submenu.

Public Attributes

std::function< void()> action
bool checked = false
bool enabled = true
const sf::Textureicon = nullptr
std::string label
bool separator = false
std::string shortcut
std::vector< MenuItemsubmenu

Detailed Description

A single entry in a MenuBar dropdown or submenu.

Use the static factory helpers for clean construction:

bar.addMenu("File", {
ml::MenuItem::item("New", [&]{ newFile(); }, "Ctrl+N"),
ml::MenuItem::item("Open", [&]{ openFile(); }, "Ctrl+O"),
ml::MenuItem::item("Save", [&]{ save(); }, "Ctrl+S"),
ml::MenuItem::item("Quit", [&]{ app.quit(); }, "Ctrl+Q"),
});
bar.addMenu("Edit", {
ml::MenuItem::item("Undo", [&]{ undo(); }, "Ctrl+Z"),
ml::MenuItem::item("Redo", [&]{ redo(); }, "Ctrl+Y"),
ml::MenuItem::chk("Word wrap", wordWrap),
ml::MenuItem::sub("Insert", {
}),
});
A desktop-style horizontal menu bar with dropdown panels.
Definition MenuBar.h:79
void addMenu(const std::string &label, std::vector< MenuItem > items)
Add a top-level menu entry with its dropdown items.
static MenuItem chk(const std::string &label, bool &ref, std::function< void()> onChange={})
Checkable item that toggles a bool reference.
Definition MenuItem.h:76
static MenuItem sep()
Horizontal divider line.
Definition MenuItem.h:101
static MenuItem item(const std::string &label, std::function< void()> action={}, const std::string &shortcut="", const sf::Texture *icon=nullptr)
Standard clickable item.
Definition MenuItem.h:62
static MenuItem sub(const std::string &label, std::vector< MenuItem > items)
Item that opens a submenu.
Definition MenuItem.h:91
See also
MenuBar

Definition at line 48 of file MenuItem.h.

Member Function Documentation

◆ chk()

MenuItem ml::MenuItem::chk ( const std::string & label,
bool & ref,
std::function< void()> onChange = {} )
inlinestatic

Checkable item that toggles a bool reference.

Definition at line 76 of file MenuItem.h.

◆ disabled()

MenuItem ml::MenuItem::disabled ( const std::string & label)
inlinestatic

Greyed-out non-interactive label.

Definition at line 109 of file MenuItem.h.

◆ hasSubmenu()

bool ml::MenuItem::hasSubmenu ( ) const
inlinenodiscard

Definition at line 117 of file MenuItem.h.

◆ item()

MenuItem ml::MenuItem::item ( const std::string & label,
std::function< void()> action = {},
const std::string & shortcut = "",
const sf::Texture * icon = nullptr )
inlinestatic

Standard clickable item.

Definition at line 62 of file MenuItem.h.

◆ sep()

MenuItem ml::MenuItem::sep ( )
inlinestatic

Horizontal divider line.

Definition at line 101 of file MenuItem.h.

◆ sub()

MenuItem ml::MenuItem::sub ( const std::string & label,
std::vector< MenuItem > items )
inlinestatic

Item that opens a submenu.

Definition at line 91 of file MenuItem.h.

Member Data Documentation

◆ action

std::function<void()> ml::MenuItem::action

Definition at line 56 of file MenuItem.h.

◆ checked

bool ml::MenuItem::checked = false

Definition at line 53 of file MenuItem.h.

◆ enabled

bool ml::MenuItem::enabled = true

Definition at line 54 of file MenuItem.h.

◆ icon

const sf::Texture* ml::MenuItem::icon = nullptr

Definition at line 52 of file MenuItem.h.

◆ label

std::string ml::MenuItem::label

Definition at line 50 of file MenuItem.h.

◆ separator

bool ml::MenuItem::separator = false

Definition at line 55 of file MenuItem.h.

◆ shortcut

std::string ml::MenuItem::shortcut

Definition at line 51 of file MenuItem.h.

◆ submenu

std::vector<MenuItem> ml::MenuItem::submenu

Definition at line 57 of file MenuItem.h.


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