mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 15:17:46 +00:00
Userland: Add GUI::Window::add_menu() and use it everywhere
Applications previously had to create a GUI::Menubar object, add menus to it, and then call GUI::Window::set_menubar(). This patch introduces GUI::Window::add_menu() which creates the menubar automatically and adds items to it. Application code becomes slightly simpler as a result. :^)
This commit is contained in:
parent
a4fdb7f029
commit
687a12d7fb
58 changed files with 187 additions and 311 deletions
|
@ -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));
|
||||
|
|
|
@ -47,9 +47,7 @@ int main(int argc, char** argv)
|
|||
auto& game = window->set_main_widget<Breakout::Game>();
|
||||
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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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...");
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -58,9 +58,7 @@ int main(int argc, char** argv)
|
|||
|
||||
auto& game = window->set_main_widget<SnakeGame>();
|
||||
|
||||
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));
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue