button.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. Copyright (C) 2015 Marien Raat, Jochem Raat
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #pragma once
  15. #include <SFML/Graphics.hpp>
  16. #include <string>
  17. class Button {
  18. public:
  19. Button(sf::Vector2f position,
  20. sf::Font *font, std::string text,
  21. sf::Texture *texture, sf::Texture *clickedTexture,
  22. sf::Vector2f size);
  23. void draw(sf::RenderWindow *window);
  24. bool click(sf::RenderWindow *window);
  25. void setNormalTexture(sf::Texture *texture);
  26. void setClickedTexture(sf::Texture *texture);
  27. sf::FloatRect rect;
  28. private:
  29. static constexpr float padding = 7.0f;
  30. sf::Texture *texture, *clickedTexture;
  31. sf::Sprite button;
  32. sf::Text buttonText;
  33. };