16 #include <boost/signal.hpp>
25 class DtChannelManager;
27 class DtEventProcessorInterface;
28 class DtInputDriverConfiguration;
29 class DtKeyAndMouseEventListener;
31 class DtKeyMapManager;
35 class DtObserverController;
36 class DtChannelConfiguration;
37 class DtObserverAnimator;
38 class DtObserverViewsManager;
58 const std::string& instanceName);
64 virtual bool onStart();
67 virtual bool onStop();
70 virtual bool onTick();
73 virtual const std::string& className()
const;
76 virtual bool processKeyEvent(
const DtKeyEvent& keyEvent,
80 virtual bool processMouseEvent(
const DtMouseEvent& mouseEvent,
83 virtual bool processPinchGesture(
const DtPinchGesture& pinchGesture,
87 virtual void hideMouse(
DtChannel* channel,
float mouseX,
float mouseY);
90 virtual bool isMouseHidden()
const;
93 virtual void showMouse(
DtChannel* channel);
96 virtual void centerMouse(
DtChannel* channel);
99 virtual void setMousePosition(
DtChannel* channel,
float x,
float y);
103 virtual void clearState();
130 const std::string& className);
139 bool saveKeyMapToFile(
const DtKeyMap& keyMap,
const std::string&
filename)
const;
143 DtKeyMap* loadKeyMapFromFile(
const std::string&
filename,
bool createBackup =
false);
149 void setKeyMap(
const std::string& mapName);
152 const std::string& keyMap()
const;
155 DtKeyMap* createKeyMap(
const std::string& mapName);
158 DtKeyMap* findKeyMap(
const std::string& mapName);
162 const std::string& functionName,
164 bool replace =
false,
170 const std::string& binaryName,
172 bool replace =
false);
175 virtual void realizeConfiguration(
178 virtual void realizeObserverConfiguration(
193 void addObserverState(
const std::string& observerName,
206 virtual void addObserver(
DtObserver* observer);
209 virtual void removeObserver(
DtObserver* observer);
212 virtual void removeObserver(
const std::string& name);
215 virtual std::vector<DtObserver*> observers()
const;
219 virtual DtObserver* findObserverByName(
const std::string& name);
220 virtual const DtObserver* findObserverByName(
const std::string& name)
const;
224 void setCurrentObserver(
const std::string& observerName);
230 void setTerrainContextEnabled(
bool enabled);
231 bool terrainContextEnabled()
const;
239 virtual void toggleTerrainScaling();
242 virtual void toggleWireframe();
245 virtual void toggleSimulationTimePaused();
248 virtual void incrementTerrainScaleFactor();
251 virtual void decrementTerrainScaleFactor();
254 virtual void toggleEntityLabels();
257 virtual void toggleRotateEntitySymbols();
260 virtual void toggleTacticalGraphics();
263 virtual void toggleEntityHatLines();
266 virtual void toggleTacticalGraphicsHatLines();
268 virtual void toggleEntityHatMode();
271 virtual void toggleTacticalGraphicsHatMode();
274 virtual void togglePropTransparencySelected();
278 virtual void toggleViewControl();
285 void setAllowObserverReset(
bool allow);
288 void saveObservers(
const std::string&
filename);
293 void loadObservers(
const std::string&
filename,
bool force =
false);
303 virtual void removeAnimatorFromObserver(
DtObserver *observer);
306 virtual void takeScreenCapture();
309 virtual void toggleDeveloperDebugUI();
317 void setCurrentObserver(
DtObserver* observer);
320 virtual void initializeKeyMapManager(
const std::string& defaultKeyMap);
321 virtual void bindFunctions();
323 virtual void createMaps();
327 virtual void loadMaps(
bool loadFromFactory =
false);
333 void removeObserver(
ObserversMap& observers,
const std::string& name);
335 void destroyObservers();
337 bool setCurrentObserverFromChannel(
const DtChannel& channel);
341 void slot_channelConfigurationModified(
const std::string& deName,
342 const std::string& winName,
const std::string& oldChannelName,
344 void slot_attachedToChanged(
DtObserver* observer);
347 void createRequiredObservers(
const std::string& engineName);
350 virtual void slot_displayEngineAdded(
const DtDeRecord& igRecord);
355 std::string restoreObserversPart1();
358 void restoreObserversPart2(
const std::string&
filename);
360 virtual void slot_displayEngineRealized(
const std::string&,
361 const std::string& engineName);