Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/consolecommands3/src/libraries/core/CorePrereqs.h @ 7236

Last change on this file since 7236 was 7236, checked in by landauf, 14 years ago

replaced the temporary names of all ConsoleCommand related classes and functions by their real names

  • Property svn:eol-style set to native
File size: 7.7 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#include <boost/version.hpp>
40
41//-----------------------------------------------------------------------
42// Shared library settings
43//-----------------------------------------------------------------------
44
45#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( CORE_STATIC_BUILD )
46#  ifdef CORE_SHARED_BUILD
47#    define _CoreExport __declspec(dllexport)
48#  else
49#    if defined( __MINGW32__ )
50#      define _CoreExport
51#    else
52#      define _CoreExport __declspec(dllimport)
53#    endif
54#  endif
55#elif defined ( ORXONOX_GCC_VISIBILITY )
56#  define _CoreExport  __attribute__ ((visibility("default")))
57#else
58#  define _CoreExport
59#endif
60
61//-----------------------------------------------------------------------
62// Constants
63//-----------------------------------------------------------------------
64
65namespace orxonox
66{
67    static const uint32_t OBJECTID_UNKNOWN = static_cast<uint32_t>(-1);
68}
69
70//-----------------------------------------------------------------------
71// Enums
72//-----------------------------------------------------------------------
73
74namespace orxonox
75{
76    namespace XMLPort
77    {
78        enum Mode
79        {
80            NOP,
81            LoadObject,
82            SaveObject,
83            ExpandObject
84        };
85    }
86
87    namespace ConfigFileType
88    {
89        enum Value
90        {
91            Settings,
92            JoyStickCalibration,
93            CommandHistory
94            // Don't forget to adjust the array size in the ConfigFileManager when adding a new entry here!
95        };
96    }
97
98    namespace KeybindMode
99    {
100        enum Value
101        {
102            OnPress,
103            OnHold,
104            OnRelease,
105            None
106        };
107    };
108}
109
110//-----------------------------------------------------------------------
111// Forward declarations
112//-----------------------------------------------------------------------
113
114namespace orxonox
115{
116    typedef std::string LanguageEntryLabel;
117
118    class BaseObject;
119    template <class T>
120    class ClassFactory;
121    template <class T>
122    class ClassIdentifier;
123    class ClassTreeMask;
124    class ClassTreeMaskIterator;
125    class ClassTreeMaskNode;
126    class ClassTreeMaskObjectIterator;
127    class CommandLineParser;
128    class CommandLineArgument;
129    class ConfigFile;
130    class ConfigFileEntry;
131    class ConfigFileEntryComment;
132    class ConfigFileEntryValue;
133    class ConfigFileManager;
134    class ConfigFileSection;
135    class ConfigValueContainer;
136    class Core;
137    class DynLib;
138    class DynLibManager;
139    struct Event;
140    class EventState;
141    class Factory;
142    class Game;
143    class GameState;
144    struct GameStateInfo;
145    struct GameStateTreeNode;
146    class GraphicsManager;
147    class GUIManager;
148    class Identifier;
149    template <class T>
150    class Iterator;
151    class Language;
152    class LuaFunctor;
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 SettingsConfigFile;
173    template <class T>
174    class SmartPtr;
175    template <class T>
176    class SubclassIdentifier;
177    class Template;
178    class Thread;
179    class ThreadPool;
180    template <class T>
181    class WeakPtr;
182    class WindowEventListener;
183    class XMLFile;
184    class XMLNameListener;
185    template <class T, class O>
186    class XMLPortClassObjectContainer;
187    template <class T>
188    class XMLPortClassParamContainer;
189    class XMLPortObjectContainer;
190    class XMLPortParamContainer;
191
192    // Command
193    class ArgumentCompleter;
194    class ArgumentCompletionListElement;
195    class CommandEvaluation;
196    class ConsoleCommand;
197    class Executor;
198    template <class T>
199    class ExecutorMember;
200    class ExecutorStatic;
201    class Functor;
202    template <class O>
203    class FunctorMember;
204    typedef FunctorMember<void> FunctorStatic;
205    template <class F, class O>
206    class FunctorPointer;
207    class IOConsole;
208    class IRC;
209    class Shell;
210    class ShellListener;
211    class TclBind;
212    struct TclInterpreterBundle;
213    template <class T>
214    class TclThreadList;
215    class TclThreadManager;
216
217    // Input
218    class BaseCommand;
219    class BufferedParamCommand;
220    class Button;
221    class HalfAxis;
222    class InputBuffer;
223    class InputDevice;
224    template <class Traits>
225    class InputDeviceTemplated;
226    class InputHandler;
227    class InputManager;
228    class InputState;
229    struct InputStatePriority;
230    class JoyStickQuantityListener;
231    class JoyStick;
232    class KeyBinder;
233    class KeyBinderManager;
234    class Keyboard;
235    class KeyDetector;
236    class KeyEvent;
237    class Mouse;
238    class ParamCommand;
239    class SimpleCommand;
240}
241
242#include "command/FunctorPtr.h"
243#include "command/ExecutorPtr.h"
244
245// CppTcl
246namespace Tcl
247{
248    class interpreter;
249    class object;
250}
251
252// Boost
253namespace boost
254{
255#if (BOOST_VERSION < 104400)
256    namespace filesystem
257    {
258        struct path_traits;
259        template <class String, class Traits> class basic_path;
260        typedef basic_path<std::string, path_traits> path;
261    }
262#else
263    namespace filesystem2
264    {
265        struct path_traits;
266        template <class String, class Traits> class basic_path;
267        typedef basic_path<std::string, path_traits> path;
268    }
269    namespace filesystem
270    {
271        using filesystem2::basic_path;
272        using filesystem2::path_traits;
273        using filesystem2::path;
274    }
275#endif
276    class thread;
277    class mutex;
278    class shared_mutex;
279    class condition_variable;
280}
281
282// Ogre
283namespace Ogre
284{
285    class DataStream;
286    template <class T> class SharedPtr;
287    typedef SharedPtr<DataStream> DataStreamPtr;
288}
289namespace orxonox
290{
291    // Import the Ogre::DataStream
292    using Ogre::DataStream;
293    using Ogre::DataStreamPtr;
294}
295
296// CEGUI
297namespace CEGUI
298{
299    class DefaultLogger;
300    class Logger;
301    class LuaScriptModule;
302
303    class OgreCEGUIRenderer;
304    class OgreCEGUIResourceProvider;
305    class OgreCEGUITexture;
306}
307
308// Lua
309struct lua_State;
310
311// TinyXML and TinyXML++
312class TiXmlString;
313class TiXmlOutStream;
314class TiXmlNode;
315class TiXmlHandle;
316class TiXmlDocument;
317class TiXmlElement;
318class TiXmlComment;
319class TiXmlUnknown;
320class TiXmlAttribute;
321class TiXmlText;
322class TiXmlDeclaration;
323class TiXmlParsingData;
324namespace ticpp
325{
326    class Document;
327    class Element;
328    class Declaration;
329    class StylesheetReference;
330    class Text;
331    class Comment;
332    class Attribute;
333}
334namespace orxonox
335{
336    using ticpp::Element;
337}
338
339#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.