Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/core5/src/libraries/core/CorePrereqs.h @ 5863

Last change on this file since 5863 was 5863, checked in by rgrieder, 15 years ago

New class: KeyBinderManager (yes, it really was necessary, I'm not such a Fan of zillions of classes as well) and moved the keybind command to it from GSLevel.
This new Singleton simply maps the keybind command to the right KeyBinder, selected by KeyBinderManager::setCurrent().
There is also a default KeyBinder (with keybindings.ini as file), which should do the Trick for now. Other Keybinders should only server special purposes (like in mini games or so).

DELETE YOUR keybindings.ini FILE! =
  • Property svn:eol-style set to native
File size: 6.8 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Reto Grieder
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30@file
31@brief
32    Shared library macros, enums, constants and forward declarations for the core library
33*/
34
35#ifndef _CorePrereqs_H__
36#define _CorePrereqs_H__
37
38#include "OrxonoxConfig.h"
39
40//-----------------------------------------------------------------------
41// Shared library settings
42//-----------------------------------------------------------------------
43
44#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( CORE_STATIC_BUILD )
45#  ifdef CORE_SHARED_BUILD
46#    define _CoreExport __declspec(dllexport)
47#  else
48#    if defined( __MINGW32__ )
49#      define _CoreExport
50#    else
51#      define _CoreExport __declspec(dllimport)
52#    endif
53#  endif
54#elif defined ( ORXONOX_GCC_VISIBILITY )
55#  define _CoreExport  __attribute__ ((visibility("default")))
56#else
57#  define _CoreExport
58#endif
59
60//-----------------------------------------------------------------------
61// Constants
62//-----------------------------------------------------------------------
63
64namespace orxonox
65{
66    static const uint32_t OBJECTID_UNKNOWN = static_cast<uint32_t>(-1);
67}
68
69//-----------------------------------------------------------------------
70// Enums
71//-----------------------------------------------------------------------
72
73namespace orxonox
74{
75    namespace XMLPort
76    {
77        enum Mode
78        {
79            LoadObject,
80            SaveObject,
81            ExpandObject
82        };
83    }
84
85    namespace KeybindMode
86    {
87        enum Value
88        {
89            OnPress,
90            OnHold,
91            OnRelease,
92            None
93        };
94    };
95}
96
97//-----------------------------------------------------------------------
98// Forward declarations
99//-----------------------------------------------------------------------
100
101namespace orxonox
102{
103    typedef std::string LanguageEntryLabel;
104
105    class ArgumentCompleter;
106    class ArgumentCompletionListElement;
107    class BaseObject;
108    template <class T>
109    class ClassFactory;
110    template <class T>
111    class ClassIdentifier;
112    class ClassTreeMask;
113    class ClassTreeMaskIterator;
114    class ClassTreeMaskNode;
115    class ClassTreeMaskObjectIterator;
116    class CommandEvaluation;
117    class CommandLine;
118    class CommandLineArgument;
119    class ConfigFile;
120    class ConfigFileEntry;
121    class ConfigFileEntryComment;
122    class ConfigFileEntryValue;
123    class ConfigFileManager;
124    class ConfigFileSection;
125    struct ConfigFileType;
126    class ConfigValueContainer;
127    class ConsoleCommand;
128    class Core;
129    class DynLib;
130    class DynLibManager;
131    struct Event;
132    class EventContainer;
133    class Executor;
134    template <class T>
135    class ExecutorMember;
136    class ExecutorStatic;
137    class Factory;
138    class Functor;
139    template <class T>
140    class FunctorMember;
141    class FunctorStatic;
142    class Game;
143    class GameState;
144    struct GameStateInfo;
145    struct GameStateTreeNode;
146    class GraphicsManager;
147    class GUIManager;
148    class Identifier;
149    class IRC;
150    template <class T>
151    class Iterator;
152    class Language;
153    class LuaState;
154    class MemoryArchive;
155    class MemoryArchiveFactory;
156    class MetaObjectList;
157    class MetaObjectListElement;
158    class Namespace;
159    class NamespaceNode;
160    template <class T>
161    class ObjectList;
162    class ObjectListBase;
163    class ObjectListBaseElement;
164    template <class T>
165    class ObjectListElement;
166    template <class T>
167    class ObjectListIterator;
168    class OgreWindowEventListener;
169    class OrxonoxClass;
170    class PathConfig;
171    struct ResourceInfo;
172    class Shell;
173    class ShellListener;
174    template <class T>
175    class SmartPtr;
176    template <class T>
177    class SubclassIdentifier;
178    class TclBind;
179    struct TclInterpreterBundle;
180    template <class T>
181    class TclThreadList;
182    class TclThreadManager;
183    class Template;
184    class Thread;
185    class ThreadPool;
186    template <class T>
187    class WeakPtr;
188    class WindowEventListener;
189    class XMLFile;
190    class XMLNameListener;
191    template <class T, class O>
192    class XMLPortClassObjectContainer;
193    template <class T>
194    class XMLPortClassParamContainer;
195    class XMLPortObjectContainer;
196    class XMLPortParamContainer;
197
198    // Input
199    class BaseCommand;
200    class BufferedParamCommand;
201    class Button;
202    class HalfAxis;
203    class InputBuffer;
204    class InputDevice;
205    template <class Traits>
206    class InputDeviceTemplated;
207    class InputHandler;
208    class InputManager;
209    class InputState;
210    struct InputStatePriority;
211    class JoyStickQuantityListener;
212    class JoyStick;
213    class KeyBinder;
214    class KeyBinderManager;
215    class Keyboard;
216    class KeyDetector;
217    class KeyEvent;
218    class Mouse;
219    class ParamCommand;
220    class SimpleCommand;
221}
222
223// CppTcl
224namespace Tcl
225{
226    class interpreter;
227    class object;
228}
229
230// Boost
231namespace boost
232{
233    namespace filesystem
234    {
235        struct path_traits;
236        template <class String, class Traits> class basic_path;
237        typedef basic_path<std::string, path_traits> path;
238    }
239    class thread;
240    class mutex;
241    class shared_mutex;
242    class condition_variable;
243}
244
245// Ogre
246namespace Ogre
247{
248    class DataStream;
249    template <class T> class SharedPtr;
250    typedef SharedPtr<DataStream> DataStreamPtr;
251}
252namespace orxonox
253{
254    // Import the Ogre::DataStream
255    using Ogre::DataStream;
256    using Ogre::DataStreamPtr;
257}
258
259// CEGUI
260namespace CEGUI
261{
262    class DefaultLogger;
263    class Logger;
264    class LuaScriptModule;
265
266    class OgreCEGUIRenderer;
267    class OgreCEGUIResourceProvider;
268    class OgreCEGUITexture;
269}
270
271// Lua
272struct lua_State;
273
274// TinyXML and TinyXML++
275class TiXmlString;
276class TiXmlOutStream;
277class TiXmlNode;
278class TiXmlHandle;
279class TiXmlDocument;
280class TiXmlElement;
281class TiXmlComment;
282class TiXmlUnknown;
283class TiXmlAttribute;
284class TiXmlText;
285class TiXmlDeclaration;
286class TiXmlParsingData;
287namespace ticpp
288{
289    class Document;
290    class Element;
291    class Declaration;
292    class StylesheetReference;
293    class Text;
294    class Comment;
295    class Attribute;
296}
297namespace orxonox
298{
299    using ticpp::Element;
300}
301
302#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.