mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:38:11 +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
|
@ -1,4 +1,5 @@
|
|||
#include "WSMenuItem.h"
|
||||
#include "WSClientConnection.h"
|
||||
#include "WSMenu.h"
|
||||
#include <LibDraw/GraphicsBitmap.h>
|
||||
|
||||
|
@ -40,3 +41,10 @@ void WSMenuItem::set_checked(bool checked)
|
|||
m_checked = checked;
|
||||
m_menu.redraw();
|
||||
}
|
||||
|
||||
WSMenu* WSMenuItem::submenu()
|
||||
{
|
||||
ASSERT(is_submenu());
|
||||
ASSERT(m_menu.client());
|
||||
return m_menu.client()->find_menu_by_id(m_submenu_id);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue