diff --git a/Userland/Applications/3DFileViewer/main.cpp b/Userland/Applications/3DFileViewer/main.cpp index 27a1fe34bb8..aaed5b0dac1 100644 --- a/Userland/Applications/3DFileViewer/main.cpp +++ b/Userland/Applications/3DFileViewer/main.cpp @@ -206,8 +206,7 @@ int main(int argc, char** argv) window->set_double_buffering_enabled(true); auto& widget = window->set_main_widget(); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); auto load_model = [&](StringView const& filename) { if (widget.load(filename)) { @@ -229,7 +228,7 @@ int main(int argc, char** argv) app->quit(); })); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); view_menu.add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) { window->set_fullscreen(!window->is_fullscreen()); })); @@ -281,10 +280,9 @@ int main(int argc, char** argv) normal_rotation_action->set_checked(true); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("3D File Viewer", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); auto filename = argc > 1 ? argv[1] : "/home/anon/Documents/3D Models/teapot.obj"; diff --git a/Userland/Applications/Browser/BrowserWindow.cpp b/Userland/Applications/Browser/BrowserWindow.cpp index 01f0594d1b2..f732a08ea06 100644 --- a/Userland/Applications/Browser/BrowserWindow.cpp +++ b/Userland/Applications/Browser/BrowserWindow.cpp @@ -123,9 +123,7 @@ BrowserWindow::~BrowserWindow() void BrowserWindow::build_menus() { - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = add_menu("&File"); file_menu.add_action(WindowActions::the().create_new_tab_action()); auto close_tab_action = GUI::Action::create( @@ -141,7 +139,7 @@ void BrowserWindow::build_menus() GUI::Application::the()->quit(); })); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = add_menu("&View"); view_menu.add_action(WindowActions::the().show_bookmarks_bar_action()); view_menu.add_separator(); view_menu.add_action(GUI::CommonActions::make_fullscreen_action( @@ -169,7 +167,7 @@ void BrowserWindow::build_menus() m_reload_action = GUI::CommonActions::make_reload_action([this](auto&) { active_tab().reload(); }, this); m_reload_action->set_status_tip("Reload current page"); - auto& go_menu = menubar->add_menu("&Go"); + auto& go_menu = add_menu("&Go"); go_menu.add_action(*m_go_back_action); go_menu.add_action(*m_go_forward_action); go_menu.add_action(*m_go_home_action); @@ -235,7 +233,7 @@ void BrowserWindow::build_menus() this); m_inspect_dom_tree_action->set_status_tip("Open DOM inspector window for this page"); - auto& inspect_menu = menubar->add_menu("&Inspect"); + auto& inspect_menu = add_menu("&Inspect"); inspect_menu.add_action(*m_view_source_action); inspect_menu.add_action(*m_inspect_dom_tree_action); @@ -276,7 +274,7 @@ void BrowserWindow::build_menus() js_console_action->set_status_tip("Open JavaScript console for this page"); inspect_menu.add_action(js_console_action); - auto& settings_menu = menubar->add_menu("&Settings"); + auto& settings_menu = add_menu("&Settings"); m_change_homepage_action = GUI::Action::create( "Set Homepage URL", [this](auto&) { @@ -362,7 +360,7 @@ void BrowserWindow::build_menus() custom_search_engine_action->set_status_tip(g_search_engine); } - auto& debug_menu = menubar->add_menu("&Debug"); + auto& debug_menu = add_menu("&Debug"); debug_menu.add_action(GUI::Action::create( "Dump &DOM Tree", [this](auto&) { auto& tab = active_tab(); @@ -490,10 +488,8 @@ void BrowserWindow::build_menus() spoof_user_agent_menu.add_action(custom_user_agent); m_user_agent_spoof_actions.add_action(custom_user_agent); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = add_menu("&Help"); help_menu.add_action(WindowActions::the().about_action()); - - set_menubar(move(menubar)); } GUI::TabWidget& BrowserWindow::tab_widget() diff --git a/Userland/Applications/Calculator/main.cpp b/Userland/Applications/Calculator/main.cpp index deaef5d0cdb..5607997fd01 100644 --- a/Userland/Applications/Calculator/main.cpp +++ b/Userland/Applications/Calculator/main.cpp @@ -49,14 +49,12 @@ int main(int argc, char** argv) window->show(); window->set_icon(app_icon.bitmap_for_size(16)); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { GUI::Application::the()->quit(); })); - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); edit_menu.add_action(GUI::CommonActions::make_copy_action([&](auto&) { GUI::Clipboard::the().set_plain_text(widget.get_entry()); })); @@ -70,8 +68,7 @@ int main(int argc, char** argv) } })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Calculator", app_icon, window)); - window->set_menubar(move(menubar)); return app->exec(); } diff --git a/Userland/Applications/Calendar/main.cpp b/Userland/Applications/Calendar/main.cpp index f12bf47690f..4d0221c1797 100644 --- a/Userland/Applications/Calendar/main.cpp +++ b/Userland/Applications/Calendar/main.cpp @@ -126,8 +126,7 @@ int main(int argc, char** argv) view_month_action->set_checked(true); }; - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::Action::create("&Add Event", { Mod_Ctrl | Mod_Shift, Key_E }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/add-event.png"), [&](const GUI::Action&) { AddEventDialog::show(calendar->selected_date(), window); @@ -139,14 +138,13 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); view_menu.add_action(*view_month_action); view_menu.add_action(*view_year_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Calendar", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); app->exec(); } diff --git a/Userland/Applications/FileManager/main.cpp b/Userland/Applications/FileManager/main.cpp index c30e66f62e4..dcfa6b80225 100644 --- a/Userland/Applications/FileManager/main.cpp +++ b/Userland/Applications/FileManager/main.cpp @@ -842,9 +842,7 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio refresh_tree_view(); }); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(mkdir_action); file_menu.add_action(touch_action); file_menu.add_action(focus_dependent_delete_action); @@ -856,7 +854,7 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio GUI::Application::the()->quit(); })); - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); edit_menu.add_action(cut_action); edit_menu.add_action(copy_action); edit_menu.add_action(paste_action); @@ -874,7 +872,7 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio directory_view.set_should_show_dotfiles(show_dotfiles); action_show_dotfiles->set_checked(show_dotfiles); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); auto& layout_menu = view_menu.add_submenu("&Layout"); layout_menu.add_action(*layout_toolbar_action); layout_menu.add_action(*layout_location_action); @@ -897,7 +895,7 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio location_textbox.set_focus(true); }); - auto& go_menu = menubar->add_menu("&Go"); + auto& go_menu = window->add_menu("&Go"); go_menu.add_action(go_back_action); go_menu.add_action(go_forward_action); go_menu.add_action(open_parent_directory_action); @@ -906,11 +904,9 @@ int run_in_windowed_mode(RefPtr config, String initial_locatio go_menu.add_separator(); go_menu.add_action(directory_view.open_terminal_action()); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("File Manager", GUI::Icon::default_icon("app-file-manager"), window)); - window->set_menubar(menubar); - main_toolbar.add_action(go_back_action); main_toolbar.add_action(go_forward_action); main_toolbar.add_action(open_parent_directory_action); diff --git a/Userland/Applications/FontEditor/FontEditor.cpp b/Userland/Applications/FontEditor/FontEditor.cpp index 0120a0c8107..73acf36f613 100644 --- a/Userland/Applications/FontEditor/FontEditor.cpp +++ b/Userland/Applications/FontEditor/FontEditor.cpp @@ -533,9 +533,9 @@ void FontEditorWidget::initialize(const String& path, RefPtr&& on_initialize(); } -void FontEditorWidget::initialize_menubar(GUI::Menubar& menubar) +void FontEditorWidget::initialize_menubar(GUI::Window& window) { - auto& file_menu = menubar.add_menu("&File"); + auto& file_menu = window.add_menu("&File"); file_menu.add_action(*m_new_action); file_menu.add_action(*m_open_action); file_menu.add_action(*m_save_action); @@ -547,7 +547,7 @@ void FontEditorWidget::initialize_menubar(GUI::Menubar& menubar) GUI::Application::the()->quit(); })); - auto& edit_menu = menubar.add_menu("&Edit"); + auto& edit_menu = window.add_menu("&Edit"); edit_menu.add_action(*m_undo_action); edit_menu.add_action(*m_redo_action); edit_menu.add_separator(); @@ -556,7 +556,7 @@ void FontEditorWidget::initialize_menubar(GUI::Menubar& menubar) edit_menu.add_action(*m_paste_action); edit_menu.add_action(*m_delete_action); - auto& view_menu = menubar.add_menu("&View"); + auto& view_menu = window.add_menu("&View"); view_menu.add_action(*m_open_preview_action); view_menu.add_separator(); view_menu.add_action(*m_show_metadata_action); @@ -566,11 +566,11 @@ void FontEditorWidget::initialize_menubar(GUI::Menubar& menubar) scale_menu.add_action(*m_scale_ten_action); scale_menu.add_action(*m_scale_fifteen_action); - auto& help_menu = menubar.add_menu("&Help"); + auto& help_menu = window.add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/FontEditor.md"), "/bin/Help"); })); - help_menu.add_action(GUI::CommonActions::make_about_action("Font Editor", GUI::Icon::default_icon("app-font-editor"), window())); + help_menu.add_action(GUI::CommonActions::make_about_action("Font Editor", GUI::Icon::default_icon("app-font-editor"), &window)); } bool FontEditorWidget::save_as(const String& path) diff --git a/Userland/Applications/FontEditor/FontEditor.h b/Userland/Applications/FontEditor/FontEditor.h index caf8633f2d3..4e598b3f7e6 100644 --- a/Userland/Applications/FontEditor/FontEditor.h +++ b/Userland/Applications/FontEditor/FontEditor.h @@ -27,7 +27,7 @@ public: const String& path() { return m_path; } const Gfx::BitmapFont& edited_font() { return *m_edited_font; } void initialize(const String& path, RefPtr&&); - void initialize_menubar(GUI::Menubar&); + void initialize_menubar(GUI::Window&); bool is_showing_font_metadata() { return m_font_metadata; } void set_show_font_metadata(bool b); diff --git a/Userland/Applications/FontEditor/main.cpp b/Userland/Applications/FontEditor/main.cpp index 71a851b4e1e..45c04534571 100644 --- a/Userland/Applications/FontEditor/main.cpp +++ b/Userland/Applications/FontEditor/main.cpp @@ -78,9 +78,7 @@ int main(int argc, char** argv) auto& font_editor = window->set_main_widget(path, move(edited_font)); font_editor.update_title(); - auto menubar = GUI::Menubar::construct(); - font_editor.initialize_menubar(menubar); - window->set_menubar(move(menubar)); + font_editor.initialize_menubar(*window); window->on_close_request = [&]() -> GUI::Window::CloseRequestDecision { if (font_editor.request_close()) diff --git a/Userland/Applications/Help/main.cpp b/Userland/Applications/Help/main.cpp index 32f36aefcca..3c04aeb15fb 100644 --- a/Userland/Applications/Help/main.cpp +++ b/Userland/Applications/Help/main.cpp @@ -261,23 +261,19 @@ int main(int argc, char* argv[]) toolbar.add_action(*go_forward_action); toolbar.add_action(*go_home_action); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { GUI::Application::the()->quit(); })); - auto& go_menu = menubar->add_menu("&Go"); + auto& go_menu = window->add_menu("&Go"); go_menu.add_action(*go_back_action); go_menu.add_action(*go_forward_action); go_menu.add_action(*go_home_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Help", app_icon, window)); - window->set_menubar(move(menubar)); - auto context_menu = GUI::Menu::construct(); context_menu->add_action(*go_back_action); context_menu->add_action(*go_forward_action); diff --git a/Userland/Applications/HexEditor/HexEditorWidget.cpp b/Userland/Applications/HexEditor/HexEditorWidget.cpp index 9dcfe2fb588..eb1904f4c7f 100644 --- a/Userland/Applications/HexEditor/HexEditorWidget.cpp +++ b/Userland/Applications/HexEditor/HexEditorWidget.cpp @@ -209,9 +209,9 @@ HexEditorWidget::~HexEditorWidget() { } -void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar) +void HexEditorWidget::initialize_menubar(GUI::Window& window) { - auto& file_menu = menubar.add_menu("&File"); + auto& file_menu = window.add_menu("&File"); file_menu.add_action(*m_new_action); file_menu.add_action(*m_open_action); file_menu.add_action(*m_save_action); @@ -223,14 +223,14 @@ void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar) GUI::Application::the()->quit(); })); - auto& edit_menu = menubar.add_menu("&Edit"); + auto& edit_menu = window.add_menu("&Edit"); edit_menu.add_action(GUI::CommonActions::make_select_all_action([this](auto&) { m_editor->select_all(); m_editor->update(); })); edit_menu.add_action(GUI::Action::create("Fill &Selection...", { Mod_Ctrl, Key_B }, [&](const GUI::Action&) { String value; - if (GUI::InputBox::show(window(), value, "Fill byte (hex):", "Fill Selection") == GUI::InputBox::ExecOK && !value.is_empty()) { + if (GUI::InputBox::show(&window, value, "Fill byte (hex):", "Fill Selection") == GUI::InputBox::ExecOK && !value.is_empty()) { auto fill_byte = strtol(value.characters(), nullptr, 16); m_editor->fill_selection(fill_byte); } @@ -249,13 +249,13 @@ void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar) edit_menu.add_action(*m_find_action); edit_menu.add_action(GUI::Action::create("Find &Next", { Mod_None, Key_F3 }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/find-next.png"), [&](const GUI::Action&) { if (m_search_text.is_empty() || m_search_buffer.is_empty()) { - GUI::MessageBox::show(window(), "Nothing to search for", "Not found", GUI::MessageBox::Type::Warning); + GUI::MessageBox::show(&window, "Nothing to search for", "Not found", GUI::MessageBox::Type::Warning); return; } auto result = m_editor->find_and_highlight(m_search_buffer, last_found_index()); if (!result) { - GUI::MessageBox::show(window(), String::formatted("No more matches for \"{}\" found in this file", m_search_text), "Not found", GUI::MessageBox::Type::Warning); + GUI::MessageBox::show(&window, String::formatted("No more matches for \"{}\" found in this file", m_search_text), "Not found", GUI::MessageBox::Type::Warning); return; } m_editor->update(); @@ -269,7 +269,7 @@ void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar) m_search_results->update(); if (matches.is_empty()) { - GUI::MessageBox::show(window(), "No strings found in this file", "Not found", GUI::MessageBox::Type::Warning); + GUI::MessageBox::show(&window, "No strings found in this file", "Not found", GUI::MessageBox::Type::Warning); return; } @@ -279,7 +279,7 @@ void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar) edit_menu.add_separator(); edit_menu.add_action(*m_goto_offset_action); - auto& view_menu = menubar.add_menu("&View"); + auto& view_menu = window.add_menu("&View"); auto show_toolbar = m_config->read_bool_entry("Layout", "ShowToolbar", true); m_layout_toolbar_action->set_checked(show_toolbar); @@ -307,8 +307,8 @@ void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar) action->set_checked(true); } - auto& help_menu = menubar.add_menu("&Help"); - help_menu.add_action(GUI::CommonActions::make_about_action("Hex Editor", GUI::Icon::default_icon("app-hex-editor"), window())); + auto& help_menu = window.add_menu("&Help"); + help_menu.add_action(GUI::CommonActions::make_about_action("Hex Editor", GUI::Icon::default_icon("app-hex-editor"), &window)); } void HexEditorWidget::set_path(StringView const& path) diff --git a/Userland/Applications/HexEditor/HexEditorWidget.h b/Userland/Applications/HexEditor/HexEditorWidget.h index 2753ec62e8b..55baa42ecf2 100644 --- a/Userland/Applications/HexEditor/HexEditorWidget.h +++ b/Userland/Applications/HexEditor/HexEditorWidget.h @@ -22,7 +22,7 @@ class HexEditorWidget final : public GUI::Widget { public: virtual ~HexEditorWidget() override; void open_file(const String& path); - void initialize_menubar(GUI::Menubar&); + void initialize_menubar(GUI::Window&); bool request_close(); private: diff --git a/Userland/Applications/HexEditor/main.cpp b/Userland/Applications/HexEditor/main.cpp index dba2119f8f2..be48f932f5e 100644 --- a/Userland/Applications/HexEditor/main.cpp +++ b/Userland/Applications/HexEditor/main.cpp @@ -39,9 +39,7 @@ int main(int argc, char** argv) return GUI::Window::CloseRequestDecision::StayOpen; }; - auto menubar = GUI::Menubar::construct(); - hex_editor_widget.initialize_menubar(menubar); - window->set_menubar(menubar); + hex_editor_widget.initialize_menubar(*window); window->show(); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Applications/IRCClient/IRCAppWindow.cpp b/Userland/Applications/IRCClient/IRCAppWindow.cpp index 8a800d7e58e..6f762f2eb08 100644 --- a/Userland/Applications/IRCClient/IRCAppWindow.cpp +++ b/Userland/Applications/IRCClient/IRCAppWindow.cpp @@ -237,13 +237,12 @@ void IRCAppWindow::setup_actions() void IRCAppWindow::setup_menus() { - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { GUI::Application::the()->quit(); })); - auto& server_menu = menubar->add_menu("&Server"); + auto& server_menu = add_menu("&Server"); server_menu.add_action(*m_change_nick_action); server_menu.add_separator(); server_menu.add_action(*m_join_action); @@ -253,7 +252,7 @@ void IRCAppWindow::setup_menus() server_menu.add_action(*m_open_query_action); server_menu.add_action(*m_close_query_action); - auto& channel_menu = menubar->add_menu("&Channel"); + auto& channel_menu = add_menu("&Channel"); channel_menu.add_action(*m_change_topic_action); channel_menu.add_action(*m_invite_user_action); channel_menu.add_action(*m_banlist_action); @@ -272,10 +271,8 @@ void IRCAppWindow::setup_menus() channel_menu.add_action(*m_cycle_channel_action); channel_menu.add_action(*m_part_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("IRC Client", GUI::Icon::default_icon("app-irc-client"), this)); - - set_menubar(move(menubar)); } void IRCAppWindow::setup_widgets() diff --git a/Userland/Applications/ImageViewer/main.cpp b/Userland/Applications/ImageViewer/main.cpp index 602628bc4c7..39af0245a72 100644 --- a/Userland/Applications/ImageViewer/main.cpp +++ b/Userland/Applications/ImageViewer/main.cpp @@ -264,15 +264,13 @@ int main(int argc, char** argv) main_toolbar.add_action(reset_zoom_action); main_toolbar.add_action(zoom_out_action); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(open_action); file_menu.add_action(delete_action); file_menu.add_separator(); file_menu.add_action(quit_action); - auto& image_menu = menubar->add_menu("&Image"); + auto& image_menu = window->add_menu("&Image"); image_menu.add_action(rotate_left_action); image_menu.add_action(rotate_right_action); image_menu.add_action(vertical_flip_action); @@ -280,13 +278,13 @@ int main(int argc, char** argv) image_menu.add_separator(); image_menu.add_action(desktop_wallpaper_action); - auto& navigate_menu = menubar->add_menu("&Navigate"); + auto& navigate_menu = window->add_menu("&Navigate"); navigate_menu.add_action(go_first_action); navigate_menu.add_action(go_back_action); navigate_menu.add_action(go_forward_action); navigate_menu.add_action(go_last_action); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); view_menu.add_action(full_screen_action); view_menu.add_separator(); view_menu.add_action(zoom_in_action); @@ -295,14 +293,12 @@ int main(int argc, char** argv) view_menu.add_separator(); view_menu.add_action(hide_show_toolbar_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/ImageViewer.md"), "/bin/Help"); })); help_menu.add_action(GUI::CommonActions::make_about_action("Image Viewer", app_icon, window)); - window->set_menubar(move(menubar)); - if (path != nullptr) { widget.load_from_file(path); } else { diff --git a/Userland/Applications/KeyboardMapper/main.cpp b/Userland/Applications/KeyboardMapper/main.cpp index 095aafa0db9..aa230eba205 100644 --- a/Userland/Applications/KeyboardMapper/main.cpp +++ b/Userland/Applications/KeyboardMapper/main.cpp @@ -82,19 +82,15 @@ int main(int argc, char** argv) app->quit(); }); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(open_action); file_menu.add_action(save_action); file_menu.add_action(save_as_action); file_menu.add_separator(); file_menu.add_action(quit_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Keyboard Mapper", app_icon, window)); - window->set_menubar(move(menubar)); - return app->exec(); } diff --git a/Userland/Applications/KeyboardSettings/main.cpp b/Userland/Applications/KeyboardSettings/main.cpp index 82b0609a741..15836a7e5b8 100644 --- a/Userland/Applications/KeyboardSettings/main.cpp +++ b/Userland/Applications/KeyboardSettings/main.cpp @@ -183,14 +183,12 @@ int main(int argc, char** argv) auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(quit_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Keyboard Settings", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); return app->exec(); diff --git a/Userland/Applications/Magnifier/main.cpp b/Userland/Applications/Magnifier/main.cpp index 2eb30167fd0..6a0d1e9acac 100644 --- a/Userland/Applications/Magnifier/main.cpp +++ b/Userland/Applications/Magnifier/main.cpp @@ -48,8 +48,7 @@ int main(int argc, char** argv) window->set_icon(app_icon.bitmap_for_size(16)); auto& magnifier = window->set_main_widget(); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); @@ -70,15 +69,14 @@ int main(int argc, char** argv) size_action_group->add_action(four_x_action); size_action_group->set_exclusive(true); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); view_menu.add_action(two_x_action); view_menu.add_action(four_x_action); two_x_action->set_checked(true); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Magnifier", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); magnifier.track_cursor_globally(); diff --git a/Userland/Applications/PDFViewer/PDFViewerWidget.cpp b/Userland/Applications/PDFViewer/PDFViewerWidget.cpp index b818f97b59a..2a1a8259852 100644 --- a/Userland/Applications/PDFViewer/PDFViewerWidget.cpp +++ b/Userland/Applications/PDFViewer/PDFViewerWidget.cpp @@ -35,11 +35,11 @@ PDFViewerWidget::PDFViewerWidget() }; } -void PDFViewerWidget::initialize_menubar(GUI::Menubar& menubar) +void PDFViewerWidget::initialize_menubar(GUI::Window& window) { - auto& file_menu = menubar.add_menu("&File"); + auto& file_menu = window.add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_open_action([&](auto&) { - Optional open_path = GUI::FilePicker::get_open_filepath(window()); + Optional open_path = GUI::FilePicker::get_open_filepath(&window); if (open_path.has_value()) open_file(open_path.value()); })); @@ -48,8 +48,8 @@ void PDFViewerWidget::initialize_menubar(GUI::Menubar& menubar) GUI::Application::the()->quit(); })); - auto& help_menu = menubar.add_menu("&Help"); - help_menu.add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"), window())); + auto& help_menu = window.add_menu("&Help"); + help_menu.add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"), &window)); } void PDFViewerWidget::create_toolbar() diff --git a/Userland/Applications/PDFViewer/PDFViewerWidget.h b/Userland/Applications/PDFViewer/PDFViewerWidget.h index 9b8e4011bf3..86c7dbfc540 100644 --- a/Userland/Applications/PDFViewer/PDFViewerWidget.h +++ b/Userland/Applications/PDFViewer/PDFViewerWidget.h @@ -21,7 +21,7 @@ class PDFViewerWidget final : public GUI::Widget { public: ~PDFViewerWidget() override = default; - void initialize_menubar(GUI::Menubar&); + void initialize_menubar(GUI::Window&); void create_toolbar(); void open_file(const String& path); diff --git a/Userland/Applications/PDFViewer/main.cpp b/Userland/Applications/PDFViewer/main.cpp index cb7e48dd0d2..61dada80f18 100644 --- a/Userland/Applications/PDFViewer/main.cpp +++ b/Userland/Applications/PDFViewer/main.cpp @@ -21,9 +21,8 @@ int main(int argc, char** argv) auto& pdf_viewer_widget = window->set_main_widget(); - auto menubar = GUI::Menubar::construct(); - pdf_viewer_widget.initialize_menubar(menubar); - window->set_menubar(menubar); + pdf_viewer_widget.initialize_menubar(*window); + window->show(); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Applications/Piano/main.cpp b/Userland/Applications/Piano/main.cpp index 671b7a65fbd..b668c907450 100644 --- a/Userland/Applications/Piano/main.cpp +++ b/Userland/Applications/Piano/main.cpp @@ -60,9 +60,7 @@ int main(int argc, char** argv) }); main_widget_updater->start(); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::Action::create("Export", { Mod_Ctrl, Key_E }, [&](const GUI::Action&) { save_path = GUI::FilePicker::get_save_filepath(window, "Untitled", "wav"); if (!save_path.has_value()) @@ -81,13 +79,11 @@ int main(int argc, char** argv) return; })); - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); main_widget.add_actions(edit_menu); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Piano", app_icon, window)); - window->set_menubar(move(menubar)); - return app->exec(); } diff --git a/Userland/Applications/PixelPaint/main.cpp b/Userland/Applications/PixelPaint/main.cpp index 57f4f4ef451..0fd9dd8ea5f 100644 --- a/Userland/Applications/PixelPaint/main.cpp +++ b/Userland/Applications/PixelPaint/main.cpp @@ -141,8 +141,7 @@ int main(int argc, char** argv) editor->image().set_path(save_path.value()); }); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(new_image_action); file_menu.add_action(open_image_action); @@ -182,7 +181,7 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); auto copy_action = GUI::CommonActions::make_copy_action([&](auto&) { auto* editor = current_image_editor(); @@ -294,7 +293,7 @@ int main(int argc, char** argv) }, window)); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); auto zoom_in_action = GUI::CommonActions::make_zoom_in_action( [&](auto&) { @@ -321,14 +320,14 @@ int main(int argc, char** argv) view_menu.add_action(zoom_out_action); view_menu.add_action(reset_zoom_action); - auto& tool_menu = menubar->add_menu("&Tool"); + auto& tool_menu = window->add_menu("&Tool"); toolbox.for_each_tool([&](auto& tool) { if (tool.action()) tool_menu.add_action(*tool.action()); return IterationDecision::Continue; }); - auto& layer_menu = menubar->add_menu("&Layer"); + auto& layer_menu = window->add_menu("&Layer"); layer_menu.add_action(GUI::Action::create( "New &Layer...", { Mod_Ctrl | Mod_Shift, Key_N }, [&](auto&) { auto* editor = current_image_editor(); @@ -438,7 +437,7 @@ int main(int argc, char** argv) }, window)); - auto& filter_menu = menubar->add_menu("&Filter"); + auto& filter_menu = window->add_menu("&Filter"); auto& spatial_filters_menu = filter_menu.add_submenu("&Spatial"); auto& edge_detect_submenu = spatial_filters_menu.add_submenu("&Edge Detect"); @@ -542,11 +541,9 @@ int main(int argc, char** argv) } })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Pixel Paint", app_icon, window)); - window->set_menubar(move(menubar)); - auto& toolbar = *main_widget.find_descendant_of_type_named("toolbar"); toolbar.add_action(new_image_action); toolbar.add_action(open_image_action); diff --git a/Userland/Applications/SoundPlayer/main.cpp b/Userland/Applications/SoundPlayer/main.cpp index 6b52e0e0c87..5441a538dcf 100644 --- a/Userland/Applications/SoundPlayer/main.cpp +++ b/Userland/Applications/SoundPlayer/main.cpp @@ -51,11 +51,9 @@ int main(int argc, char** argv) window->set_title("Sound Player"); window->set_icon(app_icon.bitmap_for_size(16)); - auto menubar = GUI::Menubar::construct(); + auto& file_menu = window->add_menu("&File"); - auto& file_menu = menubar->add_menu("&File"); - - auto& playlist_menu = menubar->add_menu("Play&list"); + auto& playlist_menu = window->add_menu("Play&list"); String path = argv[1]; // start in advanced view by default @@ -94,7 +92,7 @@ int main(int argc, char** argv) app->quit(); })); - auto& playback_menu = menubar->add_menu("&Playback"); + auto& playback_menu = window->add_menu("&Playback"); auto loop = GUI::Action::create_checkable("&Loop", { Mod_Ctrl, Key_R }, [&](auto& action) { player->set_looping_file(action.is_checked()); @@ -102,7 +100,7 @@ int main(int argc, char** argv) playback_menu.add_action(move(loop)); - auto& visualization_menu = menubar->add_menu("&Visualization"); + auto& visualization_menu = window->add_menu("&Visualization"); Vector> visualization_checkmarks; GUI::Action* checked_vis = nullptr; auto uncheck_all_but = [&](GUI::Action& one) {for (auto& a : visualization_checkmarks) if (a != &one) a->set_checked(false); }; @@ -147,11 +145,9 @@ int main(int argc, char** argv) visualization_menu.add_action(none); visualization_checkmarks.append(none); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Sound Player", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); return app->exec(); } diff --git a/Userland/Applications/SpaceAnalyzer/main.cpp b/Userland/Applications/SpaceAnalyzer/main.cpp index 052502d6fb6..8695e426092 100644 --- a/Userland/Applications/SpaceAnalyzer/main.cpp +++ b/Userland/Applications/SpaceAnalyzer/main.cpp @@ -271,9 +271,7 @@ int main(int argc, char* argv[]) auto& treemapwidget = *mainwidget.find_descendant_of_type_named("tree_map"); auto& statusbar = *mainwidget.find_descendant_of_type_named("statusbar"); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::Action::create("&Analyze", [&](auto&) { analyze(tree, treemapwidget, statusbar); })); @@ -282,11 +280,9 @@ int main(int argc, char* argv[]) app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action(APP_NAME, app_icon, window)); - window->set_menubar(move(menubar)); - // Configure the nodes context menu. auto open_folder_action = GUI::Action::create("Open Folder", { Mod_Ctrl, Key_O }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/open.png"), [&](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol(get_absolute_path_to_selected_node(treemapwidget))); diff --git a/Userland/Applications/Spreadsheet/main.cpp b/Userland/Applications/Spreadsheet/main.cpp index 305d6a862ac..edce7bbdfbb 100644 --- a/Userland/Applications/Spreadsheet/main.cpp +++ b/Userland/Applications/Spreadsheet/main.cpp @@ -85,8 +85,7 @@ int main(int argc, char* argv[]) if (filename) spreadsheet_widget.load(filename); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::Action::create("Add New Sheet", Gfx::Bitmap::try_load_from_file("/res/icons/16x16/new-tab.png"), [&](auto&) { spreadsheet_widget.add_sheet(); @@ -138,7 +137,7 @@ int main(int argc, char* argv[]) return GUI::Window::CloseRequestDecision::StayOpen; }; - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); auto clipboard_action = [&](bool is_cut) { /// text/x-spreadsheet-data: @@ -228,7 +227,7 @@ int main(int argc, char* argv[]) }, window)); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::Action::create( "&Functions Help", [&](auto&) { @@ -245,8 +244,6 @@ int main(int argc, char* argv[]) help_menu.add_action(GUI::CommonActions::make_about_action("Spreadsheet", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); return app->exec(); diff --git a/Userland/Applications/SystemMonitor/main.cpp b/Userland/Applications/SystemMonitor/main.cpp index 91a253ff243..5236793fb4e 100644 --- a/Userland/Applications/SystemMonitor/main.cpp +++ b/Userland/Applications/SystemMonitor/main.cpp @@ -309,8 +309,7 @@ int main(int argc, char** argv) }, &process_table_view); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { GUI::Application::the()->quit(); })); @@ -328,7 +327,7 @@ int main(int argc, char** argv) process_context_menu->popup(event.screen_position(), process_properties_action); }; - auto& frequency_menu = menubar->add_menu("F&requency"); + auto& frequency_menu = window->add_menu("F&requency"); GUI::ActionGroup frequency_action_group; frequency_action_group.set_exclusive(true); @@ -346,11 +345,9 @@ int main(int argc, char** argv) make_frequency_action(3, true); make_frequency_action(5); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("System Monitor", app_icon, window)); - window->set_menubar(move(menubar)); - process_table_view.on_activation = [&](auto&) { if (process_properties_action->is_enabled()) process_properties_action->activate(); diff --git a/Userland/Applications/Terminal/main.cpp b/Userland/Applications/Terminal/main.cpp index d4cd02defff..6d64f643498 100644 --- a/Userland/Applications/Terminal/main.cpp +++ b/Userland/Applications/Terminal/main.cpp @@ -377,9 +377,7 @@ int main(int argc, char** argv) terminal.context_menu().add_separator(); terminal.context_menu().add_action(open_settings_action); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::Action::create("Open New &Terminal", { Mod_Ctrl | Mod_Shift, Key_N }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/app-terminal.png"), [&](auto&) { pid_t child; const char* argv[] = { "Terminal", nullptr }; @@ -398,7 +396,7 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); edit_menu.add_action(terminal.copy_action()); edit_menu.add_action(terminal.paste_action()); edit_menu.add_separator(); @@ -410,7 +408,7 @@ int main(int argc, char** argv) find_window->move_to_front(); })); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); view_menu.add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) { window->set_fullscreen(!window->is_fullscreen()); })); @@ -418,14 +416,12 @@ int main(int argc, char** argv) view_menu.add_separator(); view_menu.add_action(pick_font_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/Terminal.md"), "/bin/Help"); })); help_menu.add_action(GUI::CommonActions::make_about_action("Terminal", app_icon, window)); - window->set_menubar(menubar); - window->on_close = [&]() { if (find_window) find_window->close(); diff --git a/Userland/Applications/TextEditor/MainWidget.cpp b/Userland/Applications/TextEditor/MainWidget.cpp index f21c1cfc662..7fdb244e842 100644 --- a/Userland/Applications/TextEditor/MainWidget.cpp +++ b/Userland/Applications/TextEditor/MainWidget.cpp @@ -369,9 +369,9 @@ Web::OutOfProcessWebView& MainWidget::ensure_web_view() return *m_page_view; } -void MainWidget::initialize_menubar(GUI::Menubar& menubar) +void MainWidget::initialize_menubar(GUI::Window& window) { - auto& file_menu = menubar.add_menu("&File"); + auto& file_menu = window.add_menu("&File"); file_menu.add_action(*m_new_action); file_menu.add_action(*m_open_action); file_menu.add_action(*m_save_action); @@ -383,7 +383,7 @@ void MainWidget::initialize_menubar(GUI::Menubar& menubar) GUI::Application::the()->quit(); })); - auto& edit_menu = menubar.add_menu("&Edit"); + auto& edit_menu = window.add_menu("&Edit"); edit_menu.add_action(m_editor->undo_action()); edit_menu.add_action(m_editor->redo_action()); edit_menu.add_separator(); @@ -449,7 +449,7 @@ void MainWidget::initialize_menubar(GUI::Menubar& menubar) m_layout_ruler_action->set_checked(show_ruler); m_editor->set_ruler_visible(show_ruler); - auto& view_menu = menubar.add_menu("&View"); + auto& view_menu = window.add_menu("&View"); auto& layout_menu = view_menu.add_submenu("&Layout"); layout_menu.add_action(*m_layout_toolbar_action); layout_menu.add_action(*m_layout_statusbar_action); @@ -459,7 +459,7 @@ void MainWidget::initialize_menubar(GUI::Menubar& menubar) view_menu.add_action(GUI::Action::create("Editor &Font...", Gfx::Bitmap::try_load_from_file("/res/icons/16x16/app-font-editor.png"), [&](auto&) { - auto picker = GUI::FontPicker::construct(window(), &m_editor->font(), false); + auto picker = GUI::FontPicker::construct(&window, &m_editor->font(), false); if (picker->exec() == GUI::Dialog::ExecOK) { dbgln("setting font {}", picker->font()->qualified_name()); m_editor->set_font(picker->font()); @@ -605,11 +605,11 @@ void MainWidget::initialize_menubar(GUI::Menubar& menubar) syntax_actions.add_action(*m_sql_highlight); syntax_menu.add_action(*m_sql_highlight); - auto& help_menu = menubar.add_menu("&Help"); + auto& help_menu = window.add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/TextEditor.md"), "/bin/Help"); })); - help_menu.add_action(GUI::CommonActions::make_about_action("Text Editor", GUI::Icon::default_icon("app-text-editor"), window())); + help_menu.add_action(GUI::CommonActions::make_about_action("Text Editor", GUI::Icon::default_icon("app-text-editor"), &window)); } void MainWidget::set_path(StringView const& path) diff --git a/Userland/Applications/TextEditor/MainWidget.h b/Userland/Applications/TextEditor/MainWidget.h index b72d537c006..a565c759d99 100644 --- a/Userland/Applications/TextEditor/MainWidget.h +++ b/Userland/Applications/TextEditor/MainWidget.h @@ -39,7 +39,7 @@ public: void set_auto_detect_preview_mode(bool value) { m_auto_detect_preview_mode = value; } void update_title(); - void initialize_menubar(GUI::Menubar&); + void initialize_menubar(GUI::Window&); private: MainWidget(); diff --git a/Userland/Applications/TextEditor/main.cpp b/Userland/Applications/TextEditor/main.cpp index d9f38080af4..dc2bde15d13 100644 --- a/Userland/Applications/TextEditor/main.cpp +++ b/Userland/Applications/TextEditor/main.cpp @@ -102,9 +102,7 @@ int main(int argc, char** argv) return 1; } - auto menubar = GUI::Menubar::construct(); - text_widget.initialize_menubar(menubar); - window->set_menubar(menubar); + text_widget.initialize_menubar(*window); if (file_to_edit) { // A file name was passed, parse any possible line and column numbers included. @@ -126,7 +124,5 @@ int main(int argc, char** argv) window->show(); window->set_icon(app_icon.bitmap_for_size(16)); - window->set_menubar(menubar); - return app->exec(); } diff --git a/Userland/Applications/ThemeEditor/main.cpp b/Userland/Applications/ThemeEditor/main.cpp index 669b1386b06..d2f757feb97 100644 --- a/Userland/Applications/ThemeEditor/main.cpp +++ b/Userland/Applications/ThemeEditor/main.cpp @@ -76,12 +76,11 @@ int main(int argc, char** argv) Gfx::Palette preview_palette = app->palette(); auto window = GUI::Window::construct(); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Theme Editor", app_icon, window)); auto& main_widget = window->set_main_widget(); @@ -120,7 +119,6 @@ int main(int argc, char** argv) window->resize(480, 385); window->set_resizable(false); - window->set_menubar(menubar); window->show(); window->set_title("Theme Editor"); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Demos/Cube/Cube.cpp b/Userland/Demos/Cube/Cube.cpp index 84cad9d5a79..199511caa85 100644 --- a/Userland/Demos/Cube/Cube.cpp +++ b/Userland/Demos/Cube/Cube.cpp @@ -241,8 +241,7 @@ int main(int argc, char** argv) auto app_icon = GUI::Icon::default_icon("app-cube"); window->set_icon(app_icon.bitmap_for_size(16)); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); auto show_window_frame_action = GUI::Action::create_checkable("Show Window &Frame", [&](auto& action) { cube.set_show_window_frame(action.is_checked()); }); @@ -252,9 +251,8 @@ int main(int argc, char** argv) file_menu.add_action(move(show_window_frame_action)); file_menu.add_separator(); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Cube Demo", app_icon, window)); - window->set_menubar(move(menubar)); cube.on_context_menu_request = [&](auto& event) { file_menu.popup(event.screen_position()); diff --git a/Userland/Demos/Eyes/main.cpp b/Userland/Demos/Eyes/main.cpp index 816ebbde9f1..697a3c37311 100644 --- a/Userland/Demos/Eyes/main.cpp +++ b/Userland/Demos/Eyes/main.cpp @@ -79,14 +79,12 @@ int main(int argc, char* argv[]) auto& eyes = window->set_main_widget(num_eyes, full_rows, extra_columns); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Eyes Demo", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); eyes.track_cursor_globally(); diff --git a/Userland/Demos/Fire/Fire.cpp b/Userland/Demos/Fire/Fire.cpp index 835379688e4..a6c8b651d48 100644 --- a/Userland/Demos/Fire/Fire.cpp +++ b/Userland/Demos/Fire/Fire.cpp @@ -221,10 +221,8 @@ int main(int argc, char** argv) window->set_resizable(false); window->resize(FIRE_WIDTH * 2 + 4, FIRE_HEIGHT * 2 + 4); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - window->set_menubar(move(menubar)); auto& fire = window->set_main_widget(); diff --git a/Userland/Demos/LibGfxDemo/main.cpp b/Userland/Demos/LibGfxDemo/main.cpp index c18b1b5246f..f7a07fbc9b7 100644 --- a/Userland/Demos/LibGfxDemo/main.cpp +++ b/Userland/Demos/LibGfxDemo/main.cpp @@ -207,10 +207,8 @@ int main(int argc, char** argv) window->set_resizable(false); window->resize(WIDTH, HEIGHT); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - window->set_menubar(move(menubar)); auto app_icon = GUI::Icon::default_icon("app-libgfx-demo"); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Demos/LibGfxScaleDemo/main.cpp b/Userland/Demos/LibGfxScaleDemo/main.cpp index c9b41de2348..cd643444cf0 100644 --- a/Userland/Demos/LibGfxScaleDemo/main.cpp +++ b/Userland/Demos/LibGfxScaleDemo/main.cpp @@ -126,10 +126,8 @@ int main(int argc, char** argv) window->set_resizable(false); window->resize(WIDTH * 2, HEIGHT * 3); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - window->set_menubar(move(menubar)); auto app_icon = GUI::Icon::default_icon("app-libgfx-demo"); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Demos/Mandelbrot/Mandelbrot.cpp b/Userland/Demos/Mandelbrot/Mandelbrot.cpp index a230f1b1b9a..d2d8b21f4e1 100644 --- a/Userland/Demos/Mandelbrot/Mandelbrot.cpp +++ b/Userland/Demos/Mandelbrot/Mandelbrot.cpp @@ -262,8 +262,7 @@ int main(int argc, char** argv) window->resize(window->minimum_size() * 2); auto& mandelbrot = window->set_main_widget(); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::Action::create("&Export...", { Mod_Ctrl | Mod_Shift, Key_S }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/save.png"), [&](GUI::Action&) { Optional export_path = GUI::FilePicker::get_save_filepath(window, "untitled", "png"); @@ -273,7 +272,6 @@ int main(int argc, char** argv) })); file_menu.add_separator(); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - window->set_menubar(move(menubar)); window->show(); auto app_icon = GUI::Icon::default_icon("app-mandelbrot"); diff --git a/Userland/Demos/Mouse/main.cpp b/Userland/Demos/Mouse/main.cpp index 7e1cbf30e5a..36485f5d76d 100644 --- a/Userland/Demos/Mouse/main.cpp +++ b/Userland/Demos/Mouse/main.cpp @@ -177,14 +177,12 @@ int main(int argc, char** argv) auto& main_widget = window->set_main_widget(); main_widget.set_fill_with_background_color(true); - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Mouse Demo", app_icon, window)); - window->set_menubar(move(menubar)); window->set_resizable(false); window->show(); return app->exec(); diff --git a/Userland/Demos/WidgetGallery/main.cpp b/Userland/Demos/WidgetGallery/main.cpp index 4dae3b0d25f..ac514cb6186 100644 --- a/Userland/Demos/WidgetGallery/main.cpp +++ b/Userland/Demos/WidgetGallery/main.cpp @@ -55,15 +55,12 @@ int main(int argc, char** argv) window->set_icon(app_icon.bitmap_for_size(16)); window->set_main_widget(); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Widget Gallery", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); return app->exec(); diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp index 0563708625f..16603c6b002 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp +++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp @@ -922,9 +922,9 @@ void HackStudioWidget::create_project_tab(GUI::Widget& parent) }; } -void HackStudioWidget::create_file_menubar(GUI::Menubar& menubar) +void HackStudioWidget::create_file_menu(GUI::Window& window) { - auto& file_menu = menubar.add_menu("&File"); + auto& file_menu = window.add_menu("&File"); file_menu.add_action(*m_new_project_action); file_menu.add_action(*m_open_action); file_menu.add_action(*m_save_action); @@ -934,16 +934,16 @@ void HackStudioWidget::create_file_menubar(GUI::Menubar& menubar) })); } -void HackStudioWidget::create_project_menubar(GUI::Menubar& menubar) +void HackStudioWidget::create_project_menu(GUI::Window& window) { - auto& project_menu = menubar.add_menu("&Project"); + auto& project_menu = window.add_menu("&Project"); project_menu.add_action(*m_new_file_action); project_menu.add_action(*m_new_directory_action); } -void HackStudioWidget::create_edit_menubar(GUI::Menubar& menubar) +void HackStudioWidget::create_edit_menu(GUI::Window& window) { - auto& edit_menu = menubar.add_menu("&Edit"); + auto& edit_menu = window.add_menu("&Edit"); edit_menu.add_action(GUI::Action::create("&Find in Files...", { Mod_Ctrl | Mod_Shift, Key_F }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/find.png"), [this](auto&) { reveal_action_tab(*m_find_in_files_widget); m_find_in_files_widget->focus_textbox_and_select_all(); @@ -961,9 +961,9 @@ void HackStudioWidget::create_edit_menubar(GUI::Menubar& menubar) edit_menu.add_action(vim_emulation_setting_action); } -void HackStudioWidget::create_build_menubar(GUI::Menubar& menubar) +void HackStudioWidget::create_build_menu(GUI::Window& window) { - auto& build_menu = menubar.add_menu("&Build"); + auto& build_menu = window.add_menu("&Build"); build_menu.add_action(*m_build_action); build_menu.add_separator(); build_menu.add_action(*m_run_action); @@ -972,7 +972,7 @@ void HackStudioWidget::create_build_menubar(GUI::Menubar& menubar) build_menu.add_action(*m_debug_action); } -void HackStudioWidget::create_view_menubar(GUI::Menubar& menubar) +void HackStudioWidget::create_view_menu(GUI::Window& window) { auto hide_action_tabs_action = GUI::Action::create("&Hide Action Tabs", { Mod_Ctrl | Mod_Shift, Key_X }, [this](auto&) { hide_action_tabs(); @@ -981,7 +981,7 @@ void HackStudioWidget::create_view_menubar(GUI::Menubar& menubar) m_locator->open(); }); - auto& view_menu = menubar.add_menu("&View"); + auto& view_menu = window.add_menu("&View"); view_menu.add_action(hide_action_tabs_action); view_menu.add_action(open_locator_action); view_menu.add_separator(); @@ -1018,10 +1018,10 @@ void HackStudioWidget::create_view_menubar(GUI::Menubar& menubar) view_menu.add_action(*m_remove_current_terminal_action); } -void HackStudioWidget::create_help_menubar(GUI::Menubar& menubar) +void HackStudioWidget::create_help_menu(GUI::Window& window) { - auto& help_menu = menubar.add_menu("&Help"); - help_menu.add_action(GUI::CommonActions::make_about_action("Hack Studio", GUI::Icon::default_icon("app-hack-studio"), window())); + auto& help_menu = window.add_menu("&Help"); + help_menu.add_action(GUI::CommonActions::make_about_action("Hack Studio", GUI::Icon::default_icon("app-hack-studio"), &window)); } NonnullRefPtr HackStudioWidget::create_stop_action() @@ -1039,14 +1039,14 @@ NonnullRefPtr HackStudioWidget::create_stop_action() return action; } -void HackStudioWidget::initialize_menubar(GUI::Menubar& menubar) +void HackStudioWidget::initialize_menubar(GUI::Window& window) { - create_file_menubar(menubar); - create_project_menubar(menubar); - create_edit_menubar(menubar); - create_build_menubar(menubar); - create_view_menubar(menubar); - create_help_menubar(menubar); + create_file_menu(window); + create_project_menu(window); + create_edit_menu(window); + create_build_menu(window); + create_view_menu(window); + create_help_menu(window); } void HackStudioWidget::update_statusbar() diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.h b/Userland/DevTools/HackStudio/HackStudioWidget.h index 7d9bf2d158c..cc0fb6e9e8c 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.h +++ b/Userland/DevTools/HackStudio/HackStudioWidget.h @@ -42,7 +42,7 @@ public: void set_current_editor_wrapper(RefPtr); const String& active_file() const { return m_current_editor_wrapper->filename(); } - void initialize_menubar(GUI::Menubar&); + void initialize_menubar(GUI::Window&); Locator& locator() { @@ -104,12 +104,12 @@ private: void create_open_files_view(GUI::Widget& parent); void create_toolbar(GUI::Widget& parent); void create_action_tab(GUI::Widget& parent); - void create_file_menubar(GUI::Menubar&); - void create_project_menubar(GUI::Menubar&); - void create_edit_menubar(GUI::Menubar&); - void create_build_menubar(GUI::Menubar&); - void create_view_menubar(GUI::Menubar&); - void create_help_menubar(GUI::Menubar&); + void create_file_menu(GUI::Window&); + void create_project_menu(GUI::Window&); + void create_edit_menu(GUI::Window&); + void create_build_menu(GUI::Window&); + void create_view_menu(GUI::Window&); + void create_help_menu(GUI::Window&); void create_project_tab(GUI::Widget& parent); void configure_project_tree_view(); diff --git a/Userland/DevTools/HackStudio/main.cpp b/Userland/DevTools/HackStudio/main.cpp index e851d00cb52..08fa39017da 100644 --- a/Userland/DevTools/HackStudio/main.cpp +++ b/Userland/DevTools/HackStudio/main.cpp @@ -66,9 +66,7 @@ int main(int argc, char** argv) s_window->set_title(String::formatted("{} - Hack Studio", s_hack_studio_widget->project().name())); - auto menubar = GUI::Menubar::construct(); - s_hack_studio_widget->initialize_menubar(menubar); - s_window->set_menubar(menubar); + s_hack_studio_widget->initialize_menubar(*s_window); s_window->on_close_request = [&]() -> GUI::Window::CloseRequestDecision { s_hack_studio_widget->locator().close(); diff --git a/Userland/DevTools/Inspector/main.cpp b/Userland/DevTools/Inspector/main.cpp index 496b14f10f2..f13bbad738d 100644 --- a/Userland/DevTools/Inspector/main.cpp +++ b/Userland/DevTools/Inspector/main.cpp @@ -113,12 +113,10 @@ int main(int argc, char** argv) window->resize(685, 500); window->set_icon(app_icon.bitmap_for_size(16)); - auto menubar = GUI::Menubar::construct(); - - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/Inspector.md"), "/bin/Help"); })); @@ -172,7 +170,6 @@ int main(int argc, char** argv) } }; - window->set_menubar(move(menubar)); window->show(); remote_process.update(); diff --git a/Userland/DevTools/Playground/main.cpp b/Userland/DevTools/Playground/main.cpp index a84ab531350..01af6315aa3 100644 --- a/Userland/DevTools/Playground/main.cpp +++ b/Userland/DevTools/Playground/main.cpp @@ -156,8 +156,7 @@ int main(int argc, char** argv) update_title(); }; - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); auto save_as_action = GUI::CommonActions::make_save_as_action([&](auto&) { Optional new_save_path = GUI::FilePicker::get_save_filepath(window, "Untitled", "gml"); @@ -223,7 +222,7 @@ int main(int argc, char** argv) app->quit(); })); - auto& edit_menu = menubar->add_menu("&Edit"); + auto& edit_menu = window->add_menu("&Edit"); edit_menu.add_action(GUI::Action::create("&Format GML", { Mod_Ctrl | Mod_Shift, Key_I }, [&](auto&) { auto source = editor.text(); GUI::GMLLexer lexer(source); @@ -252,13 +251,12 @@ int main(int argc, char** argv) } })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/Playground.md"), "/bin/Help"); })); help_menu.add_action(GUI::CommonActions::make_about_action("GML Playground", app_icon, window)); - window->set_menubar(move(menubar)); window->on_close_request = [&] { if (!window->is_modified()) return GUI::Window::CloseRequestDecision::Close; diff --git a/Userland/DevTools/Profiler/main.cpp b/Userland/DevTools/Profiler/main.cpp index 219e2532d88..90d229b7bf4 100644 --- a/Userland/DevTools/Profiler/main.cpp +++ b/Userland/DevTools/Profiler/main.cpp @@ -191,11 +191,10 @@ int main(int argc, char** argv) statusbar.set_text(builder.to_string()); }; - auto menubar = GUI::Menubar::construct(); - auto& file_menu = menubar->add_menu("&File"); + auto& file_menu = window->add_menu("&File"); file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& view_menu = menubar->add_menu("&View"); + auto& view_menu = window->add_menu("&View"); auto invert_action = GUI::Action::create_checkable("&Invert Tree", { Mod_Ctrl, Key_I }, [&](auto& action) { profile->set_inverted(action.is_checked()); @@ -219,13 +218,12 @@ int main(int argc, char** argv) view_menu.add_action(disassembly_action); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) { Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/Profiler.md"), "/bin/Help"); })); help_menu.add_action(GUI::CommonActions::make_about_action("Profiler", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); return app->exec(); } diff --git a/Userland/Games/2048/main.cpp b/Userland/Games/2048/main.cpp index 9ba195712b7..22a5d5fd946 100644 --- a/Userland/Games/2048/main.cpp +++ b/Userland/Games/2048/main.cpp @@ -181,9 +181,7 @@ int main(int argc, char** argv) } }; - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { start_a_new_game(); @@ -212,11 +210,9 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("2048", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Games/Breakout/main.cpp b/Userland/Games/Breakout/main.cpp index cd1f6cd6f81..f65882a6875 100644 --- a/Userland/Games/Breakout/main.cpp +++ b/Userland/Games/Breakout/main.cpp @@ -47,9 +47,7 @@ int main(int argc, char** argv) auto& game = window->set_main_widget(); window->show(); - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create_checkable("&Pause", { {}, Key_P }, [&](auto& action) { game.set_paused(action.is_checked()); })); @@ -60,10 +58,8 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Breakout", app_icon, window)); - window->set_menubar(move(menubar)); - return app->exec(); } diff --git a/Userland/Games/Chess/main.cpp b/Userland/Games/Chess/main.cpp index c72ca51a035..e4679f75ab5 100644 --- a/Userland/Games/Chess/main.cpp +++ b/Userland/Games/Chess/main.cpp @@ -76,8 +76,7 @@ int main(int argc, char** argv) widget.set_coordinates(config->read_bool_entry("Style", "Coordinates", true)); widget.set_show_available_moves(config->read_bool_entry("Style", "ShowAvailableMoves", true)); - auto menubar = GUI::Menubar::construct(); - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&Resign", { Mod_None, Key_F3 }, [&](auto&) { widget.resign(); @@ -131,7 +130,7 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& style_menu = menubar->add_menu("&Style"); + auto& style_menu = window->add_menu("&Style"); GUI::ActionGroup piece_set_action_group; piece_set_action_group.set_exclusive(true); auto& piece_set_menu = style_menu.add_submenu("&Piece Set"); @@ -189,7 +188,7 @@ int main(int argc, char** argv) show_available_moves_action->set_checked(widget.show_available_moves()); style_menu.add_action(show_available_moves_action); - auto& engine_menu = menubar->add_menu("&Engine"); + auto& engine_menu = window->add_menu("&Engine"); GUI::ActionGroup engines_action_group; engines_action_group.set_exclusive(true); @@ -210,11 +209,9 @@ int main(int argc, char** argv) engine_submenu.add_action(*action); } - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Chess", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); widget.reset(); diff --git a/Userland/Games/FlappyBug/main.cpp b/Userland/Games/FlappyBug/main.cpp index d1135b5c3f1..a8209337c80 100644 --- a/Userland/Games/FlappyBug/main.cpp +++ b/Userland/Games/FlappyBug/main.cpp @@ -68,17 +68,14 @@ int main(int argc, char** argv) return high_score; }; - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { GUI::Application::the()->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Flappy Bug", app_icon, window)); - window->set_menubar(move(menubar)); window->show(); return app->exec(); diff --git a/Userland/Games/GameOfLife/main.cpp b/Userland/Games/GameOfLife/main.cpp index 4041ab19679..e24660a70d8 100644 --- a/Userland/Games/GameOfLife/main.cpp +++ b/Userland/Games/GameOfLife/main.cpp @@ -110,8 +110,7 @@ int main(int argc, char** argv) }); main_toolbar.add_action(rotate_pattern_action); - auto menubar = GUI::Menubar::construct(); - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(clear_board_action); game_menu.add_action(randomize_cells_action); @@ -123,11 +122,9 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Game Of Life", app_icon, window)); - window->set_menubar(move(menubar)); - board_widget.on_running_state_change = [&]() { if (board_widget.is_running()) { statusbar.set_text("Running..."); diff --git a/Userland/Games/Hearts/main.cpp b/Userland/Games/Hearts/main.cpp index 4744ca2691d..8a020d4b69e 100644 --- a/Userland/Games/Hearts/main.cpp +++ b/Userland/Games/Hearts/main.cpp @@ -94,8 +94,7 @@ int main(int argc, char** argv) GUI::MessageBox::show(window, "Settings have been successfully saved and will take effect in the next game.", "Settings Changed Successfully", GUI::MessageBox::Type::Information); }; - auto menubar = GUI::Menubar::construct(); - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { game.setup(player_name); @@ -107,12 +106,11 @@ int main(int argc, char** argv) game_menu.add_separator(); game_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Hearts", app_icon, window)); window->set_resizable(false); window->resize(Hearts::Game::width, Hearts::Game::height + statusbar.max_height()); - window->set_menubar(move(menubar)); window->set_icon(app_icon.bitmap_for_size(16)); window->show(); game.setup(player_name); diff --git a/Userland/Games/Minesweeper/main.cpp b/Userland/Games/Minesweeper/main.cpp index 9a4a70c4e2f..2df11e6c612 100644 --- a/Userland/Games/Minesweeper/main.cpp +++ b/Userland/Games/Minesweeper/main.cpp @@ -103,9 +103,7 @@ int main(int argc, char** argv) window->resize(size); }); - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { field.reset(); @@ -125,7 +123,7 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& difficulty_menu = menubar->add_menu("&Difficulty"); + auto& difficulty_menu = window->add_menu("&Difficulty"); difficulty_menu.add_action(GUI::Action::create("&Beginner", { Mod_Ctrl, Key_B }, [&](auto&) { field.set_field_size(9, 9, 10); })); @@ -139,11 +137,9 @@ int main(int argc, char** argv) field.set_field_size(32, 60, 350); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Minesweeper", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Games/Pong/main.cpp b/Userland/Games/Pong/main.cpp index 7ad75f83b67..5c2a8d50950 100644 --- a/Userland/Games/Pong/main.cpp +++ b/Userland/Games/Pong/main.cpp @@ -55,17 +55,13 @@ int main(int argc, char** argv) window->set_resizable(false); window->show(); - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { GUI::Application::the()->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Pong", app_icon, window)); - window->set_menubar(move(menubar)); - return app->exec(); } diff --git a/Userland/Games/Snake/main.cpp b/Userland/Games/Snake/main.cpp index c4e0a600899..1ddae480333 100644 --- a/Userland/Games/Snake/main.cpp +++ b/Userland/Games/Snake/main.cpp @@ -58,9 +58,7 @@ int main(int argc, char** argv) auto& game = window->set_main_widget(); - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { game.reset(); @@ -70,11 +68,9 @@ int main(int argc, char** argv) GUI::Application::the()->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Snake", app_icon, window)); - window->set_menubar(move(menubar)); - window->show(); window->set_icon(app_icon.bitmap_for_size(16)); diff --git a/Userland/Games/Solitaire/main.cpp b/Userland/Games/Solitaire/main.cpp index a64963369b3..c879c225edb 100644 --- a/Userland/Games/Solitaire/main.cpp +++ b/Userland/Games/Solitaire/main.cpp @@ -171,8 +171,7 @@ int main(int argc, char** argv) three_card_draw_action->set_status_tip("Draw three cards at a time"); draw_setting_actions.add_action(three_card_draw_action); - auto menubar = GUI::Menubar::construct(); - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { game.setup(mode); @@ -189,12 +188,11 @@ int main(int argc, char** argv) game_menu.add_separator(); game_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Solitaire", app_icon, window)); window->set_resizable(false); window->resize(Solitaire::Game::width, Solitaire::Game::height + statusbar.max_height()); - window->set_menubar(move(menubar)); window->set_icon(app_icon.bitmap_for_size(16)); window->show(); diff --git a/Userland/Games/Spider/main.cpp b/Userland/Games/Spider/main.cpp index 1914ee4f233..aa80c7e5fa5 100644 --- a/Userland/Games/Spider/main.cpp +++ b/Userland/Games/Spider/main.cpp @@ -163,9 +163,7 @@ int main(int argc, char** argv) two_suit_action->set_checked(mode == Spider::Mode::TwoSuit); suit_actions.add_action(two_suit_action); - auto menubar = GUI::Menubar::construct(); - - auto& game_menu = menubar->add_menu("&Game"); + auto& game_menu = window->add_menu("&Game"); game_menu.add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { game.setup(mode); })); @@ -175,12 +173,11 @@ int main(int argc, char** argv) game_menu.add_separator(); game_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); - auto& help_menu = menubar->add_menu("&Help"); + auto& help_menu = window->add_menu("&Help"); help_menu.add_action(GUI::CommonActions::make_about_action("Spider", app_icon, window)); window->set_resizable(false); window->resize(Spider::Game::width, Spider::Game::height + statusbar.max_height()); - window->set_menubar(move(menubar)); window->set_icon(app_icon.bitmap_for_size(16)); window->show(); diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index 083a36e2e88..fe37f5ef0d8 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -1130,6 +1130,13 @@ Gfx::Bitmap* Window::back_bitmap() return m_back_store ? &m_back_store->bitmap() : nullptr; } +Menu& Window::add_menu(String name) +{ + if (!m_menubar) + set_menubar(GUI::Menubar::construct()); + return m_menubar->add_menu(move(name)); +} + void Window::set_menubar(RefPtr menubar) { if (m_menubar == menubar) diff --git a/Userland/Libraries/LibGUI/Window.h b/Userland/Libraries/LibGUI/Window.h index d0d9d4b2ddc..9f2b433b412 100644 --- a/Userland/Libraries/LibGUI/Window.h +++ b/Userland/Libraries/LibGUI/Window.h @@ -200,6 +200,7 @@ public: void did_disable_focused_widget(Badge); + Menu& add_menu(String name); void set_menubar(RefPtr); protected: