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 | #if defined(_MSC_VER) && !defined(snprintf) |
---|
42 | # define snprintf _snprintf |
---|
43 | #endif |
---|
44 | |
---|
45 | typedef CEGUI::String string; |
---|
46 | |
---|
47 | namespace CEGUI |
---|
48 | { |
---|
49 | |
---|
50 | typedef Event::Connection EventConnection; |
---|
51 | |
---|
52 | /************************************************************************* |
---|
53 | Functions for getting Thumb range pairs as two return values |
---|
54 | *************************************************************************/ |
---|
55 | void ceguiLua_Thumb_getHorzRange(Thumb* wnd, float* min, float* max); |
---|
56 | void ceguiLua_Thumb_getVertRange(Thumb* wnd, float* min, float* max); |
---|
57 | |
---|
58 | |
---|
59 | /************************************************************************* |
---|
60 | Functions for creating list box items |
---|
61 | *************************************************************************/ |
---|
62 | ListboxTextItem* ceguiLua_createListboxTextItem(const String& text, uint item_id, void* item_data, bool disabled, bool auto_delete); |
---|
63 | |
---|
64 | |
---|
65 | /************************************************************************ |
---|
66 | Stuff needed to make the iterators work |
---|
67 | *************************************************************************/ |
---|
68 | typedef PropertySet::Iterator PropertyIterator; |
---|
69 | typedef EventSet::Iterator EventIterator; |
---|
70 | typedef WindowManager::WindowIterator WindowIterator; |
---|
71 | typedef WindowFactoryManager::WindowFactoryIterator WindowFactoryIterator; |
---|
72 | typedef WindowFactoryManager::FalagardMappingIterator FalagardMappingIterator; |
---|
73 | typedef WindowFactoryManager::FalagardWindowMapping FalagardWindowMapping; |
---|
74 | typedef ImagesetManager::ImagesetIterator ImagesetIterator; |
---|
75 | typedef Imageset::ImageIterator ImageIterator; |
---|
76 | typedef SchemeManager::SchemeIterator SchemeIterator; |
---|
77 | typedef FontManager::FontIterator FontIterator; |
---|
78 | |
---|
79 | template <typename T> |
---|
80 | inline PropertyIterator ceguiLua_getPropertyIterator(const T* self) |
---|
81 | { |
---|
82 | return static_cast<const PropertySet*>(self)->getIterator(); |
---|
83 | } |
---|
84 | |
---|
85 | template <typename T> |
---|
86 | inline EventIterator ceguiLua_getEventIterator(const T* self) |
---|
87 | { |
---|
88 | return static_cast<const EventSet*>(self)->getIterator(); |
---|
89 | } |
---|
90 | |
---|
91 | |
---|
92 | /************************************************************************ |
---|
93 | OutStream |
---|
94 | *************************************************************************/ |
---|
95 | typedef std::ofstream FileStream; |
---|
96 | void ceguiLua_FileStream_open(FileStream*, const char* filename); |
---|
97 | |
---|
98 | |
---|
99 | /************************************************************************ |
---|
100 | CEGUI::System::getSystemKeys alternative |
---|
101 | *************************************************************************/ |
---|
102 | bool ceguiLua_System_isSystemKeyDown(const System* sys, SystemKey k); |
---|
103 | |
---|
104 | } |
---|
105 | |
---|
106 | // the binding file generates alot of |
---|
107 | // warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) |
---|
108 | #if defined(_MSC_VER) |
---|
109 | # pragma warning(disable : 4800) |
---|
110 | #endif |
---|