#include "mainmenu.h" #include "widgets/button.h" #include "widgets/group.h" MainMenu::MainMenu(sf::RenderWindow& game_window, Callbacks&& callbacks) : _buttons(std::make_shared<Group>()), _game_window(game_window) { std::shared_ptr<Button> button_start = std::make_shared<Button>("Start"); button_start->setRect(sf::FloatRect(140, 140, 500, 100)); button_start->setCallback(callbacks.onAppendGameState); std::shared_ptr<Button> button_exit = std::make_shared<Button>("Exit"); button_exit->setRect(sf::FloatRect(140, 140, 400, 100)); button_exit->setPosition({240, 340}); button_exit->setCallback([&]() { _game_window.close(); }); _buttons->addChild(button_start); _buttons->addChild(button_exit); } void MainMenu::input(const sf::Event& event) { _buttons->input(event); } void MainMenu::update() { _buttons->update(); } void MainMenu::draw() const { _game_window.draw(*_buttons); } void MainMenu::enter() { _buttons->setVisibility(); } void MainMenu::leave() { _buttons->setVisibility(false); }