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 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 // Basic macros
00090 // #define abs(a)                       (((a) > 0) ? (a) : -(a))
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 // Operators
00100 #define NOT                             !
00101 #define AND                             &&
00102 #define OR                              ||
00103 
00104 // Good ol NULLy
00105 #ifndef NULL
00106 #define NULL                            0
00107 #endif
00108 
00109 // Some objectish ones
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 // Asserts
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 // Flags
00137 #define SetFlag(i, f)                   (i) |= (f)
00138 #define ClearFlag(i, f)                 (i) &= ~(f)
00139 #define TestFlag(i, f)                  (((i) & (f)) != 0)
00140 
00141 // Defines
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 // System Colours
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 // Cursors
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 // General Event Flags
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 // Mouse Event Flags
00272 #define LGI_EF_LEFT                     0x00001000
00273 #define LGI_EF_MIDDLE                   0x00002000
00274 #define LGI_EF_RIGHT                    0x00004000
00275 
00276 
00277 // Os metrics
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 // Byte order
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

Generated on Wed Oct 26 14:46:50 2005 for Lgi by  doxygen 1.4.1