Add native macOS global menu bar integration

Mirror UIMenuBar hierarchies into AppKit while keeping eepp menus as the
source of truth.

Add semantic item activation and menu lifecycle hooks so native actions,
lazy menus, checkboxes, radio buttons, visibility, enabled state, and
submenus preserve existing eepp behavior. Support shortcuts and standard
About, Preferences, Quit, Window, Help, and Services menu integration.

Keep the platform adapter private to the UI implementation and support
safe installation, synchronization, and removal of the native menu.

Migrate ecode away from its hand-written Cocoa menu, assign semantic menu
roles, and populate the UI Language submenu synchronously so it is ready
on its first opening.

Add unit tests covering activation, menu lifecycle, roles, and submenu
preparation.

Refs: SpartanJ/ecode#823
This commit is contained in:
Martín Lucas Golini
2026-08-24 02:38:36 -03:00
parent 6b27ea2dc8
commit 9752be89ad
24 changed files with 912 additions and 141 deletions
+3
View File
@@ -1181,6 +1181,9 @@
../../src/eepp/ui/uiloader.cpp
../../src/eepp/ui/uimanager.cpp
../../src/eepp/ui/uimenubar.cpp
../../src/eepp/ui/platformmenubar.hpp
../../src/eepp/ui/platformmenubar.cpp
../../src/eepp/ui/platform/macos/macosmenubar.m
../../src/eepp/ui/uimenucheckbox.cpp
../../src/eepp/ui/uimenu.cpp
../../src/eepp/ui/uimenuitem.cpp