Remove hardcode for button size

This commit is contained in:
NaiJi ✨ 2021-08-04 22:06:01 +03:00
parent a0ad8e7ed6
commit c2677bdd2b
2 changed files with 6 additions and 4 deletions

View File

@ -6,13 +6,15 @@ MainMenu::MainMenu(sf::RenderWindow& game_window, Callbacks&& callbacks) :
_buttons(std::make_shared<Group>()), _buttons(std::make_shared<Group>()),
_game_window(game_window) _game_window(game_window)
{ {
const float window_width = game_window.getSize().x;
const float window_height = game_window.getSize().y;
std::shared_ptr<Button> button_start = std::make_shared<Button>("Start"); std::shared_ptr<Button> button_start = std::make_shared<Button>("Start");
button_start->setRect(sf::FloatRect(140, 140, 500, 100)); button_start->setRect(sf::FloatRect(window_width / 3., window_height / 7. * 2, window_width / 3., window_height / 7.));
button_start->setCallback(callbacks.onAppendGameState); button_start->setCallback(callbacks.onAppendGameState);
std::shared_ptr<Button> button_exit = std::make_shared<Button>("Exit"); std::shared_ptr<Button> button_exit = std::make_shared<Button>("Exit");
button_exit->setRect(sf::FloatRect(140, 140, 400, 100)); button_exit->setRect(sf::FloatRect(window_width / 3., window_height / 7. * 4, window_width / 3., window_height / 7.));
button_exit->setPosition({240, 340});
button_exit->setCallback([&]() button_exit->setCallback([&]()
{ {
_game_window.close(); _game_window.close();

View File

@ -53,7 +53,7 @@ void Button::draw(sf::RenderTarget& target, sf::RenderStates states) const
void Button::setRect(const sf::FloatRect& rect) void Button::setRect(const sf::FloatRect& rect)
{ {
_button_content.setPosition(rect.left, rect.top); _button_content.setPosition(rect.left, rect.top);
_button_content.setSize({rect.width - rect.left, rect.height - rect.top}); _button_content.setSize({rect.width, rect.height});
} }
void Button::setPosition(const sf::Vector2f &position) void Button::setPosition(const sf::Vector2f &position)