Crazy Eddies GUI System  0.6.2
required.h
1 /***********************************************************************
2  filename: required.h
3  created: 16/3/2005
4  author: Tomas Lindquist Olsen
5 
6  purpose: Header that includes the necessary stuff needed for the Lua bindings
7 *************************************************************************/
8 /***************************************************************************
9  * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining
12  * a copy of this software and associated documentation files (the
13  * "Software"), to deal in the Software without restriction, including
14  * without limitation the rights to use, copy, modify, merge, publish,
15  * distribute, sublicense, and/or sell copies of the Software, and to
16  * permit persons to whom the Software is furnished to do so, subject to
17  * the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be
20  * included in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
26  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
27  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28  * OTHER DEALINGS IN THE SOFTWARE.
29  ***************************************************************************/
30 #include "CEGUI.h"
31 #include "CEGUILua.h"
32 #include "CEGUILuaFunctor.h"
33 #include <fstream>
34 
35 #define __operator_increment operator++
36 #define __operator_decrement operator--
37 #define __operator_dereference operator*
38 
39 #define LuaFunctorSubscribeEvent CEGUI::LuaFunctor::SubscribeEvent
40 
41 //This is used to keep compilers happy
42 #define CEGUIDeadException(e) &
43 
44 #if defined(_MSC_VER) && !defined(snprintf)
45 # define snprintf _snprintf
46 #endif
47 
48 typedef CEGUI::String string;
49 
50 namespace CEGUI
51 {
52 
53 /*************************************************************************
54  Helper class to enable us to represent an Event::Connection object
55  (which is actually a RefCounted<BoundSlot> object)
56 *************************************************************************/
58 {
59  RefCounted<BoundSlot> d_slot;
60 
61 public:
63  bool connected() const;
64  void disconnect();
65 };
66 
67 /*************************************************************************
68  Functions for getting Thumb range pairs as two return values
69 *************************************************************************/
70 void ceguiLua_Thumb_getHorzRange(Thumb* wnd, float* min, float* max);
71 void ceguiLua_Thumb_getVertRange(Thumb* wnd, float* min, float* max);
72 
73 
74 /*************************************************************************
75  Functions for creating list box items
76 *************************************************************************/
77 ListboxTextItem* ceguiLua_createListboxTextItem(const String& text, uint item_id, void* item_data, bool disabled, bool auto_delete);
78 
79 
80 /************************************************************************
81  Stuff needed to make the iterators work
82 *************************************************************************/
93 
94 template <typename T>
95 inline PropertyIterator ceguiLua_getPropertyIterator(const T* self)
96 {
97  return static_cast<const PropertySet*>(self)->getIterator();
98 }
99 
100 template <typename T>
101 inline EventIterator ceguiLua_getEventIterator(const T* self)
102 {
103  return static_cast<const EventSet*>(self)->getIterator();
104 }
105 
106 
107 /************************************************************************
108  OutStream
109 *************************************************************************/
110 typedef std::ofstream FileStream;
111 void ceguiLua_FileStream_open(FileStream*, const char* filename);
112 
113 
114 /************************************************************************
115  CEGUI::System::getSystemKeys alternative
116 *************************************************************************/
117 bool ceguiLua_System_isSystemKeyDown(const System* sys, SystemKey k);
118 
119 }
120 
121 // the binding file generates alot of
122 // warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
123 #if defined(_MSC_VER)
124 # pragma warning(disable : 4800)
125 #endif