Updated German translation
[dasher.git] / Src / DasherCore / ModuleManager.h
blob116e25b058d947174114903e88b88e7621a8de2c
1 // ModuleManager.h
2 //
3 // Copyright (c) 2008 The Dasher Team
4 //
5 // This file is part of Dasher.
6 //
7 // Dasher is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 2 of the License, or
10 // (at your option) any later version.
12 // Dasher is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License
18 // along with Dasher; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef MODULE_MANAGER_H
22 #define MODULE_MANAGER_H
24 #include "DasherModule.h"
26 #include <map>
27 #include <string>
28 #include <vector>
30 namespace Dasher {
31 class CDasherInput;
32 class CInputFilter;
34 enum ModuleType {InputDevice = 0, InputMethod = 1};
36 /// \ingroup Core
37 /// \{
38 class CModuleManager {
39 public:
40 ~CModuleManager();
41 CDasherModule *RegisterModule(CDasherModule *pModule);
42 CDasherModule *GetModule(ModuleID_t iID);
43 CDasherModule *GetModuleByName(const std::string strName);
44 CDasherInput *GetDefaultInputDevice();
45 CInputFilter *GetDefaultInputMethod();
46 void SetDefaultInputDevice(CDasherInput *);
47 void SetDefaultInputMethod(CInputFilter *);
49 void ListModules(int iType, std::vector<std::string> &vList);
51 private:
52 std::vector<CDasherModule *> m_vModules;
53 std::map<std::string, ModuleID_t> m_mapNameToID;
54 CDasherInput *m_pDefaultInputDevice;
55 CInputFilter *m_pDefaultInputMethod;
57 /// \}
61 #endif