mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:57:45 +00:00
WindowServer+LibGUI: Add support for nested menus
It's now possible to add a GMenu as a submenu of another GMenu. Simply use the GMenu::add_submenu(NonnullOwnPtr<GMenu>) API :^) The WindowServer now keeps track of a stack of open menus rather than just one "current menu". This code needs a bit more work, but the basic functionality is now here!
This commit is contained in:
parent
d3ebd8897f
commit
63e6b09816
16 changed files with 177 additions and 12 deletions
|
@ -78,11 +78,14 @@ public:
|
|||
|
||||
void draw_window_switcher();
|
||||
|
||||
WSMenuManager& menu_manager() { return m_menu_manager; }
|
||||
const WSMenuManager& menu_manager() const { return m_menu_manager; }
|
||||
|
||||
Rect menubar_rect() const;
|
||||
WSMenuBar* current_menubar() { return m_current_menubar.ptr(); }
|
||||
void set_current_menubar(WSMenuBar*);
|
||||
WSMenu* current_menu() { return m_current_menu.ptr(); }
|
||||
void set_current_menu(WSMenu*);
|
||||
void set_current_menu(WSMenu*, bool is_submenu = false);
|
||||
WSMenu* system_menu() { return m_system_menu.ptr(); }
|
||||
|
||||
const WSCursor& active_cursor() const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue