1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:18:12 +00:00

Pong: Add 'New Game' action

This declares Game::reset() public and lets the menu action invoke it.
This commit is contained in:
Martin Frederic 2022-04-02 16:52:58 +02:00 committed by Andreas Kling
parent a4639fced9
commit 740beea5ce
2 changed files with 10 additions and 2 deletions

View file

@ -28,6 +28,8 @@ public:
virtual ~Game() override = default;
void reset();
private:
Game();
@ -37,7 +39,6 @@ private:
virtual void timer_event(Core::TimerEvent&) override;
virtual void track_mouse_move(Gfx::IntPoint const&) override;
void reset();
void reset_ball(int serve_to_player);
void reset_paddles();
void tick();

View file

@ -37,10 +37,17 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_icon(app_icon.bitmap_for_size(16));
window->set_title("Pong");
window->set_double_buffering_enabled(false);
(void)TRY(window->try_set_main_widget<Pong::Game>());
auto game = TRY(window->try_set_main_widget<Pong::Game>());
window->set_resizable(false);
auto game_menu = TRY(window->try_add_menu("&Game"));
TRY(game_menu->try_add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/reload.png")), [&](auto&) {
game->reset();
})));
TRY(game_menu->try_add_separator());
TRY(game_menu->try_add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit();
})));