VR-Forces 4.1 Class Documentation
DtKeyMapManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtKeyMapManager.h,v $ $Revision: 1.11 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 #include <map>
15 #include <list>
16 #include <boost/function.hpp>
17 #include <vrvCore/vrvCore.h>
18 #include <vrvCore/DtKeyEvent.h>
22 
23 namespace makVrv
24 {
25  class DtKeyMap;
26  class DtDe;
27  class DtKeyFunctionNameList;
28  class DtSettingsBackup;
29 
35  {
36  public:
37 
39  {
48  Miscellaneous
49  };
50 
51  typedef std::map<std::string, DtKeyMap*> KeyMapCatalog;
52 
53  typedef boost::function< void ()> KeyFunction;
54  typedef std::map<std::string, KeyFunction> KeyFunctionMap;
55  typedef std::map<std::string, std::string> BinaryFunctionNameMap;
56  typedef std::map<std::string, DtSettingsBackup*> BackupMap;
57 
59  typedef std::list<std::string> CategoryList;
60 
63  typedef std::map<FunctionCategory, CategoryList*> CategoryMap;
64 
66  static DtKeyMapManager& instance( DtDe& de );
67 
69  virtual ~DtKeyMapManager();
70 
72  virtual DtKeyMap* createKeyMap( const std::string& mapName, bool silent = false );
73 
75  virtual DtKeyMap* cloneKeyMap( const std::string& mapName,
76  const std::string& newMapName, bool silent = false );
77 
79  virtual void destroyKeyMap( const std::string& mapName, bool silent = false );
80 
82  virtual DtKeyMap* findKeyMap( const std::string& mapName );
83 
85  bool saveKeyMap(const DtKeyMap& keyMap) const;
86 
88  bool saveKeyMapToFile(const DtKeyMap& keyMap, const std::string& filename) const;
89 
91  DtKeyMap* loadKeyMapFromFile(const std::string& filename, bool createBackup = false);
92 
95  virtual void setFromRecord(const std::string& keyMap, const makArchives::DtKeyMapRecord& rec);
96 
98  virtual DtSettingsBackup* settingsBackup(const std::string& keyMap) const;
99 
107  virtual void categorizeKeyFunction( const std::string& functionName,
108  FunctionCategory functionCategory );
109 
110  virtual void categorizeBinaryKeyFunction( const std::string& functionName,
111  FunctionCategory functionCategory );
112 
113 
116  virtual void addKeyFunction( const std::string& functionName,
117  const KeyFunction& function, FunctionCategory functionCategory,
118  bool categorize = true );
119 
121  KeyFunction findKeyFunction( const std::string& functionName ) const;
122 
124  void removeKeyFunction( const std::string& functionName );
125 
127  virtual const KeyMapCatalog& keyMapCatalog() const;
128 
129  virtual const CategoryMap& categoryMap() const;
130  virtual const CategoryMap& binaryCategoryMap() const;
131 
133  const BinaryFunctionNameMap& binaryDownMap() const;
134 
136  const BinaryFunctionNameMap& binaryUpMap() const;
137 
139  //
142  virtual void addBinaryKeyFunction( const std::string& binaryName,
143  const std::string& keyDownFunctionName, const KeyFunction& downFunction,
144  const std::string& keyUpFuntionName, const KeyFunction& upFunction,
145  FunctionCategory functionCategory );
146 
149  virtual std::string lookupBinaryKeyFunctionName(
150  DtKeyEvent::KeyEventType eventType, const std::string& binaryName )
151  const;
152 
155  virtual bool processKeyEvent( const std::string& mapName,
156  const DtKeyEvent& keyEvent );
157 
159  virtual void activateMap( const std::string& mapName );
160 
162  virtual void deactivateMap( const std::string& mapName );
163 
164  virtual void setCurrentMap( const std::string& mapName );
165 
166  virtual const std::string& currentMap() const;
167 
169  void virtual clear();
170 
171  protected:
172 
174  DtKeyMapManager( DtDe& de );
175 
176  void invokeKeyFunctions( const DtKeyFunctionNameList& funcsToUse );
177 
180  virtual void createBackupFor(const std::string&, const std::string& factoryFile = "");
181 
182  protected:
183 
185  std::string myCurrentMap;
193  };
194 
198  {
199  public:
201  DtKeyMapSettingsBackup(DtKeyMapManager& man, const std::string& keyMap);
202 
204  virtual ~DtKeyMapSettingsBackup();
205 
207  virtual void restore(const DtSettingsBackup* from);
208 
210  virtual std::string backupClassType() const
211  {
212  return myKeyMap;
213  }
214 
216  virtual std::string backupName() const
217  {
218  return backupClassType();
219  }
220 
222  virtual DtSettingsBackup* create() const;
223 
225  virtual void write(boost::archive::xml_oarchive& ar);
226 
228  virtual void read(boost::archive::xml_iarchive& ar);
229 
231  const makArchives::DtKeyMapRecord& restoredRecord() const
232  {
233  return myRestoredRecord;
234  }
235 
236  protected:
237  std::string myKeyMap;
240  };
241 }
242 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)