mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 11:07:35 +00:00
LibGUI+WindowServer: Add "visible" state to GUI actions
This patch adds a visibility state to GUI::Action. All actions default to being visible. When invisible, they do not show up in toolbars on menus (and importantly, they don't occupy any space). This can be used to hide/show context-sensitive actions dynamically without rebuilding menus and toolbars. Thanks to Tim Slater for assuming that action visibility was a thing, which gave me a reason to implement it! :^)
This commit is contained in:
parent
df7c0eacd4
commit
49f5767789
13 changed files with 88 additions and 14 deletions
|
@ -81,6 +81,9 @@ public:
|
|||
Window* menu_window() { return m_menu_window.ptr(); }
|
||||
Window& ensure_menu_window(Gfx::IntPoint);
|
||||
|
||||
// Invalidates the menu window so that it gets rebuilt the next time it's showed.
|
||||
void invalidate_menu_window();
|
||||
|
||||
Window* window_menu_of() { return m_window_menu_of; }
|
||||
void set_window_menu_of(Window& window) { m_window_menu_of = window; }
|
||||
bool is_window_menu_open() const { return m_is_window_menu_open; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue