mirror of
https://github.com/RGBCube/serenity
synced 2025-05-24 18:05:09 +00:00
LibGUI: Allow adding previously constructed menus to Menubar
This commit is contained in:
parent
9cf93528f5
commit
c88d77361c
4 changed files with 18 additions and 0 deletions
|
@ -10,6 +10,12 @@
|
||||||
|
|
||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
|
ErrorOr<void> Menubar::try_add_menu(Badge<Window>, NonnullRefPtr<Menu> menu)
|
||||||
|
{
|
||||||
|
TRY(m_menus.try_append(menu));
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
ErrorOr<NonnullRefPtr<Menu>> Menubar::try_add_menu(Badge<Window>, String name)
|
ErrorOr<NonnullRefPtr<Menu>> Menubar::try_add_menu(Badge<Window>, String name)
|
||||||
{
|
{
|
||||||
auto menu = TRY(try_add<Menu>(move(name)));
|
auto menu = TRY(try_add<Menu>(move(name)));
|
||||||
|
|
|
@ -23,6 +23,7 @@ class Menubar : public Core::Object {
|
||||||
public:
|
public:
|
||||||
virtual ~Menubar() override = default;
|
virtual ~Menubar() override = default;
|
||||||
|
|
||||||
|
ErrorOr<void> try_add_menu(Badge<Window>, NonnullRefPtr<Menu>);
|
||||||
ErrorOr<NonnullRefPtr<Menu>> try_add_menu(Badge<Window>, String name);
|
ErrorOr<NonnullRefPtr<Menu>> try_add_menu(Badge<Window>, String name);
|
||||||
Menu& add_menu(Badge<Window>, String name);
|
Menu& add_menu(Badge<Window>, String name);
|
||||||
|
|
||||||
|
|
|
@ -1272,6 +1272,16 @@ Gfx::Bitmap* Window::back_bitmap()
|
||||||
return m_back_store ? &m_back_store->bitmap() : nullptr;
|
return m_back_store ? &m_back_store->bitmap() : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrorOr<void> Window::try_add_menu(NonnullRefPtr<Menu> menu)
|
||||||
|
{
|
||||||
|
TRY(m_menubar->try_add_menu({}, move(menu)));
|
||||||
|
if (m_window_id) {
|
||||||
|
menu->realize_menu_if_needed();
|
||||||
|
ConnectionToWindowServer::the().async_add_menu(m_window_id, menu->menu_id());
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
ErrorOr<NonnullRefPtr<Menu>> Window::try_add_menu(String name)
|
ErrorOr<NonnullRefPtr<Menu>> Window::try_add_menu(String name)
|
||||||
{
|
{
|
||||||
auto menu = TRY(m_menubar->try_add_menu({}, move(name)));
|
auto menu = TRY(m_menubar->try_add_menu({}, move(name)));
|
||||||
|
|
|
@ -222,6 +222,7 @@ public:
|
||||||
|
|
||||||
Menu& add_menu(String name);
|
Menu& add_menu(String name);
|
||||||
ErrorOr<NonnullRefPtr<Menu>> try_add_menu(String name);
|
ErrorOr<NonnullRefPtr<Menu>> try_add_menu(String name);
|
||||||
|
ErrorOr<void> try_add_menu(NonnullRefPtr<Menu> menu);
|
||||||
void flash_menubar_menu_for(MenuItem const&);
|
void flash_menubar_menu_for(MenuItem const&);
|
||||||
|
|
||||||
void flush_pending_paints_immediately();
|
void flush_pending_paints_immediately();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue