Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

LgiDefs.h

Go to the documentation of this file.
00001 
00009 #ifndef _LGIDEFS_H_
00010 #define _LGIDEFS_H_
00011 
00012 // Unsafe typedefs, for backward compatibility
00013 typedef     unsigned char               uchar;
00014 typedef     unsigned short              ushort;
00015 typedef     unsigned int                uint;
00016 typedef     unsigned long               ulong;
00017 
00018 // Length safe typedesf, use these in new code
00019 
00020 #ifndef BEOS
00021 
00022 typedef     char                        int8;
00024 typedef     unsigned char               uint8;
00025 #endif
00026 
00027 typedef     short                       int16;
00029 typedef     unsigned short              uint16;
00030 #ifndef BEOS
00031 
00032 typedef     int                         int32;
00034 typedef     unsigned int                uint32;
00035 #endif
00036 
00037 #ifdef _MSC_VER
00038 
00039 typedef     signed __int64              int64;
00041 typedef     unsigned __int64            uint64;
00042 #else
00043 
00044 typedef     signed long long            int64;
00046 typedef     unsigned long long          uint64;
00047 #endif
00048 
00049 #if defined(WIN32)
00050 #if defined _MSC_VER
00051 typedef     unsigned short              char16;
00052 #else
00053 typedef     wchar_t                     char16;
00054 #endif
00055 #elif defined(MAC)
00056 typedef     unsigned short              char16;
00057 #else
00092 typedef     unsigned int                char16;
00093 #endif
00094 
00095 // Basic macros
00096 // #define abs(a)                       (((a) > 0) ? (a) : -(a))
00097 #define min(a,b)                        (((a) < (b)) ? (a) : (b))
00098 #define max(a,b)                        (((a) > (b)) ? (a) : (b))
00099 #define limit(i,l,u)                    (((i)<(l)) ? (l) : (((i)>(u)) ? (u) : (i)))
00100 #define makelong(a, b)                  ((a)<<16 | (b&0xFFFF))
00101 #define loword(a)                       (a&0xFFFF)
00102 #define hiword(a)                       (a>>16)
00103 #define LgiSwap(a, b)                   { int n = a; a = b; b = n; }
00104 
00105 // Operators
00106 #define NOT                             !
00107 #define AND                             &&
00108 #define OR                              ||
00109 
00110 // Good ol NULLy
00111 #ifndef NULL
00112 #define NULL                            0
00113 #endif
00114 
00115 // Some objectish ones
00116 #define ZeroObj(obj)                    memset(&obj, 0, sizeof(obj))
00117 #define CountOf(array)                  (sizeof(array)/sizeof(array[0]))
00118 #define StrEmpty(s)                     (s)[0] = 0
00119 #define IsStrEmpty(s)                   ((NOT s) OR ((s)[0] == 0))
00120 
00121 #ifndef MEMORY_DEBUG
00122 
00123     #define NEW(obj)                    new obj
00124     #define DeleteObj(obj)              if (obj) { delete obj; obj = 0; }
00125     #define DeleteArray(obj)            if (obj) { delete [] obj; obj = 0; }
00126 
00127 #endif
00128 
00129 // Asserts
00130 #ifdef WIN32
00131 
00132     #include "assert.h"
00133     #define LgiAssert(a)                assert(a)
00134 
00135 #else
00136 
00137     extern void                         _lgi_assert(bool b, char *test, char *file, int line);
00138     #define LgiAssert(b)                _lgi_assert(b, #b, __FILE__, __LINE__)
00139     
00140 #endif
00141 
00142 // Flags
00143 #define SetFlag(i, f)                   (i) |= (f)
00144 #define ClearFlag(i, f)                 (i) &= ~(f)
00145 #define TestFlag(i, f)                  (((i) & (f)) != 0)
00146 
00147 // Defines
00148 
00151 #define LGI_OS_UNKNOWN                  0
00154 #define LGI_OS_WIN9X                    1
00157 #define LGI_OS_WINNT                    2
00160 #define LGI_OS_BEOS                     3
00163 #define LGI_OS_LINUX                    4
00166 #define LGI_OS_ATHEOS                   5
00169 #define LGI_OS_MAC_OS_9                 6
00172 #define LGI_OS_MAC_OS_X                 7
00173 
00174 #define LGI_OS_MAX                      8
00175 
00176 // System Colours
00177 
00179 #define LC_BLACK                        LgiColour(0)
00180 
00181 #define LC_DKGREY                       LgiColour(1)
00182 
00183 #define LC_MIDGREY                      LgiColour(2)
00184 
00185 #define LC_LTGREY                       LgiColour(3)
00186 
00187 #define LC_WHITE                        LgiColour(4)
00188 
00190 #define LC_SHADOW                       LgiColour(5)
00191 
00192 #define LC_LOW                          LgiColour(6)
00193 
00194 #define LC_MED                          LgiColour(7)
00195 
00196 #define LC_HIGH                         LgiColour(8)
00197 
00198 #define LC_LIGHT                        LgiColour(9)
00199 
00201 #define LC_DIALOG                       LgiColour(10)
00202 
00203 #define LC_WORKSPACE                    LgiColour(11)
00204 
00205 #define LC_TEXT                         LgiColour(12)
00206 
00207 #define LC_SELECTION                    LgiColour(13)
00208 
00209 #define LC_SEL_TEXT                     LgiColour(14)
00210 
00211 #define LC_ACTIVE_TITLE                 LgiColour(15)
00212 #define LC_ACTIVE_TITLE_TEXT            LgiColour(16)
00213 #define LC_INACTIVE_TITLE               LgiColour(17)
00214 #define LC_INACTIVE_TITLE_TEXT          LgiColour(18)
00215 
00216 #define LC_MENU_BACKGROUND              LgiColour(19)
00217 #define LC_MENU_TEXT                    LgiColour(20)
00218 
00219 #define LC_MAXIMUM                      21
00220 
00221 // Cursors
00222 
00224 #define LCUR_Normal                     0
00225 
00226 #define LCUR_UpArrow                    1
00227 
00228 #define LCUR_Cross                      2
00229 
00230 #define LCUR_Wait                       3
00231 
00232 #define LCUR_Ibeam                      4
00233 
00234 #define LCUR_SizeVer                    5
00235 
00236 #define LCUR_SizeHor                    6
00237 
00238 #define LCUR_SizeBDiag                  7
00239 
00240 #define LCUR_SizeFDiag                  8
00241 
00242 #define LCUR_SizeAll                    9
00243 
00244 #define LCUR_Blank                      10
00245 
00246 #define LCUR_SplitV                     11
00247 
00248 #define LCUR_SplitH                     12
00249 
00250 #define LCUR_PointingHand               13
00251 
00252 #define LCUR_Forbidden                  14
00253 
00254 #define LCUR_DropCopy                   15
00255 
00256 #define LCUR_DropMove                   16
00257 
00258 // General Event Flags
00259 #define LGI_EF_LCTRL                    0x00000001
00260 #define LGI_EF_RCTRL                    0x00000002
00261 #define LGI_EF_CTRL                     (LGI_EF_LCTRL | LGI_EF_RCTRL)
00262 
00263 #define LGI_EF_LALT                     0x00000004
00264 #define LGI_EF_RALT                     0x00000008
00265 #define LGI_EF_ALT                      (LGI_EF_LALT | LGI_EF_RALT)
00266 
00267 #define LGI_EF_LSHIFT                   0x00000010
00268 #define LGI_EF_RSHIFT                   0x00000020
00269 #define LGI_EF_SHIFT                    (LGI_EF_LSHIFT | LGI_EF_RSHIFT)
00270 
00271 #define LGI_EF_DOWN                     0x00000040
00272 #define LGI_EF_DOUBLE                   0x00000080
00273 #define LGI_EF_CAPS_LOCK                0x00000100
00274 #define LGI_EF_IS_CHAR                  0x00000200
00275 #define LGI_EF_IS_NOT_CHAR              0x00000400
00276 
00277 // Mouse Event Flags
00278 #define LGI_EF_LEFT                     0x00001000
00279 #define LGI_EF_MIDDLE                   0x00002000
00280 #define LGI_EF_RIGHT                    0x00004000
00281 
00282 
00283 // Os metrics
00284 
00287 #define LGI_MET_DECOR_X                 1
00290 #define LGI_MET_DECOR_Y                 2
00293 #define LGI_MET_MENU                    3
00294 
00295 //
00296 #ifdef _DEBUG
00297 #define DeclDebugArgs               , char *_file, int _line
00298 #define PassDebugArgs               , __FILE__, __LINE__
00299 #else
00300 #define DeclDebugArgs
00301 #define PassDebugArgs
00302 #endif
00303 
00304 // Byte order
00305 #ifdef MAC
00306 #define LGI_LITTLE_ENDIAN               0
00307 #define LGI_BIG_ENDIAN                  1
00308 #else
00309 #define LGI_LITTLE_ENDIAN               1
00310 #define LGI_BIG_ENDIAN                  0
00311 #endif
00312 
00313 #endif

Generated on Tue May 2 10:24:43 2006 for Lgi by  doxygen 1.4.1