diff options
author | Andreas Kling <kling@serenityos.org> | 2021-11-24 13:12:09 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-11-24 13:52:01 +0100 |
commit | bde9c2bc65df955a12dd1270016de8a3aa1a50b4 (patch) | |
tree | c4243d1613c3363aae7b4817db40863eec02e958 /Userland/Libraries/LibGUI | |
parent | 6b79745aa46d7f240b5f671a9716b3231e707457 (diff) | |
download | serenity-bde9c2bc65df955a12dd1270016de8a3aa1a50b4.zip |
LibGUI: Add GUI::Window::try_add_menu()
This is a fallible variant of add_menu() that returns ErrorOr.
Diffstat (limited to 'Userland/Libraries/LibGUI')
-rw-r--r-- | Userland/Libraries/LibGUI/Window.cpp | 14 | ||||
-rw-r--r-- | Userland/Libraries/LibGUI/Window.h | 1 |
2 files changed, 11 insertions, 4 deletions
diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index b59cbc1fa6..d0e79ae667 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -1188,16 +1188,22 @@ Gfx::Bitmap* Window::back_bitmap() return m_back_store ? &m_back_store->bitmap() : nullptr; } -Menu& Window::add_menu(String name) +ErrorOr<NonnullRefPtr<Menu>> Window::try_add_menu(String name) { - Menu& menu = m_menubar->add_menu({}, move(name)); + auto menu = TRY(m_menubar->try_add_menu({}, move(name))); if (m_window_id) { - menu.realize_menu_if_needed(); - WindowServerConnection::the().async_add_menu(m_window_id, menu.menu_id()); + menu->realize_menu_if_needed(); + WindowServerConnection::the().async_add_menu(m_window_id, menu->menu_id()); } return menu; } +Menu& Window::add_menu(String name) +{ + auto menu = MUST(try_add_menu(move(name))); + return *menu; +} + bool Window::is_modified() const { if (!m_window_id) diff --git a/Userland/Libraries/LibGUI/Window.h b/Userland/Libraries/LibGUI/Window.h index 6723b9ee09..3e5ee31bbf 100644 --- a/Userland/Libraries/LibGUI/Window.h +++ b/Userland/Libraries/LibGUI/Window.h @@ -202,6 +202,7 @@ public: void did_disable_focused_widget(Badge<Widget>); Menu& add_menu(String name); + ErrorOr<NonnullRefPtr<Menu>> try_add_menu(String name); void flush_pending_paints_immediately(); |