Crazy Eddie's GUI System
0.8.4
Main Page
Related Pages
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Pages
Base.h
1
/***********************************************************************
2
created: 20/2/2004
3
author: Paul D Turner
4
5
purpose: Base include used within the system
6
This contains various lower level bits required
7
by other parts of the system. All other library
8
headers will include this file.
9
*************************************************************************/
10
/***************************************************************************
11
* Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
12
*
13
* Permission is hereby granted, free of charge, to any person obtaining
14
* a copy of this software and associated documentation files (the
15
* "Software"), to deal in the Software without restriction, including
16
* without limitation the rights to use, copy, modify, merge, publish,
17
* distribute, sublicense, and/or sell copies of the Software, and to
18
* permit persons to whom the Software is furnished to do so, subject to
19
* the following conditions:
20
*
21
* The above copyright notice and this permission notice shall be
22
* included in all copies or substantial portions of the Software.
23
*
24
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
27
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
28
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
29
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
30
* OTHER DEALINGS IN THE SOFTWARE.
31
***************************************************************************/
32
#ifndef _CEGUIBase_h_
33
#define _CEGUIBase_h_
34
35
// bring in configuration options
36
#include "CEGUI/Config.h"
37
38
// add CEGUI version defines
39
#include "CEGUI/Version.h"
40
41
#include <cassert>
42
#include <algorithm>
43
44
/*************************************************************************
45
Dynamic Library import / export control conditional
46
(Define CEGUIBASE_EXPORTS to export symbols, else they are imported)
47
*************************************************************************/
48
#if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(CEGUI_STATIC)
49
# ifdef CEGUIBASE_EXPORTS
50
# define CEGUIEXPORT __declspec(dllexport)
51
# else
52
# define CEGUIEXPORT __declspec(dllimport)
53
# endif
54
# define CEGUIPRIVATE
55
#else
56
# define CEGUIEXPORT
57
# define CEGUIPRIVATE
58
#endif
59
60
61
// totally kill this warning (debug info truncated to 255 chars etc...) on <= VC6
62
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
63
# pragma warning(disable : 4786)
64
#endif
65
66
67
// Detect macros for min / max and undefine (with a warning where possible)
68
#if defined(max)
69
# if defined(_MSC_VER)
70
# pragma message("Macro definition of max detected - undefining")
71
# elif defined (__GNUC__)
72
# warning ("Macro definition of max detected - undefining")
73
# endif
74
# undef max
75
#endif
76
#if defined(min)
77
# if defined(_MSC_VER)
78
# pragma message("Macro definition of min detected - undefining")
79
# elif defined (__GNUC__)
80
# warning ("Macro definition of min detected - undefining")
81
# endif
82
# undef min
83
#endif
84
85
86
// include this to see if it defines _STLPORT_VERION
87
# include <string>
88
89
// fix to undefine _STLP_DEBUG if STLport is not actually being used
90
// (resolves some unresolved externals concerning boost)
91
#if defined(_STLP_DEBUG) && defined(_MSC_VER) && (_MSC_VER >= 1200)
92
# if !defined(_STLPORT_VERSION)
93
# undef _STLP_DEBUG
94
# endif
95
#endif
96
97
// The following defines macros used within CEGUI for std::min/std::max
98
// usage, and is done as a compatibility measure for VC6 with native STL.
99
#if defined(_MSC_VER) && (_MSC_VER <= 1200) && !defined(_STLPORT_VERSION)
100
# define ceguimin std::_cpp_min
101
# define ceguimax std::_cpp_max
102
#else
103
# define ceguimin std::min
104
# define ceguimax std::max
105
#endif
106
107
// CEGUI's Exception macros
108
// This provides a mechanism to override how exception handling is used. Note
109
// that in general this facility _should not be used_. Attempts to use this
110
// to disable exceptions to 'make things easier' are doomed to failure. CEGUI
111
// becomes less robust without exceptions (because they are used internally by
112
// CEGUI). In addition, overriding the exception mechanism will also cause
113
// memory leaks in various places. This is your only warning about such things,
114
// if you decide to continue anyway you hereby waive any right to complain :-p
115
#ifndef CEGUI_TRY
116
# define CEGUI_TRY try
117
#endif
118
#ifndef CEGUI_CATCH
119
# define CEGUI_CATCH(e) catch (e)
120
#endif
121
#ifndef CEGUI_THROW
122
# define CEGUI_THROW(e) throw e
123
#endif
124
#ifndef CEGUI_RETHROW
125
# define CEGUI_RETHROW throw
126
#endif
127
128
// CEGUI_FUNCTION_NAME - CEGUI::String containing current function name
129
// in the best form we can get it
130
#if defined(_MSC_VER)
131
# define CEGUI_FUNCTION_NAME CEGUI::String(__FUNCSIG__)
132
#elif defined(__GNUC__)
133
# define CEGUI_FUNCTION_NAME CEGUI::String(__PRETTY_FUNCTION__)
134
#elif __STDC_VERSION__ >= 199901L
135
# define CEGUI_FUNCTION_NAME CEGUI::String(__func__)
136
#else
137
# define CEGUI_FUNCTION_NAME CEGUI::String("[Function name unavailable]")
138
#endif
139
140
/*************************************************************************
141
Documentation for the CEGUI namespace itself
142
*************************************************************************/
150
namespace
CEGUI
151
{
152
153
/*************************************************************************
154
Simplification of some 'unsigned' types
155
*************************************************************************/
156
typedef
unsigned
long
ulong;
157
typedef
unsigned
short
ushort;
158
typedef
unsigned
int
uint;
159
typedef
unsigned
char
uchar;
160
161
typedef
long
long
int64;
162
typedef
int
int32;
163
typedef
short
int16;
164
typedef
char
int8;
165
166
typedef
unsigned
long
long
uint64;
167
typedef
unsigned
int
uint32;
168
typedef
unsigned
short
uint16;
169
typedef
unsigned
char
uint8;
170
171
172
/*************************************************************************
173
System wide constants
174
*************************************************************************/
175
static
const
float
DefaultNativeHorzRes
= 640.0f;
176
static
const
float
DefaultNativeVertRes
= 480.0f;
177
178
179
/*************************************************************************
180
Additional typedefs
181
*************************************************************************/
182
typedef
std::ostream
OutStream
;
183
}
// end of CEGUI namespace section
184
185
// improve readability - http://www.parashift.com/c++-faq-lite/pointers-to-members.html#faq-33.6
186
#define CEGUI_CALL_MEMBER_FN(object, ptrToMember) ((object).*(ptrToMember))
187
188
/*************************************************************************
189
Bring in forward references to all GUI base system classes
190
*************************************************************************/
191
#include "CEGUI/ForwardRefs.h"
192
#include "CEGUI/MemoryAllocation.h"
193
194
#endif // end of guard _CEGUIBase_h_
cegui
include
CEGUI
Base.h
Generated by
1.8.3.1