1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-29 04:05:11 +00:00

LibGUI: Add GUI::Window::try_add_menu()

This is a fallible variant of add_menu() that returns ErrorOr.
This commit is contained in:
Andreas Kling 2021-11-24 13:12:09 +01:00
parent 6b79745aa4
commit bde9c2bc65
2 changed files with 11 additions and 4 deletions

View file

@ -1188,16 +1188,22 @@ Gfx::Bitmap* Window::back_bitmap()
return m_back_store ? &m_back_store->bitmap() : nullptr; 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) { if (m_window_id) {
menu.realize_menu_if_needed(); menu->realize_menu_if_needed();
WindowServerConnection::the().async_add_menu(m_window_id, menu.menu_id()); WindowServerConnection::the().async_add_menu(m_window_id, menu->menu_id());
} }
return menu; return menu;
} }
Menu& Window::add_menu(String name)
{
auto menu = MUST(try_add_menu(move(name)));
return *menu;
}
bool Window::is_modified() const bool Window::is_modified() const
{ {
if (!m_window_id) if (!m_window_id)

View file

@ -202,6 +202,7 @@ public:
void did_disable_focused_widget(Badge<Widget>); void did_disable_focused_widget(Badge<Widget>);
Menu& add_menu(String name); Menu& add_menu(String name);
ErrorOr<NonnullRefPtr<Menu>> try_add_menu(String name);
void flush_pending_paints_immediately(); void flush_pending_paints_immediately();