Minesweeper2  V1.1.1 Game in C++ by Górka Mateusz
Menu.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Const.hpp"
4 #include "SFML/Graphics.hpp"
5 
10 class Menu : sf::Drawable {
11 
12  sf::Font font;
13  //IDEA use a Display::font ???????
14  sf::Texture menu_texture;
15  sf::Sprite menu_bg;
16 
17  sf::Text width_txt;
18  sf::Text height_txt;
19  sf::Text mines_txt;
20  sf::Text hints_txt;
21 
22  unsigned short int out_width {DEFAULT_X_SIZE};
23  unsigned short int out_height {DEFAULT_Y_SIZE};
24  unsigned short int out_mines {DEFAULT_MINE};
25  bool allowHints {false};
26 
27 public:
32  Menu();
33 
37  ~Menu() = default;
38 
39 public:
45  void draw( sf::RenderTarget& target, sf::RenderStates states ) const override;
46 
50  void update();
51 
52 public:
62  static void handling( int &argc, char** &argv );
63 
64 public:
70  bool click( const sf::RenderWindow& window );
71 
78  void output( int &argc, char** &argv );
79 
88  void change( unsigned short &val, const short int change, const short int minval, const short int maxval );
89 
90 
91 public:
98  static void clean( const int argc, char** &argv );
99 
108  static bool inside( const sf::Vector2i& pos, const sf::Vector2i& coo, const sf::Vector2i& size );
109 
118  inline static bool insideX( const sf::Vector2i& pos, const sf::Vector2i& coo, const sf::Vector2i& size )
119  { return pos.x > coo.x && pos.x < coo.x + size.x; }
120 
121 };
Menu::font
sf::Font font
Font.
Definition: Menu.hpp:12
Menu::draw
void draw(sf::RenderTarget &target, sf::RenderStates states) const override
Draw method.
Definition: Menu.cpp:114
DEFAULT_X_SIZE
#define DEFAULT_X_SIZE
Default X size of board.
Definition: Const.hpp:9
Menu::output
void output(int &argc, char **&argv)
Create argv and argc based on GUI menu.
Definition: Menu.cpp:123
Menu::click
bool click(const sf::RenderWindow &window)
Click manage on menu GUI.
Definition: Menu.cpp:175
Menu::out_mines
unsigned short int out_mines
Number of mines on the window.
Definition: Menu.hpp:24
Menu::clean
static void clean(const int argc, char **&argv)
Delete argv table.
Definition: Menu.cpp:108
Menu
Mange a menu GUI on the begin of game.
Definition: Menu.hpp:10
Const.hpp
Menu::width_txt
sf::Text width_txt
Text to display width of the board.
Definition: Menu.hpp:17
Menu::change
void change(unsigned short &val, const short int change, const short int minval, const short int maxval)
Change value.
Definition: Menu.cpp:250
Menu::handling
static void handling(int &argc, char **&argv)
Menu GUI handling.
Definition: Menu.cpp:46
Menu::out_height
unsigned short int out_height
Height of window.
Definition: Menu.hpp:23
DEFAULT_Y_SIZE
#define DEFAULT_Y_SIZE
Default Y size of board.
Definition: Const.hpp:8
Menu::mines_txt
sf::Text mines_txt
Text to display number mines on the board.
Definition: Menu.hpp:19
Menu::menu_bg
sf::Sprite menu_bg
Menu GUI background spirte.
Definition: Menu.hpp:15
Menu::update
void update()
Update text values to display.
Definition: Menu.cpp:228
Menu::allowHints
bool allowHints
Is hints will be allowed.
Definition: Menu.hpp:25
Menu::height_txt
sf::Text height_txt
Text to display height of the board.
Definition: Menu.hpp:18
Menu::Menu
Menu()
Construct a new Menu object.
Definition: Menu.cpp:11
Menu::out_width
unsigned short int out_width
Width of window.
Definition: Menu.hpp:22
Menu::hints_txt
sf::Text hints_txt
Text to display number mines on the board.
Definition: Menu.hpp:20
Menu::menu_texture
sf::Texture menu_texture
Menu GUI background texture.
Definition: Menu.hpp:14
Menu::~Menu
~Menu()=default
Destroy the Menu object (default)
DEFAULT_MINE
#define DEFAULT_MINE
Default number of mines.
Definition: Const.hpp:10
Menu::inside
static bool inside(const sf::Vector2i &pos, const sf::Vector2i &coo, const sf::Vector2i &size)
Is position pos is in the rectangle of coordinates coo and sizes size
Definition: Menu.cpp:258
Menu::insideX
static bool insideX(const sf::Vector2i &pos, const sf::Vector2i &coo, const sf::Vector2i &size)
Is pos.x is bigger than coo.x and smoller coo.x + size.x.
Definition: Menu.hpp:118