]> git.localhorst.tv Git - l2e.git/blob - src/menu/CapsuleChangeMenu.h
bd126011536d051d37a13d30b7d0522dd935d130
[l2e.git] / src / menu / CapsuleChangeMenu.h
1 #ifndef MENU_CAPSULECHANGEMENU_H_
2 #define MENU_CAPSULECHANGEMENU_H_
3
4 namespace common {
5         class Capsule;
6 }
7 namespace math {
8         template<class>
9         class Vector;
10 }
11 namespace menu {
12         class CapsuleMenu;
13 }
14
15 #include "../app/State.h"
16
17 namespace menu {
18
19 class CapsuleMenu;
20
21 class CapsuleChangeMenu
22 : public app::State {
23
24 public:
25         explicit CapsuleChangeMenu(CapsuleMenu *parent);
26
27 public:
28         virtual void HandleEvents(const app::Input &);
29         virtual void UpdateWorld(Uint32 deltaT);
30         virtual void Render(SDL_Surface *);
31
32         void RenderClasses(SDL_Surface *, const math::Vector<int> &) const;
33
34 public:
35         int Width() const;
36         int Height() const;
37
38         void NextCapsule();
39         void PreviousCapsule();
40         void NextClass();
41         void PreviousClass();
42
43 private:
44         virtual void OnEnterState(SDL_Surface *screen);
45         virtual void OnExitState(SDL_Surface *screen);
46         virtual void OnResumeState(SDL_Surface *screen);
47         virtual void OnPauseState(SDL_Surface *screen);
48
49         virtual void OnResize(int width, int height);
50
51         common::Capsule &GetCapsule();
52         const common::Capsule &GetCapsule() const;
53
54 private:
55         CapsuleMenu *parent;
56
57 };
58
59 }
60
61 #endif /* MENU_CAPSULECHANGEMENU_H_ */