Menus
6/28/26Less than 1 minute
Menus
Two APIs coexist. Menus must be created before the first Window (enforced at runtime via MenuOrderException).
Declarative / Fluent Style
Menu::create('File')
->item('Open', fn (MenuItem $item) => /* ... */)
->separator()
->quitItem();
Menu::create('Edit')
->checkItem('Dark Mode', fn (MenuItem $item) => /* ... */);Imperative Style
$help = new Menu('Help');
$about = $help->appendAboutItem();
$about->onClick(fn (MenuItem $item) => /* ... */);Note
The patched MenuItem::onClick() replaces the handler on each call — it does NOT stack like most libui callbacks.