X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3e7d24d21f5371c88caffe4a85c8e4a5362db3f..c61f4f6dbd971245f694eb01034c86040a44db00:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index fac7781467..2df82c842a 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -16,6 +16,12 @@ #pragma interface "defs.h" #endif + +// needed to handle strings with xgettext: +#ifndef gettext_noop +# define gettext_noop(x) x +#endif + // ---------------------------------------------------------------------------- // compiler and OS identification // ---------------------------------------------------------------------------- @@ -24,7 +30,7 @@ #if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ defined(__LINUX__) || defined(__sgi ) || \ defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \ - defined(__EMX__) + defined(__EMX__) || defined( __VMS ) #define __UNIX_LIKE__ @@ -120,7 +126,9 @@ // Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, // so define it ourselves #ifdef __DECCXX - #define __cplusplus +#ifndef __VMS +# define __cplusplus +#endif #endif // __DECCXX // Resolves linking problems under HP-UX @@ -132,9 +140,17 @@ // we are setting this define because of the complex check // using NORLANDER as Cygwin may follow. (header author is Anders Norlander) #if defined(__MINGW32__) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))) +#ifndef wxUSE_NORLANDER_HEADERS # define wxUSE_NORLANDER_HEADERS 1 #endif +#endif +// "old" GNUWIN32 is the one without Norlander's headers: it lacks the standard +// Win32 headers and we define the used stuff ourselves for it in +// wx/msw/gnuwin32/extra.h +#if defined(__MINGW32__) && !wxUSE_NORLANDER_HEADERS + #define __GNUWIN32_OLD__ +#endif ////////////////////////////////////////////////////////////////////////////////// // Currently Only MS-Windows/NT, XView and Motif are supported @@ -274,7 +290,9 @@ // Cygwin supports bool #define HAVE_BOOL #elif defined(__VISAGECPP__) - typedef unsigned long bool; + #if __IBMCPP__ < 400 + typedef unsigned long bool; + #endif #define HAVE_BOOL #endif // compilers #endif // HAVE_BOOL @@ -283,7 +301,9 @@ // NB: of course, this doesn't replace the standard type, because, for // example, overloading based on bool/int parameter doesn't work and // so should be avoided in portable programs - typedef unsigned int bool; +#ifndef VMS +typedef unsigned int bool; +#endif #endif // bool typedef short int WXTYPE; @@ -576,6 +596,25 @@ enum #define wxByte wxUint8 #define wxWord wxUint16 +// base floating point types +// wxFloat32 : 32 bit IEEE float ( 1 sign , 8 exponent bits , 23 fraction bits +// wxFloat64 : 64 bit IEEE float ( 1 sign , 11 exponent bits , 52 fraction bits +// wxDouble : native fastest representation that has at least wxFloat64 +// precision, so use the IEEE types for storage , and this for calculations + +typedef float wxFloat32 ; +#if defined( __WXMAC__ ) && defined (__MWERKS__) + typedef short double wxFloat64; +#else + typedef double wxFloat64; +#endif + +#if defined( __WXMAC__ ) && !defined( __POWERPC__ ) + typedef long double wxDouble; +#else + typedef double wxDouble ; +#endif + // ---------------------------------------------------------------------------- // byte ordering related definition and macros // ---------------------------------------------------------------------------- @@ -594,6 +633,36 @@ enum // byte swapping +#if defined (__MWERKS__) && ( (__MWERKS__ < 0x0900) || macintosh ) +// assembler versions for these +#ifdef __POWERPC__ + inline wxUint16 wxUINT16_SWAP_ALWAYS( wxUint16 i ) + {return (__lhbrx( &i , 0 ) ) ;} + inline wxInt16 wxINT16_SWAP_ALWAYS( wxInt16 i ) + {return (__lhbrx( &i , 0 ) ) ;} + inline wxUint32 wxUINT32_SWAP_ALWAYS( wxUint32 i ) + {return (__lwbrx( &i , 0 ) ) ;} + inline wxInt32 wxINT32_SWAP_ALWAYS( wxInt32 i ) + {return (__lwbrx( &i , 0 ) ) ;} +#else + #pragma parameter __D0 wxUINT16_SWAP_ALWAYS(__D0) + pascal wxUint16 wxUINT16_SWAP_ALWAYS(wxUint16 value) + = { 0xE158 }; + + #pragma parameter __D0 wxINT16_SWAP_ALWAYS(__D0) + pascal wxInt16 wxUINT16_SWAP_ALWAYS(wxInt16 value) + = { 0xE158 }; + + #pragma parameter __D0 wxUINT32_SWAP_ALWAYS (__D0) + pascal wxUint32 wxUINT32_SWAP_ALWAYS(wxUint32 value) + = { 0xE158, 0x4840, 0xE158 }; + + #pragma parameter __D0 wxINT32_SWAP_ALWAYS (__D0) + pascal wxInt32 wxUINT32_SWAP_ALWAYS(wxInt32 value) + = { 0xE158, 0x4840, 0xE158 }; + +#endif +#else // !MWERKS #define wxUINT16_SWAP_ALWAYS(val) \ ((wxUint16) ( \ (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ @@ -617,7 +686,7 @@ enum (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) - +#endif // machine specific byte swapping #ifdef WORDS_BIGENDIAN @@ -685,12 +754,17 @@ enum wxDirection enum wxAlignment { wxALIGN_NOT = 0x0000, - wxALIGN_CENTER = 0x0100, - wxALIGN_CENTRE = wxALIGN_CENTER, + wxALIGN_CENTER_HORIZONTAL = 0x0100, + wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL, wxALIGN_LEFT = wxALIGN_NOT, wxALIGN_TOP = wxALIGN_NOT, wxALIGN_RIGHT = 0x0200, - wxALIGN_BOTTOM = 0x0400 + wxALIGN_BOTTOM = 0x0400, + wxALIGN_CENTER_VERTICAL = 0x0800, + wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL, + + wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL), + wxALIGN_CENTRE = wxALIGN_CENTER }; enum wxStretch @@ -698,7 +772,8 @@ enum wxStretch wxSTRETCH_NOT = 0x0000, wxSHRINK = 0x1000, wxGROW = 0x2000, - wxEXPAND = wxGROW + wxEXPAND = wxGROW, + wxSHAPED = 0x4000 }; // ---------------------------------------------------------------------------- @@ -795,7 +870,7 @@ enum wxStretch #else // Under Unix, the dialogs don't have a system menu. Specifying // wxSYSTEM_MENU here, will make a close button appear. -# define wxDEFAULT_DIALOG_STYLE (wxCAPTION) +# define wxDEFAULT_DIALOG_STYLE (wxCAPTION|wxTHICK_FRAME) #endif /* @@ -1014,6 +1089,11 @@ enum wxStretch */ #define wxST_SIZEGRIP 0x0010 +/* + * wxStaticText flags + */ +#define wxST_NO_AUTORESIZE 0x0001 + /* * wxStaticLine flags */ @@ -1243,28 +1323,29 @@ typedef enum #define wxTOOL_LEFT 3 #define wxTOOL_RIGHT 4 - +// the values of the format constants should be the same as correspondign +// CF_XXX constants in Windows API enum wxDataFormatId { - wxDF_INVALID = 0, - wxDF_TEXT = 1, /* CF_TEXT */ - wxDF_BITMAP = 2, /* CF_BITMAP */ - wxDF_METAFILE = 3, /* CF_METAFILEPICT */ - wxDF_SYLK = 4, - wxDF_DIF = 5, - wxDF_TIFF = 6, - wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ - wxDF_DIB = 8, /* CF_DIB */ - wxDF_PALETTE = 9, - wxDF_PENDATA = 10, - wxDF_RIFF = 11, - wxDF_WAVE = 12, - wxDF_UNICODETEXT = 13, - wxDF_ENHMETAFILE = 14, - wxDF_FILENAME = 15, /* CF_HDROP */ - wxDF_LOCALE = 16, - wxDF_PRIVATE = 20, - wxDF_MAX + wxDF_INVALID = 0, + wxDF_TEXT = 1, /* CF_TEXT */ + wxDF_BITMAP = 2, /* CF_BITMAP */ + wxDF_METAFILE = 3, /* CF_METAFILEPICT */ + wxDF_SYLK = 4, + wxDF_DIF = 5, + wxDF_TIFF = 6, + wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ + wxDF_DIB = 8, /* CF_DIB */ + wxDF_PALETTE = 9, + wxDF_PENDATA = 10, + wxDF_RIFF = 11, + wxDF_WAVE = 12, + wxDF_UNICODETEXT = 13, + wxDF_ENHMETAFILE = 14, + wxDF_FILENAME = 15, /* CF_HDROP */ + wxDF_LOCALE = 16, + wxDF_PRIVATE = 20, + wxDF_MAX }; /* Virtual keycodes */ @@ -1502,12 +1583,60 @@ typedef enum { wxPRINT_MODE_PRINTER = 3 // Send to printer } wxPrintMode; +// --------------------------------------------------------------------------- +// Macro to specify "All Files" on different platforms +// --------------------------------------------------------------------------- +#if defined(__WXMSW__) +# define wxALL_FILES_PATTERN "*.*" +# define wxALL_FILES gettext_noop("All files (*.*)|*.*") +#else +# define wxALL_FILES_PATTERN "*" +# define wxALL_FILES gettext_noop("All files (*)|*") +#endif // --------------------------------------------------------------------------- // macros that enable wxWindows apps to be compiled in absence of the // sytem headers, although some platform specific types are used in the // platform specific (implementation) parts of the headers // --------------------------------------------------------------------------- +#ifdef __WXMAC__ + +typedef WindowPtr WXHWND; +typedef Handle WXHANDLE; +typedef CIconHandle WXHICON; +//typedef unsigned long WXHFONT; +typedef MenuHandle WXHMENU; +//typedef unsigned long WXHPEN; +//typedef unsigned long WXHBRUSH; +//typedef unsigned long WXHPALETTE; +typedef CursHandle WXHCURSOR; +typedef RgnHandle WXHRGN; +//typedef unsigned long WXHACCEL; +//typedef unsigned long WXHINSTANCE; +typedef GWorldPtr WXHBITMAP; +//typedef unsigned long WXHIMAGELIST; +//typedef unsigned long WXHGLOBAL; +typedef GrafPtr WXHDC; +typedef unsigned int WXUINT; +typedef unsigned long WXDWORD; +typedef unsigned short WXWORD; +//typedef unsigned int WXWPARAM; +//typedef long WXLPARAM; +typedef RGBColor WXCOLORREF; +//typedef void * WXRGNDATA; +//typedef void * WXMSG; +//typedef unsigned long WXHCONV; +//typedef unsigned long WXHKEY; +//typedef void * WXDRAWITEMSTRUCT; +//typedef void * WXMEASUREITEMSTRUCT; +//typedef void * WXLPCREATESTRUCT; +typedef int (*WXFARPROC)(); + +typedef WindowPtr WXWindow; +typedef ControlHandle WXWidget; + +#endif + #if defined(__WXMSW__) || defined(__WXPM__) // Stand-ins for Windows types or OS/2, to avoid #including all of windows.h or os2.h typedef unsigned long WXHWND; @@ -1539,7 +1668,7 @@ typedef long WXLPARAM; # define LOGFONT FATTRS # define LOWORD SHORT1FROMMP # define HIWORD SHORT2FROMMP -#endif +#endif // __WXMSW__ typedef unsigned long WXCOLORREF; typedef void * WXRGNDATA; typedef void * WXMSG; @@ -1570,7 +1699,33 @@ typedef unsigned long HIMAGELIST; typedef unsigned long HGLOBAL; typedef unsigned long DWORD; typedef unsigned short WORD; -#endif + +// WIN32 graphics types for OS/2 GPI + +// RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def +#define OS2RGB(r,g,b) ((DWORD ((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(b)) << 16))) + +typedef unsigned long COLORREF; +#define GetBValue(rgb) ((BYTE)((rgb) >> 16)) +#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8)) +#define GetRValue(rgb) ((BYTE)(rgb)) +#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i))) +#define PALETTERGB(r,g,b) (0x02000000 | OS2RGB(r,g,b)) +// OS2's RGB/RGB2 is backwards from this +typedef struct tagPALETTEENTRY +{ + char bRed; + char bGreen; + char bBlue; + char bFlags; +} PALETTEENTRY; +typedef struct tagLOGPALETTE +{ + WORD palVersion; + WORD palNumentries; + WORD PALETTEENTRY[1]; +} LOGPALETTE; +#endif //__WXPM__ #if defined(__GNUWIN32__) || defined(__WXWINE__) typedef int (*WXFARPROC)(); @@ -1581,6 +1736,16 @@ typedef unsigned short WORD; #endif typedef WXHWND WXWidget; + +#if defined(__BORLANDC__) && !defined(__WIN32__) +#ifndef LPTSTR +#define LPTSTR LPSTR +#endif +#ifndef LPCTSTR +#define LPCTSTR LPSTR +#endif +#endif + #endif // MSW #ifdef __WXMOTIF__