Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/external/ceguilua/ceguilua-0.6.2/ceguilua/required.h @ 5781

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

Reverted trunk again. We might want to find a way to delete these revisions again (x3n's changes are still available as diff in the commit mails).

  • Property svn:eol-style set to native
File size: 4.9 KB
Line 
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
48typedef CEGUI::String string;
49
50namespace 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*************************************************************************/
57class EventConnection
58{
59    RefCounted<BoundSlot> d_slot;
60
61public:
62    EventConnection(RefCounted<BoundSlot> slot);
63    bool connected() const;
64    void disconnect();
65};
66
67/*************************************************************************
68        Functions for getting Thumb range pairs as two return values
69*************************************************************************/
70void ceguiLua_Thumb_getHorzRange(Thumb* wnd, float* min, float* max);
71void ceguiLua_Thumb_getVertRange(Thumb* wnd, float* min, float* max);
72
73
74/*************************************************************************
75        Functions for creating list box items
76*************************************************************************/
77ListboxTextItem* 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*************************************************************************/
83typedef PropertySet::Iterator PropertyIterator;
84typedef EventSet::Iterator EventIterator;
85typedef WindowManager::WindowIterator WindowIterator;
86typedef WindowFactoryManager::WindowFactoryIterator WindowFactoryIterator;
87typedef WindowFactoryManager::FalagardMappingIterator FalagardMappingIterator;
88typedef WindowFactoryManager::FalagardWindowMapping FalagardWindowMapping;
89typedef ImagesetManager::ImagesetIterator ImagesetIterator;
90typedef Imageset::ImageIterator ImageIterator;
91typedef SchemeManager::SchemeIterator SchemeIterator;
92typedef FontManager::FontIterator FontIterator;
93
94template <typename T>
95inline PropertyIterator ceguiLua_getPropertyIterator(const T* self)
96{
97    return static_cast<const PropertySet*>(self)->getIterator();
98}
99
100template <typename T>
101inline EventIterator ceguiLua_getEventIterator(const T* self)
102{
103    return static_cast<const EventSet*>(self)->getIterator();
104}
105
106
107/************************************************************************
108    OutStream
109*************************************************************************/
110typedef std::ofstream FileStream;
111void ceguiLua_FileStream_open(FileStream*, const char* filename);
112
113
114/************************************************************************
115    CEGUI::System::getSystemKeys alternative
116*************************************************************************/
117bool 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
Note: See TracBrowser for help on using the repository browser.