X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3ef5bf5045991260005634272633717c0a26174..dd3c394ae4e6f6a0041b69e036d4fdf0a085fe39:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index a332d31490..35c46f8e3a 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -6,7 +6,7 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_DEFS_H_ @@ -21,30 +21,60 @@ #include "wx/setup.h" #include "wx/version.h" -// Helps SGI compilation, apparently -#if defined(__SGI__) -#if defined(__GNUG__) -#define __need_wchar_t -#else -/* Note I use the term __SGI_CC__ for both cc and CC, its not a good idea to - * mix gcc and cc/CC, the name mangling is different */ -#define __SGI_CC__ -#endif -#endif +// ---------------------------------------------------------------------------- +// compiler and OS identification +// ---------------------------------------------------------------------------- -#if defined(sun) || defined(__SUN__) -# if !defined(__GNUG__) -# ifndef __SUNCC__ -# define __SUNCC__ -# endif -# endif -#endif +// OS +#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || \ + defined(__unix__) || defined(sun) || defined(__SUN__) + #ifndef __UNIX__ + #define __UNIX__ + #endif // Unix + + // Helps SGI compilation, apparently + #ifdef __SGI__ + #ifdef __GNUG__ + #define __need_wchar_t + #else // !gcc + // Note I use the term __SGI_CC__ for both cc and CC, its not a good + // idea to mix gcc and cc/CC, the name mangling is different + #define __SGI_CC__ + #endif // gcc/!gcc + #endif // SGI + + #if defined(sun) || defined(__SUN__) + #ifndef __GNUG__ + #ifndef __SUNCC__ + #define __SUNCC__ + #endif // Sun CC + #endif + #endif // Sun +#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) ) + // MacOS +#else // Windows + #ifndef __WINDOWS__ + #define __WINDOWS__ + #endif // Windows + + // define another standard symbol for Microsoft Visual C++: the standard one + // (_MSC_VER) is also defined by Metrowerks compiler + #if defined(_MSC_VER) && !defined(__MWERKS__) + #define __VISUALC__ _MSC_VER + #elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__) + #define __BORLANDC__ + #elif defined(__WATCOMC__) + //#define __WATCOMC__ + #elif defined(__SC__) + #define __SYMANTECC__ + #endif // compiler +#endif // OS // suppress some Visual C++ warnings -#ifdef _MSC_VER -# pragma warning(disable:4244) // cobversion from double to float +#ifdef __VISUALC__ +# pragma warning(disable:4244) // conversion from double to float # pragma warning(disable:4100) // unreferenced formal parameter -#endif +#endif // __VISUALC__ // suppress some Salford C++ warnings #ifdef __SALFORDC__ @@ -53,7 +83,18 @@ # pragma suppress 61 // enum has no name (doesn't suppress!) # pragma suppress 106 // unnamed, unused parameter # pragma suppress 571 // Virtual function hiding -#endif +#endif // __SALFORDC__ + +// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, +// so define it ourselves +#ifdef __DECCXX + #define __cplusplus +#endif // __DECCXX + +// Resolves linking problems under HP-UX +#if defined(__HPUX__) && !defined(__GNUG__) + #define va_list __gnuc_va_list +#endif // HP-UX ////////////////////////////////////////////////////////////////////////////////// // Currently Only MS-Windows/NT, XView and Motif are supported @@ -79,6 +120,10 @@ #define __WIN95__ #endif +#if defined(TWIN32) && !defined(__TWIN32__) +#define __TWIN32__ +#endif + #endif // wxMSW // Make sure the environment is set correctly @@ -120,23 +165,38 @@ typedef unsigned int bool; #elif defined(__SALFORDC__) typedef unsigned int bool; -#elif defined(_MSC_VER) && (_MSC_VER <= 1000) +#elif defined(__VISUALC__) && (__VISUALC__ <= 1000) typedef unsigned int bool; -#elif defined(_MSC_VER) && (_MSC_VER == 1020) +#elif defined(__VISUALC__) && (__VISUALC__ == 1020) #define bool unsigned int #elif defined(__BORLANDC__) && (__BORLANDC__ < 0x500) typedef unsigned int bool; #elif defined(__WATCOMC__) +// typedef unsigned int bool; + + #if (__WATCOMC__ < 1100) typedef unsigned int bool; -#elif defined(__SUNCC__) - // If we use int, we get identically overloaded functions in config.cpp - typedef unsigned char bool; + #endif + +#elif defined(__SUNCC__) || defined(__SUNPRO_CC) + #ifdef __SUNPRO_CC + // starting from version 5.0 Sun CC understands 'bool' + #if __SUNPRO_CC <= 0x0420 + // If we use int, we get identically overloaded functions in config.cpp + typedef unsigned char bool; + #endif // Sun CC version + #else + #error "Unknown compiler: only Sun's CC and gcc are currently recognised." + #endif // Sun CC #endif -#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__) || (defined(__BORLANDC__) && defined(__WIN16__)) || defined(__SC__) - #define byte unsigned char +#if ( defined(__VISUALC__) && (__VISUALC__ <= 800) ) || defined(__GNUWIN32__) || (defined(__BORLANDC__) && defined(__WIN16__)) || defined(__SC__) || defined(__SALFORDC__) +// Not a good idea, because later system files (e.g. windows.h) +// may try to define it. Use wxByte instead. +// #define byte unsigned char #endif +typedef unsigned char wxByte; typedef short int WXTYPE; typedef int wxWindowID; @@ -153,6 +213,7 @@ typedef int wxWindowID; #ifdef __WXMSW__ +/* #ifdef __BORLANDC__ # ifdef WXMAKINGDLL @@ -170,14 +231,18 @@ typedef int wxWindowID; # endif #else +*/ + +// _declspec works in BC++ 5 and later, as well as VC++ +#if defined(__VISUALC__) || defined(__BORLANDC__) # ifdef WXMAKINGDLL -# define WXDLLEXPORT __declspec( dllexport ) -# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type -# define WXDLLEXPORT_CTORFN // __declspec( dllexport ) +# define WXDLLEXPORT _declspec( dllexport ) +# define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type +# define WXDLLEXPORT_CTORFN # elif defined(WXUSINGDLL) -# define WXDLLEXPORT __declspec( dllimport ) -# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type +# define WXDLLEXPORT _declspec( dllimport ) +# define WXDLLEXPORT_DATA(type) _declspec( dllimport ) type # define WXDLLEXPORT_CTORFN # else # define WXDLLEXPORT @@ -185,6 +250,10 @@ typedef int wxWindowID; # define WXDLLEXPORT_CTORFN # endif +#else +# define WXDLLEXPORT +# define WXDLLEXPORT_DATA(type) type +# define WXDLLEXPORT_CTORFN #endif #else @@ -212,6 +281,10 @@ class WXDLLEXPORT wxEvent; // Error codes // ---------------------------------------------------------------------------- +#ifdef ERR_PARAM +#undef ERR_PARAM +#endif + /// Standard error codes enum ErrCode { @@ -263,30 +336,6 @@ enum ErrCode WXDLLEXPORT_DATA(extern const bool) wxTrue; WXDLLEXPORT_DATA(extern const bool) wxFalse; -// ---------------------------------------------------------------------------- -// compiler and OS identification -// ---------------------------------------------------------------------------- - -// OS -#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || defined(__unix__) - #ifndef __UNIX__ - #define __UNIX__ - #endif -#endif - -#ifndef __UNIX__ // Windows - #if defined(_MSC_VER) - #define __VISUALC__ - #elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__) - #define __BORLANDC__ - #elif defined(__WATCOMC__) - //#define __WATCOMC__ - #elif defined(__SC__) - #define __SYMANTECC__ - #endif // compiler - -#endif // OS - // ---------------------------------------------------------------------------- // compiler specific settings // ---------------------------------------------------------------------------- @@ -297,25 +346,18 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; #pragma warning(disable: 4514) // unreferenced inline func has been removed /* you might be tempted to disable this one also: triggered by CHECK and FAIL - macros in debug.h, but it's, overall, is a rather useful one, so I leave it - and will try to find some way to disable this warning just for CHECK/FAIL. - Anyone? + macros in debug.h, but it's, overall, a rather useful one, so I leave it and + will try to find some way to disable this warning just for CHECK/FAIL. Anyone? */ #pragma warning(disable: 4127) // conditional expression is constant - #endif // VC++ -#if _MSC_VER > 1010 -#undef try -#undef except -#undef finally -#define except(x) catch(...) -#elif defined(__MWERKS__) -#undef try -#undef except -#undef finally -#define except(x) catch(...) -#endif +#if defined(__MWERKS__) + #undef try + #undef except + #undef finally + #define except(x) catch(...) +#endif // Metrowerks // where should i put this? we need to make sure of this as it breaks // the code. @@ -384,20 +426,20 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * Frame/dialog style flags */ -#define wxSTAY_ON_TOP 0x8000 -#define wxICONIZE 0x4000 -#define wxMINIMIZE wxICONIZE -#define wxMAXIMIZE 0x2000 -#define wxTHICK_FRAME 0x1000 -#define wxSYSTEM_MENU 0x0800 -#define wxMINIMIZE_BOX 0x0400 -#define wxMAXIMIZE_BOX 0x0200 -#define wxTINY_CAPTION_HORIZ 0x0100 -#define wxTINY_CAPTION_VERT 0x0080 -#define wxRESIZE_BOX wxMAXIMIZE_BOX -#define wxRESIZE_BORDER 0x0040 -#define wxDIALOG_MODAL 0x0020 -#define wxDIALOG_MODELESS 0x0000 +#define wxSTAY_ON_TOP 0x8000 +#define wxICONIZE 0x4000 +#define wxMINIMIZE wxICONIZE +#define wxMAXIMIZE 0x2000 +#define wxTHICK_FRAME 0x1000 +#define wxSYSTEM_MENU 0x0800 +#define wxMINIMIZE_BOX 0x0400 +#define wxMAXIMIZE_BOX 0x0200 +#define wxTINY_CAPTION_HORIZ 0x0100 +#define wxTINY_CAPTION_VERT 0x0080 +#define wxRESIZE_BOX wxMAXIMIZE_BOX +#define wxRESIZE_BORDER 0x0040 +#define wxDIALOG_MODAL 0x0020 +#define wxDIALOG_MODELESS 0x0000 #define wxDEFAULT_FRAME_STYLE (wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) @@ -405,7 +447,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE #endif -#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) +#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) /* * Subwindow style flags @@ -418,17 +460,24 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxToolBar style flags */ - #define wxTB_3DBUTTONS 0x8000 #define wxTB_HORIZONTAL 0x0002 #define wxTB_VERTICAL 0x0004 // Flatbar/Coolbar under Win98 #define wxTB_FLAT 0x0008 +// use native docking +#define wxTB_DOCKABLE 0x0010 /* - * Apply to all panel items + * wxMenuBar style flags */ +// use native docking +#define wxMB_DOCKABLE 0x0001 + +/* + * Apply to all panel items + */ #define wxCOLOURED 0x0800 // Alignment for panel item labels: replaces characters with zeros // when creating label, so spaces can be included in string for alignment. @@ -441,7 +490,6 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * Styles for wxListBox */ - #define wxLB_SORT 0x0010 #define wxLB_SINGLE 0x0020 #define wxLB_MULTIPLE 0x0040 @@ -497,7 +545,6 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxSlider flags */ - #define wxSL_HORIZONTAL wxHORIZONTAL #define wxSL_VERTICAL wxVERTICAL // The next one is obsolete - use scroll events instead @@ -515,21 +562,18 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxScrollBar flags */ - #define wxSB_HORIZONTAL wxHORIZONTAL #define wxSB_VERTICAL wxVERTICAL /* * wxButton flags */ - #define wxBU_AUTODRAW 0x0004 #define wxBU_NOAUTODRAW 0x0000 /* * wxTreeCtrl flags */ - #define wxTR_HAS_BUTTONS 0x0004 #define wxTR_EDIT_LABELS 0x0008 #define wxTR_LINES_AT_ROOT 0x0010 @@ -537,7 +581,6 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxListCtrl flags */ - #define wxLC_ICON 0x0004 #define wxLC_SMALL_ICON 0x0008 #define wxLC_LIST 0x0010 @@ -653,7 +696,7 @@ enum { wxCROSS_HATCH, wxHORIZONTAL_HATCH, wxVERTICAL_HATCH, -#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH) +#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH) wxJOIN_BEVEL = 120, wxJOIN_MITER, @@ -666,7 +709,7 @@ enum { // Logical ops -typedef enum +typedef enum { wxCLEAR, // 0 wxXOR, // src XOR dst @@ -697,10 +740,10 @@ typedef enum #define wxWINDING_RULE 2 // ToolPanel in wxFrame -#define wxTOOL_TOP 1 -#define wxTOOL_BOTTOM 2 -#define wxTOOL_LEFT 3 -#define wxTOOL_RIGHT 4 +#define wxTOOL_TOP 1 +#define wxTOOL_BOTTOM 2 +#define wxTOOL_LEFT 3 +#define wxTOOL_RIGHT 4 // Dialog specifiers/return values @@ -738,6 +781,8 @@ typedef enum // Don't do parent client adjustments (for implementation only) #define wxSIZE_NO_ADJUSTMENTS 0x0008 +#ifndef __WXGTK__ + enum wxDataFormat { wxDF_INVALID = 0, @@ -760,15 +805,17 @@ enum wxDataFormat wxDF_PRIVATE = 20 }; +#endif + /* Virtual keycodes */ -enum wxKeyCode +enum wxKeyCode { WXK_BACK = 8, WXK_TAB = 9, - WXK_RETURN = 13, - WXK_ESCAPE = 27, - WXK_SPACE = 32, + WXK_RETURN = 13, + WXK_ESCAPE = 27, + WXK_SPACE = 32, WXK_DELETE = 127, WXK_START = 300, @@ -844,25 +891,25 @@ enum wxKeyCode /* OS mnemonics -- Identify the running OS (useful for Windows) * [Not all platforms are currently available or supported] */ -enum +enum { wxUNKNOWN_PLATFORM, - wxCURSES, /* Text-only CURSES */ - wxXVIEW_X, /* Sun's XView OpenLOOK toolkit */ - wxMOTIF_X, /* OSF Motif 1.x.x */ - wxCOSE_X, /* OSF Common Desktop Environment */ - wxNEXTSTEP, /* NeXTStep */ - wxMACINTOSH, /* Apple System 7 */ - wxGTK, /* GTK */ - wxQT, /* Qt */ - wxGEOS, /* GEOS */ - wxOS2_PM, /* OS/2 Workplace */ - wxWINDOWS, /* Windows or WfW */ - wxPENWINDOWS, /* Windows for Pen Computing */ - wxWINDOWS_NT, /* Windows NT */ - wxWIN32S, /* Windows 32S API */ - wxWIN95, /* Windows 95 */ - wxWIN386 /* Watcom 32-bit supervisor modus */ + wxCURSES, // Text-only CURSES + wxXVIEW_X, // Sun's XView OpenLOOK toolkit + wxMOTIF_X, // OSF Motif 1.x.x + wxCOSE_X, // OSF Common Desktop Environment + wxNEXTSTEP, // NeXTStep + wxMACINTOSH, // Apple System 7 + wxGTK, // GTK + wxQT, // Qt + wxGEOS, // GEOS + wxOS2_PM, // OS/2 Workplace + wxWINDOWS, // Windows or WfW + wxPENWINDOWS, // Windows for Pen Computing + wxWINDOWS_NT, // Windows NT + wxWIN32S, // Windows 32S API + wxWIN95, // Windows 95 + wxWIN386 // Watcom 32-bit supervisor modus }; /* Printing */ @@ -872,6 +919,8 @@ enum #endif /* Standard menu identifiers */ +#define wxID_LOWEST 4999 + #define wxID_OPEN 5000 #define wxID_CLOSE 5001 #define wxID_NEW 5002 @@ -918,6 +967,19 @@ enum #define wxID_HIGHEST 5999 +// Mapping modes (as per Windows) +#define wxMM_TEXT 1 +#define wxMM_LOMETRIC 2 +#define wxMM_HIMETRIC 3 +#define wxMM_LOENGLISH 4 +#define wxMM_HIENGLISH 5 +#define wxMM_TWIPS 6 +#define wxMM_ISOTROPIC 7 +#define wxMM_ANISOTROPIC 8 + +#define wxMM_POINTS 9 +#define wxMM_METRIC 10 + /* Shortcut for easier dialog-unit-to-pixel conversion */ #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) @@ -1008,6 +1070,7 @@ typedef struct _GtkStyle GtkStyle; typedef struct _GtkAdjustment GtkAdjustment; typedef struct _GtkList GtkList; typedef struct _GtkToolbar GtkToolbar; +typedef struct _GtkTooltips GtkTooltips; typedef struct _GtkNotebook GtkNotebook; typedef struct _GtkNotebookPage GtkNotebookPage;