MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / AbstractApplicationMode

Class AbstractApplicationMode

source/modes/AbstractApplicationMode.h:35–139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33class GameEntity;
34
35class AbstractApplicationMode :
36 public OIS::MouseListener,
37 public OIS::KeyListener
38{
39public:
40 AbstractApplicationMode(ModeManager* modeManager, ModeManager::ModeType modeType):
41 mModeManager(modeManager),
42 mModeType(modeType)
43 {}
44
45 virtual ~AbstractApplicationMode() override;
46
47 //! \brief Input methods
48 enum DragType
49 {
50 tileSelection,
51 addNewRoom,
52 addNewTrap,
53 changeTile,
54 nullDragType
55 };
56
57 enum GuiAction
58 {
59 ButtonPressedCreatureWorker,
60 ButtonPressedCreatureFighter,
61 ButtonPressedMapLight
62 };
63
64 virtual void notifyGuiAction(GuiAction guiAction)
65 { }
66
67 virtual bool mouseMoved (const OIS::MouseEvent &arg) override;
68 virtual bool mousePressed (const OIS::MouseEvent &arg, OIS::MouseButtonID id) override;
69 virtual bool mouseReleased (const OIS::MouseEvent &arg, OIS::MouseButtonID id) override;
70 virtual bool keyPressed (const OIS::KeyEvent &arg) override;
71 virtual bool keyReleased (const OIS::KeyEvent &arg) override;
72 virtual void handleHotkeys (OIS::KeyCode keycode) {};
73
74 virtual OIS::Mouse* getMouse()
75 {
76 return mModeManager->getInputManager().mMouse;
77 }
78
79 virtual OIS::Keyboard* getKeyboard()
80 {
81 return mModeManager->getInputManager().mKeyboard;
82 }
83
84 //! \brief Called when activating a new mode
85 //! Used for example, to load the corresponding Gui Sheet
86 virtual void activate() = 0;
87
88 //! \brief Called when the mode is being deactivated.
89 virtual void deactivate()
90 {}
91
92 //! \brief Makes the handling of louse and keyboard interact with this mode.

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected