diff options
Diffstat (limited to 'Servers/WindowServer/WSMenuManager.h')
-rw-r--r-- | Servers/WindowServer/WSMenuManager.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Servers/WindowServer/WSMenuManager.h b/Servers/WindowServer/WSMenuManager.h index 4e4393dcb9..37079ba956 100644 --- a/Servers/WindowServer/WSMenuManager.h +++ b/Servers/WindowServer/WSMenuManager.h @@ -23,7 +23,16 @@ public: void set_needs_window_resize(); + WSMenu* current_menu() { return m_current_menu.ptr(); } + void set_current_menu(WSMenu*, bool is_submenu = false); + + void close_everyone(); + void close_everyone_not_in_lineage(WSMenu&); + void close_menu_and_descendants(WSMenu&); + private: + void close_menus(const Vector<WSMenu*>&); + WSWindow& window() { return *m_window; } const WSWindow& window() const { return *m_window; } @@ -37,6 +46,7 @@ private: String m_username; RefPtr<CTimer> m_timer; + WeakPtr<WSMenu> m_current_menu; Vector<WeakPtr<WSMenu>> m_open_menu_stack; bool m_needs_window_resize; |