-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMenuManager.h
50 lines (40 loc) · 1.21 KB
/
MenuManager.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef MenuManager_h
#define MenuManager_h
#include "Screen.h"
#include "Prompt.h"
#include "SelectBox.h"
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
using namespace sf;
class ManagerManager;
class MenuManager : public Screen
{
private:
short int selectedFontSize = 48;
Text options[4];
IntRect optionBoxes[4];
SelectBox selectBoxes[4];
enum class SelectedOption { play, settings, leaderboard, exit };
SelectedOption selectedOption = SelectedOption::play;
void draw();
void drawPlay();
void drawSettings();
void drawLeaderBoard();
void drawExit();
void drawTitle();
bool prompting=false;
IntRect promptOptionBoxes[2];
Prompt prompt;
void setSelectedOption(SelectedOption selectedOption);
void setSelectedOption(short int selectedOptionIndex);
protected:
virtual void drawSelected(); //from screen
public:
SelectedOption getSelectedOption() { return this->selectedOption; }
virtual void update(); //from Screen
virtual void manageInput(Keyboard::Key key); //from Screen
virtual void manageInput(Mouse::Button button, bool released = 0); //from Screen
virtual void updateMouse(); //from screen
MenuManager(RenderWindow& window, ManagerManager& manager_ref);
};
#endif // !MenuManager_h