00001 /************************************************************************ 00002 filename: CEGUIBase.h 00003 created: 20/2/2004 00004 author: Paul D Turner 00005 00006 purpose: Base include used within the system 00007 This contains various lower level bits required 00008 by other parts of the system. All other library 00009 headers will include this file. 00010 *************************************************************************/ 00011 /************************************************************************* 00012 Crazy Eddie's GUI System (http://www.cegui.org.uk) 00013 Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk) 00014 00015 This library is free software; you can redistribute it and/or 00016 modify it under the terms of the GNU Lesser General Public 00017 License as published by the Free Software Foundation; either 00018 version 2.1 of the License, or (at your option) any later version. 00019 00020 This library is distributed in the hope that it will be useful, 00021 but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00023 Lesser General Public License for more details. 00024 00025 You should have received a copy of the GNU Lesser General Public 00026 License along with this library; if not, write to the Free Software 00027 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00028 *************************************************************************/ 00029 #ifndef _CEGUIBase_h_ 00030 #define _CEGUIBase_h_ 00031 00032 // bring in configuration options 00033 #include "CEGUIConfig.h" 00034 00035 00036 /************************************************************************* 00037 Dynamic Library import / export control conditional 00038 (Define CEGUIBASE_EXPORTS to export symbols, else they are imported) 00039 *************************************************************************/ 00040 #if defined( __WIN32__ ) || defined( _WIN32 ) 00041 # ifdef CEGUIBASE_EXPORTS 00042 # define CEGUIBASE_API __declspec(dllexport) 00043 # else 00044 # define CEGUIBASE_API __declspec(dllimport) 00045 # endif 00046 #else 00047 # define CEGUIBASE_API 00048 #endif 00049 00050 00051 // totally kill this warning (debug info truncated to 255 chars etc...) on <= VC6 00052 #if defined(_MSC_VER) && (_MSC_VER <= 1200) 00053 # pragma warning(disable : 4786) 00054 #endif 00055 00056 // include this to see if it defines _STLPORT_VERION 00057 # include <string> 00058 00059 // fix to undefine _STLP_DEBUG if STLport is not actually being used 00060 // (resolves some unresolved externals concerning boost) 00061 #if defined(_STLP_DEBUG) && defined(_MSC_VER) && (_MSC_VER >= 1200) 00062 # if !defined(_STLPORT_VERSION) 00063 # undef _STLP_DEBUG 00064 # endif 00065 #endif 00066 00067 00068 // The following defines macros used within CEGUI for std::min/std::max 00069 // usage, and is done as a compatibility measure for VC6 with native STL. 00070 #if defined(_MSC_VER) && (_MSC_VER <= 1200) && !defined(_STLPORT_VERSION) 00071 # define ceguimin std::_cpp_min 00072 # define ceguimax std::_cpp_max 00073 #else 00074 # define ceguimin std::min 00075 # define ceguimax std::max 00076 #endif 00077 00078 00079 /************************************************************************* 00080 Documentation for the CEGUI namespace itself 00081 *************************************************************************/ 00089 namespace CEGUI 00090 { 00091 00092 /************************************************************************* 00093 Simplification of some 'unsigned' types 00094 *************************************************************************/ 00095 typedef unsigned long ulong; 00096 typedef unsigned short ushort; 00097 typedef unsigned int uint; 00098 typedef unsigned char uchar; 00099 00100 typedef unsigned int uint32; 00101 typedef unsigned short uint16; 00102 typedef unsigned char uint8; 00103 00104 00105 /************************************************************************* 00106 System wide constants 00107 *************************************************************************/ 00108 static const float DefaultNativeHorzRes = 640.0f; 00109 static const float DefaultNativeVertRes = 480.0f; 00110 00111 } // end of CEGUI namespace section 00112 00113 00127 #if defined(CEGUI_ALIGN_ELEMENTS_TO_PIXELS) 00128 # define PixelAligned(x) ( (float)(int)(( x ) + 0.5f) ) 00129 #else 00130 # define PixelAligned(x) ( x ) 00131 #endif 00132 00133 00134 /************************************************************************* 00135 Bring in forward references to all GUI base system classes 00136 *************************************************************************/ 00137 #include "CEGUIForwardRefs.h" 00138 00139 00140 #endif // end of guard _CEGUIBase_h_