00001
00009 #ifndef _LGIDEFS_H_
00010 #define _LGIDEFS_H_
00011
00012
00013 typedef unsigned char uchar;
00014 typedef unsigned short ushort;
00015 typedef unsigned int uint;
00016 typedef unsigned long ulong;
00017
00018
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 WIN32
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 #ifndef WIN32
00084 typedef unsigned int char16;
00085 #else
00086 typedef unsigned short char16;
00087 #endif
00088
00089
00090
00091 #define min(a,b) (((a) < (b)) ? (a) : (b))
00092 #define max(a,b) (((a) > (b)) ? (a) : (b))
00093 #define limit(i,l,u) (((i)<(l)) ? (l) : (((i)>(u)) ? (u) : (i)))
00094 #define makelong(a, b) ((a)<<16 | (b&0xFFFF))
00095 #define loword(a) (a&0xFFFF)
00096 #define hiword(a) (a>>16)
00097 #define LgiSwap(a, b) { int n = a; a = b; b = n; }
00098
00099
00100 #define NOT !
00101 #define AND &&
00102 #define OR ||
00103
00104
00105 #ifndef NULL
00106 #define NULL 0
00107 #endif
00108
00109
00110 #define ZeroObj(obj) memset(&obj, 0, sizeof(obj))
00111 #define CountOf(array) (sizeof(array)/sizeof(array[0]))
00112 #define StrEmpty(s) (s)[0] = 0
00113 #define IsStrEmpty(s) ((NOT s) OR ((s)[0] == 0))
00114
00115 #ifndef MEMORY_DEBUG
00116
00117 #define NEW(obj) new obj
00118 #define DeleteObj(obj) if (obj) { delete obj; obj = 0; }
00119 #define DeleteArray(obj) if (obj) { delete [] obj; obj = 0; }
00120
00121 #endif
00122
00123
00124 #ifdef WIN32
00125
00126 #include "assert.h"
00127 #define LgiAssert(a) assert(a)
00128
00129 #else
00130
00131 extern void _lgi_assert(bool b, char *test, char *file, int line);
00132 #define LgiAssert(b) _lgi_assert(b, #b, __FILE__, __LINE__)
00133
00134 #endif
00135
00136
00137 #define SetFlag(i, f) (i) |= (f)
00138 #define ClearFlag(i, f) (i) &= ~(f)
00139 #define TestFlag(i, f) (((i) & (f)) != 0)
00140
00141
00142
00145 #define LGI_OS_UNKNOWN 0
00148 #define LGI_OS_WIN9X 1
00151 #define LGI_OS_WINNT 2
00154 #define LGI_OS_BEOS 3
00157 #define LGI_OS_LINUX 4
00160 #define LGI_OS_ATHEOS 5
00163 #define LGI_OS_MAC_OS_9 6
00166 #define LGI_OS_MAC_OS_X 7
00167
00168 #define LGI_OS_MAX 8
00169
00170
00171
00173 #define LC_BLACK LgiColour(0)
00174
00175 #define LC_DKGREY LgiColour(1)
00176
00177 #define LC_MIDGREY LgiColour(2)
00178
00179 #define LC_LTGREY LgiColour(3)
00180
00181 #define LC_WHITE LgiColour(4)
00182
00184 #define LC_SHADOW LgiColour(5)
00185
00186 #define LC_LOW LgiColour(6)
00187
00188 #define LC_MED LgiColour(7)
00189
00190 #define LC_HIGH LgiColour(8)
00191
00192 #define LC_LIGHT LgiColour(9)
00193
00195 #define LC_DIALOG LgiColour(10)
00196
00197 #define LC_WORKSPACE LgiColour(11)
00198
00199 #define LC_TEXT LgiColour(12)
00200
00201 #define LC_SELECTION LgiColour(13)
00202
00203 #define LC_SEL_TEXT LgiColour(14)
00204
00205 #define LC_ACTIVE_TITLE LgiColour(15)
00206 #define LC_ACTIVE_TITLE_TEXT LgiColour(16)
00207 #define LC_INACTIVE_TITLE LgiColour(17)
00208 #define LC_INACTIVE_TITLE_TEXT LgiColour(18)
00209
00210 #define LC_MENU_BACKGROUND LgiColour(19)
00211 #define LC_MENU_TEXT LgiColour(20)
00212
00213 #define LC_MAXIMUM 21
00214
00215
00216
00218 #define LCUR_Normal 0
00219
00220 #define LCUR_UpArrow 1
00221
00222 #define LCUR_Cross 2
00223
00224 #define LCUR_Wait 3
00225
00226 #define LCUR_Ibeam 4
00227
00228 #define LCUR_SizeVer 5
00229
00230 #define LCUR_SizeHor 6
00231
00232 #define LCUR_SizeBDiag 7
00233
00234 #define LCUR_SizeFDiag 8
00235
00236 #define LCUR_SizeAll 9
00237
00238 #define LCUR_Blank 10
00239
00240 #define LCUR_SplitV 11
00241
00242 #define LCUR_SplitH 12
00243
00244 #define LCUR_PointingHand 13
00245
00246 #define LCUR_Forbidden 14
00247
00248 #define LCUR_DropCopy 15
00249
00250 #define LCUR_DropMove 16
00251
00252
00253 #define LGI_EF_LCTRL 0x00000001
00254 #define LGI_EF_RCTRL 0x00000002
00255 #define LGI_EF_CTRL (LGI_EF_LCTRL | LGI_EF_RCTRL)
00256
00257 #define LGI_EF_LALT 0x00000004
00258 #define LGI_EF_RALT 0x00000008
00259 #define LGI_EF_ALT (LGI_EF_LALT | LGI_EF_RALT)
00260
00261 #define LGI_EF_LSHIFT 0x00000010
00262 #define LGI_EF_RSHIFT 0x00000020
00263 #define LGI_EF_SHIFT (LGI_EF_LSHIFT | LGI_EF_RSHIFT)
00264
00265 #define LGI_EF_DOWN 0x00000040
00266 #define LGI_EF_DOUBLE 0x00000080
00267 #define LGI_EF_CAPS_LOCK 0x00000100
00268 #define LGI_EF_IS_CHAR 0x00000200
00269 #define LGI_EF_IS_NOT_CHAR 0x00000400
00270
00271
00272 #define LGI_EF_LEFT 0x00001000
00273 #define LGI_EF_MIDDLE 0x00002000
00274 #define LGI_EF_RIGHT 0x00004000
00275
00276
00277
00278
00281 #define LGI_MET_DECOR_X 1
00284 #define LGI_MET_DECOR_Y 2
00287 #define LGI_MET_MENU 3
00288
00289
00290 #ifdef _DEBUG
00291 #define DeclDebugArgs , char *_file, int _line
00292 #define PassDebugArgs , __FILE__, __LINE__
00293 #else
00294 #define DeclDebugArgs
00295 #define PassDebugArgs
00296 #endif
00297
00298
00299 #ifdef MAC
00300 #define LGI_LITTLE_ENDIAN 0
00301 #define LGI_BIG_ENDIAN 1
00302 #else
00303 #define LGI_LITTLE_ENDIAN 1
00304 #define LGI_BIG_ENDIAN 0
00305 #endif
00306
00307 #endif