X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/46ccb5107ff22cb5cc1b36ef2a28ea1e31b0fc91..bf38cbffd54c50dd11c89f34542704f92db174eb:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index b57ca70842..2c3b71ec0c 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -16,35 +16,44 @@ #pragma interface "defs.h" #endif -#ifdef __WXGTK__ - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -#endif - #include #include "wx/setup.h" #include "wx/version.h" // Helps SGI compilation, apparently -#if defined(__SGI__) +#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 +/* 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 -// Eliminate double/float warnings +#if defined(sun) || defined(__SUN__) +# if !defined(__GNUG__) +# ifndef __SUNCC__ +# define __SUNCC__ +# endif +# endif +#endif + +// suppress some Visual C++ warnings #ifdef _MSC_VER -# pragma warning(disable:4244) +# pragma warning(disable:4244) // cobversion from double to float +# pragma warning(disable:4100) // unreferenced formal parameter #endif +// suppress some Salford C++ warnings +#ifdef __SALFORDC__ +# pragma suppress 353 // Possible nested comments +# pragma suppress 593 // Define not used +# pragma suppress 61 // enum has no name (doesn't suppress!) +# pragma suppress 106 // unnamed, unused parameter +# pragma suppress 571 // Virtual function hiding +#endif ////////////////////////////////////////////////////////////////////////////////// // Currently Only MS-Windows/NT, XView and Motif are supported @@ -56,6 +65,7 @@ # define __X__ #endif +#ifdef __WXMSW__ // wxWindows checks for WIN32, not __WIN32__ #if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__)) #define __WIN32__ @@ -69,6 +79,12 @@ #define __WIN95__ #endif +#if defined(TWIN32) && !defined(__TWIN32__) +#define __TWIN32__ +#endif + +#endif // wxMSW + // Make sure the environment is set correctly #if defined(__WXMSW__) && defined(__X__) # error "Target can't be both X and Windows" @@ -100,14 +116,41 @@ // VC++ 4.0 is 1000. // Add more tests here for compilers that don't already define bool. -#if ( defined(_MSC_VER) && (_MSC_VER <= 1000) ) || (defined(__BORLANDC__) && (__BORLANDC__ < 0x500)) -typedef unsigned int bool; +#if defined( __MWERKS__ ) + #if (__MWERKS__ < 0x1000) || !__option(bool) + typedef unsigned int bool; + #endif +#elif defined(__SC__) + typedef unsigned int bool; +#elif defined(__SALFORDC__) + typedef unsigned int bool; +#elif defined(_MSC_VER) && (_MSC_VER <= 1000) + typedef unsigned int bool; +#elif defined(_MSC_VER) && (_MSC_VER == 1020) + #define bool unsigned int +#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x500) + typedef unsigned int bool; +#elif defined(__WATCOMC__) + typedef unsigned int bool; +#elif defined(__SUNCC__) + #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 reckognized." + #endif // Sun CC #endif -#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__) -#define byte unsigned char +#if ( defined(_MSC_VER) && (_MSC_VER <= 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; @@ -145,7 +188,7 @@ typedef int wxWindowID; # ifdef WXMAKINGDLL # define WXDLLEXPORT __declspec( dllexport ) # define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type -# define WXDLLEXPORT_CTORFN __declspec( dllexport ) +# define WXDLLEXPORT_CTORFN // __declspec( dllexport ) # elif defined(WXUSINGDLL) # define WXDLLEXPORT __declspec( dllimport ) # define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type @@ -177,12 +220,16 @@ class WXDLLEXPORT wxEvent; /** symbolic constant used by all Find()-like functions returning positive integer on success as failure indicator */ -#define NOT_FOUND (-1) +#define wxNOT_FOUND (-1) // ---------------------------------------------------------------------------- // Error codes // ---------------------------------------------------------------------------- +#ifdef ERR_PARAM +#undef ERR_PARAM +#endif + /// Standard error codes enum ErrCode { @@ -206,13 +253,13 @@ enum ErrCode // be considered as an error by some overzealous debugging implementations of // the library, so we do it ourselves) #if defined(__SGI_CC__) -// Okay this is bad styling, but the native SGI compiler is very picky, it +// Okay this is bad styling, but the native SGI compiler is very picky, it // wont let you compare/assign between a NULL (void *) and another pointer -// type. To be really clean we'd need to pass in another argument, the type -// of p. -// Also note the use of 0L, this would allow future possible 64bit support -// (as yet untested) by ensuring that we zero all the bits in a pointer -// (which is always the same length as a long (at least with the LP64 standard) +// type. To be really clean we'd need to pass in another argument, the type +// of p. +// Also note the use of 0L, this would allow future possible 64bit support +// (as yet untested) by ensuring that we zero all the bits in a pointer +// (which is always the same length as a long (at least with the LP64 standard) // --- offer aug 98 #define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; } #else @@ -239,7 +286,7 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; // ---------------------------------------------------------------------------- // OS -#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) +#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || defined(__unix__) #ifndef __UNIX__ #define __UNIX__ #endif @@ -266,7 +313,7 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; // warnings just must be disabled #ifdef __VISUALC__ #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. @@ -276,6 +323,26 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse; #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 + +// where should i put this? we need to make sure of this as it breaks +// the code. +#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__) +#ifndef __MWERKS__ +#undef __WXDEBUG__ +#endif +#endif + // Callback function type definition typedef void (*wxFunction) (wxObject&, wxEvent&); @@ -290,7 +357,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); * Window (cross-group) styles now take up the first half * of the flag, and control-specific styles the * second half. - * + * */ /* @@ -369,7 +436,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxToolBar style flags */ - + #define wxTB_3DBUTTONS 0x8000 #define wxTB_HORIZONTAL 0x0002 #define wxTB_VERTICAL 0x0004 @@ -379,7 +446,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * 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. @@ -412,9 +479,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxTE_PASSWORD wxPASSWORD #define wxTE_READONLY 0x0010 #define wxTE_MULTILINE 0x0020 - -// MSW-only -#define wxTE_RICHTEXT 0x0020 +#define wxTE_PROCESS_TAB 0x0040 /* * wxComboBox style flags @@ -427,6 +492,15 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxRadioBox/wxRadioButton style flags */ + +// New, more intuitive names to specify majorDim argument + +// Same as wxRA_HORIZONTAL +#define wxRA_SPECIFY_COLS 0x0001 +// Same as wxRA_VERTICAL +#define wxRA_SPECIFY_ROWS 0x0002 + +// Old names for compatibility #define wxRA_HORIZONTAL wxHORIZONTAL #define wxRA_VERTICAL wxVERTICAL #define wxRB_GROUP 0x0004 @@ -441,7 +515,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxSlider flags */ - + #define wxSL_HORIZONTAL wxHORIZONTAL #define wxSL_VERTICAL wxVERTICAL // The next one is obsolete - use scroll events instead @@ -459,7 +533,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxScrollBar flags */ - + #define wxSB_HORIZONTAL wxHORIZONTAL #define wxSB_VERTICAL wxVERTICAL @@ -517,13 +591,20 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxSP_WRAP 0x0020 /* - * wxSplitterWnd flags + * wxSplitterWindow flags */ #define wxSP_NOBORDER 0x0000 #define wxSP_3D 0x0004 #define wxSP_BORDER 0x0008 +/* + * wxFrame extra flags + */ + +// No title on taskbar +#define wxFRAME_TOOL_WINDOW 0x0004 + /* * wxTabCtrl flags */ @@ -603,7 +684,8 @@ enum { // Logical ops -typedef enum { +typedef enum +{ wxCLEAR, // 0 wxXOR, // src XOR dst wxINVERT, // NOT dst @@ -674,23 +756,36 @@ typedef enum { // Don't do parent client adjustments (for implementation only) #define wxSIZE_NO_ADJUSTMENTS 0x0008 - -// Data format for drag & drop and clipboard operations -// numbers as per winuser.h +#ifndef __WXGTK__ enum wxDataFormat { + wxDF_INVALID = 0, wxDF_TEXT = 1, /* CF_TEXT */ wxDF_BITMAP = 2, /* CF_BITMAP */ wxDF_METAFILE = 3, /* CF_METAFILEPICT */ - wxDF_DIB = 8, /* CF_DIB */ + wxDF_SYLK = 4, + wxDF_DIF = 5, + wxDF_TIFF = 6, wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ - wxDF_FILENAME = 15 /* CF_HDROP */ + 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 }; -// Virtual keycodes +#endif -enum wxKeyCode { +/* Virtual keycodes */ + +enum wxKeyCode +{ WXK_BACK = 8, WXK_TAB = 9, WXK_RETURN = 13, @@ -709,8 +804,8 @@ enum wxKeyCode { WXK_MENU, WXK_PAUSE, WXK_CAPITAL, - WXK_PRIOR, // Page up - WXK_NEXT, // Page down + WXK_PRIOR, /* Page up */ + WXK_NEXT, /* Page down */ WXK_END, WXK_HOME, WXK_LEFT, @@ -769,37 +864,36 @@ enum wxKeyCode { WXK_PAGEDOWN }; -// Colours - see wx_gdi.cc for database - -// OS mnemonics -- Identify the running OS (useful for Windows) -// [Not all platforms are currently available or supported] -enum { +/* OS mnemonics -- Identify the running OS (useful for Windows) + * [Not all platforms are currently available or supported] */ +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 +/* Printing */ #ifndef wxPORTRAIT #define wxPORTRAIT 1 #define wxLANDSCAPE 2 #endif -// Standard menu identifiers +/* Standard menu identifiers */ #define wxID_OPEN 5000 #define wxID_CLOSE 5001 #define wxID_NEW 5002 @@ -825,6 +919,7 @@ enum { #define wxID_CLEAR 5033 #define wxID_FIND 5034 #define wxID_DUPLICATE 5035 +#define wxID_SELECTALL 5036 #define wxID_FILE1 5050 #define wxID_FILE2 5051 @@ -843,10 +938,14 @@ enum { #define wxID_NO 5104 #define wxID_STATIC 5105 -#ifdef __WXMSW__ -// Stand-ins for Windows types, to avoid -// #including all of windows.h +#define wxID_HIGHEST 5999 +/* Shortcut for easier dialog-unit-to-pixel conversion */ +#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) + +#ifdef __WXMSW__ +/* Stand-ins for Windows types, to avoid + * #including all of windows.h */ typedef unsigned long WXHWND; typedef unsigned long WXHANDLE; typedef unsigned long WXHICON; @@ -873,19 +972,22 @@ typedef void * WXRGNDATA; typedef void * WXMSG; typedef unsigned long WXHCONV; typedef unsigned long WXHKEY; +typedef unsigned long WXHTREEITEM; typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; #ifdef __GNUWIN32__ typedef int (*WXFARPROC)(); -#else +#elif defined(__WIN32__) typedef int (__stdcall *WXFARPROC)(); +#else +typedef int (*WXFARPROC)(); #endif #endif #ifdef __WXMOTIF__ -// Stand-ins for X/Xt/Motif types +/* Stand-ins for X/Xt/Motif types */ typedef void* WXWindow; typedef void* WXWidget; typedef void* WXAppContext; @@ -893,7 +995,79 @@ typedef void* WXColormap; typedef void WXDisplay; typedef void WXEvent; typedef void* WXCursor; +typedef void* WXPixmap; +typedef void* WXFontStructPtr; +typedef void* WXGC; +typedef void* WXRegion; +typedef void* WXFont; +typedef void* WXImage; +typedef void* WXCursor; +typedef void* WXFontList; +#endif + +#ifdef __WXGTK__ +/* Stand-ins for GLIB types */ +typedef int gint; +typedef unsigned guint; +typedef unsigned long gulong; +typedef void* gpointer; + +/* Stand-ins for GDK types */ +typedef gulong GdkAtom; +typedef struct _GdkColor GdkColor; +typedef struct _GdkColormap GdkColormap; +typedef struct _GdkFont GdkFont; +typedef struct _GdkGC GdkGC; +typedef struct _GdkWindow GdkWindow; +typedef struct _GdkWindow GdkBitmap; +typedef struct _GdkWindow GdkPixmap; +typedef struct _GdkCursor GdkCursor; +typedef struct _GdkRegion GdkRegion; + +/* Stand-ins for GTK types */ +typedef struct _GtkWidget GtkWidget; +typedef struct _GtkStyle GtkStyle; +typedef struct _GtkAdjustment GtkAdjustment; +typedef struct _GtkList GtkList; +typedef struct _GtkToolbar GtkToolbar; +typedef struct _GtkNotebook GtkNotebook; +typedef struct _GtkNotebookPage GtkNotebookPage; + +#endif + +// This is required because of clashing macros in windows.h, which may be +// included before or after wxWindows classes, and therefore must be +// disabled here before any significant wxWindows headers are included. +#ifdef __WXMSW__ +#ifdef GetClassInfo +#undef GetClassInfo +#endif + +#ifdef GetClassName +#undef GetClassName +#endif + +#ifdef DrawText +#undef DrawText +#endif + +#ifdef GetCharWidth +#undef GetCharWidth +#endif + +#ifdef StartDoc +#undef StartDoc +#endif + +#ifdef FindWindow +#undef FindWindow +#endif + +#ifdef FindResource +#undef FindResource +#endif #endif + // __WXMSW__ #endif // _WX_DEFS_H_