YAPOG  0.0.1
Yet Another Pokemon Online Game
GameScreen.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_GAMESCREEN_HPP
2 # define YAPOG_GAMESCREEN_HPP
3 
4 # include "YAPOG/Macros.hpp"
6 
7 namespace yap
8 {
11  {
13 
14  public:
15 
18  explicit GameScreen (const ScreenType& type);
19  virtual ~GameScreen ();
20 
23  virtual void Init ();
24  virtual void Activate ();
25  virtual void Deactivate ();
26 
27  virtual void NextFrame ();
28 
29  virtual const ScreenType& Run (const Time& dt, IDrawingContext& context);
30 
31  virtual const GuiManager& GetGuiManager () const;
32  virtual GuiManager& GetGuiManager ();
33 
34  virtual const ScreenType& GetType () const;
35 
36  virtual Event<IGameScreen&>& OnGameExitedEvent ();
38 
41  virtual bool OnEvent (const GuiEvent& guiEvent);
42  virtual bool OnPriorityEvent (const GuiEvent& guiEvent);
44 
46 
47  protected:
48 
49  void ExitGame ();
50 
51  virtual void CreateGuiManager ();
52 
54  virtual void HandleRun (
55  const Time& dt,
56  IDrawingContext& context);
58  virtual void HandleInit ();
60  virtual void HandleActivate ();
62  virtual void HandleDeactivate ();
64  virtual bool HandleOnEvent (const GuiEvent& guiEvent);
66  virtual bool HandleOnPriorityEvent (const GuiEvent& guiEvent);
67 
72 
73  private:
74 
77  };
78 } // namespace yap
79 
80 #endif // YAPOG_GAMESCREEN_HPP