Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

LuaFunctor better doesn't inherit from Functor since it's used completely differently. Saves us the hassle of exporting FunctorPtr to Lua and a bunch of useless functions.

  • Property svn:eol-style set to native
File size: 7.6 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 ArgumentCompleter;
119    class ArgumentCompletionListElement;
120    class BaseObject;
121    template <class T>
122    class ClassFactory;
123    template <class T>
124    class ClassIdentifier;
125    class ClassTreeMask;
126    class ClassTreeMaskIterator;
127    class ClassTreeMaskNode;
128    class ClassTreeMaskObjectIterator;
129    class CommandEvaluation;
130    class CommandLineParser;
131    class CommandLineArgument;
132    class ConfigFile;
133    class ConfigFileEntry;
134    class ConfigFileEntryComment;
135    class ConfigFileEntryValue;
136    class ConfigFileManager;
137    class ConfigFileSection;
138    class ConfigValueContainer;
139    class ConsoleCommand;
140    class Core;
141    class DynLib;
142    class DynLibManager;
143    struct Event;
144    class EventState;
145    class Executor;
146    template <class T>
147    class ExecutorMember;
148    class ExecutorStatic;
149    class Factory;
150    class Functor;
151    template <class T>
152    class FunctorMember;
153    class FunctorStatic;
154    class Game;
155    class GameState;
156    struct GameStateInfo;
157    struct GameStateTreeNode;
158    class GraphicsManager;
159    class GUIManager;
160    class Identifier;
161    class IOConsole;
162    class IRC;
163    template <class T>
164    class Iterator;
165    class Language;
166    class LuaFunctor;
167    class LuaState;
168    class MemoryArchive;
169    class MemoryArchiveFactory;
170    class MetaObjectList;
171    class MetaObjectListElement;
172    class Namespace;
173    class NamespaceNode;
174    template <class T>
175    class ObjectList;
176    class ObjectListBase;
177    class ObjectListBaseElement;
178    template <class T>
179    class ObjectListElement;
180    template <class T>
181    class ObjectListIterator;
182    class OgreWindowEventListener;
183    class OrxonoxClass;
184    class PathConfig;
185    struct ResourceInfo;
186    class SettingsConfigFile;
187    class Shell;
188    class ShellListener;
189    template <class T>
190    class SmartPtr;
191    template <class T>
192    class SubclassIdentifier;
193    class TclBind;
194    struct TclInterpreterBundle;
195    template <class T>
196    class TclThreadList;
197    class TclThreadManager;
198    class Template;
199    class Thread;
200    class ThreadPool;
201    template <class T>
202    class WeakPtr;
203    class WindowEventListener;
204    class XMLFile;
205    class XMLNameListener;
206    template <class T, class O>
207    class XMLPortClassObjectContainer;
208    template <class T>
209    class XMLPortClassParamContainer;
210    class XMLPortObjectContainer;
211    class XMLPortParamContainer;
212
213    // Input
214    class BaseCommand;
215    class BufferedParamCommand;
216    class Button;
217    class HalfAxis;
218    class InputBuffer;
219    class InputDevice;
220    template <class Traits>
221    class InputDeviceTemplated;
222    class InputHandler;
223    class InputManager;
224    class InputState;
225    struct InputStatePriority;
226    class JoyStickQuantityListener;
227    class JoyStick;
228    class KeyBinder;
229    class KeyBinderManager;
230    class Keyboard;
231    class KeyDetector;
232    class KeyEvent;
233    class Mouse;
234    class ParamCommand;
235    class SimpleCommand;
236}
237
238#include "FunctorPtr.h"
239#include "ExecutorPtr.h"
240
241// CppTcl
242namespace Tcl
243{
244    class interpreter;
245    class object;
246}
247
248// Boost
249namespace boost
250{
251#if (BOOST_VERSION < 104400)
252    namespace filesystem
253    {
254        struct path_traits;
255        template <class String, class Traits> class basic_path;
256        typedef basic_path<std::string, path_traits> path;
257    }
258#else
259    namespace filesystem2
260    {
261        struct path_traits;
262        template <class String, class Traits> class basic_path;
263        typedef basic_path<std::string, path_traits> path;
264    }
265    namespace filesystem
266    {
267        using filesystem2::basic_path;
268        using filesystem2::path_traits;
269        using filesystem2::path;
270    }
271#endif
272    class thread;
273    class mutex;
274    class shared_mutex;
275    class condition_variable;
276}
277
278// Ogre
279namespace Ogre
280{
281    class DataStream;
282    template <class T> class SharedPtr;
283    typedef SharedPtr<DataStream> DataStreamPtr;
284}
285namespace orxonox
286{
287    // Import the Ogre::DataStream
288    using Ogre::DataStream;
289    using Ogre::DataStreamPtr;
290}
291
292// CEGUI
293namespace CEGUI
294{
295    class DefaultLogger;
296    class Logger;
297    class LuaScriptModule;
298
299    class OgreCEGUIRenderer;
300    class OgreCEGUIResourceProvider;
301    class OgreCEGUITexture;
302}
303
304// Lua
305struct lua_State;
306
307// TinyXML and TinyXML++
308class TiXmlString;
309class TiXmlOutStream;
310class TiXmlNode;
311class TiXmlHandle;
312class TiXmlDocument;
313class TiXmlElement;
314class TiXmlComment;
315class TiXmlUnknown;
316class TiXmlAttribute;
317class TiXmlText;
318class TiXmlDeclaration;
319class TiXmlParsingData;
320namespace ticpp
321{
322    class Document;
323    class Element;
324    class Declaration;
325    class StylesheetReference;
326    class Text;
327    class Comment;
328    class Attribute;
329}
330namespace orxonox
331{
332    using ticpp::Element;
333}
334
335#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.