X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b039c367cd7c1085d4175d3f87710a6f00e28fb4..4d91c1d1aebe7872e50c2e35b0a436cac9cee53c:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 019b901851..d0d54f441a 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -6,39 +6,102 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __DEFSH__ -#define __DEFSH__ +#ifndef _WX_DEFS_H_ +#define _WX_DEFS_H_ #ifdef __GNUG__ #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__) && defined(__GNUG__) -#define __need_wchar_t -#endif +// ---------------------------------------------------------------------------- +// compiler and OS identification +// ---------------------------------------------------------------------------- -// Eliminate double/float warnings -#ifdef _MSC_VER -# pragma warning(disable:4244) -#endif +// OS +#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ + defined(__LINUX__) || defined(__sgi ) || \ + defined(__hpux) || 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 + + #ifdef __hpux + #define __HPUX__ + #endif // HP-UX + +#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 __VISUALC__ +# pragma warning(disable:4244) // conversion from double to float +# pragma warning(disable:4100) // unreferenced formal parameter +#endif // __VISUALC__ + +// 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 // __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 @@ -48,14 +111,11 @@ #endif #if defined(__WXMOTIF__) # define __X__ -#elif defined(__WXMSW__) || defined(__WINDOWS_386__) || defined(__NT__) || defined(__MSDOS__) -# ifndef __WXMSW__ -# define __WXMSW__ -# endif #endif +#ifdef __WXMSW__ // wxWindows checks for WIN32, not __WIN32__ -#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__)) +#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__)) #define __WIN32__ #endif @@ -67,53 +127,83 @@ #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" + #error "Target can't be both X and Windows" #elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \ - !defined(__MAC__) && !defined(__X__) && !defined(__WXQT__) -#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__MAC__|__QT__]" + !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__) + #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]" #endif -#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) +// ============================================================================ +// non portable C++ features +// ============================================================================ -// Bool is now obsolete, use bool instead -// typedef int Bool; +// ---------------------------------------------------------------------------- +// check for native bool type and TRUE/FALSE constants +// ---------------------------------------------------------------------------- -#ifndef TRUE -# define TRUE 1 -# define FALSE 0 -# define Bool_DEFINED -#endif +#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) + // Bool is now obsolete, use bool instead + // typedef int Bool; + #ifndef TRUE + #define TRUE 1 + #define FALSE 0 + #define Bool_DEFINED + #endif #elif defined(__WXMSW__) - -#ifndef TRUE -# define TRUE 1 -# define FALSE 0 -#endif - -#endif - -// 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; -#endif - -#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__) -#define byte unsigned char -#endif - + #ifndef TRUE + #define TRUE 1 + #define FALSE 0 + #endif +#endif // TRUE/FALSE + +// Add more tests here for Windows compilers that already define bool +// (under Unix, configure tests for this) +#ifndef HAVE_BOOL + #if defined( __MWERKS__ ) + #if (__MWERKS__ >= 0x1000) && !__option(bool) + #define HAVE_BOOL + #endif + #elif defined(__VISUALC__) && (__VISUALC__ == 1020) + // in VC++ 4.2 the bool keyword is reserved (hence can't be typedefed) + // but not implemented, so we must #define it + #define bool unsigned int + #elif defined(__VISUALC__) && (__VISUALC__ > 1020) + // VC++ supports bool since 4.2 + #define HAVE_BOOL + #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x500) + // Borland 5.0+ supports bool + #define HAVE_BOOL + #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100) + // Watcom 11+ supports bool + #define HAVE_BOOL + #endif // compilers +#endif // HAVE_BOOL + +#if !defined(HAVE_BOOL) && !defined(bool) + // 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; +#endif // bool + +typedef unsigned char wxByte; typedef short int WXTYPE; typedef int wxWindowID; // Macro to cut down on compiler warnings. #if REMOVE_UNUSED_ARG -#define WXUNUSED(identifier) /* identifier */ + #define WXUNUSED(identifier) /* identifier */ #else // stupid, broken compiler -#define WXUNUSED(identifier) identifier + #define WXUNUSED(identifier) identifier #endif /* @@ -122,31 +212,16 @@ typedef int wxWindowID; #ifdef __WXMSW__ -#ifdef __BORLANDC__ +// _declspec works in BC++ 5 and later, as well as VC++ +#if defined(__VISUALC__) || defined(__BORLANDC__) # ifdef WXMAKINGDLL -# define WXDLLEXPORT __export -# define WXDLLEXPORT_DATA(type) type __export -# define WXDLLEXPORT_CTORFN __export -# elif defined(WXUSINGDLL) -# define WXDLLEXPORT __import -# define WXDLLEXPORT_DATA(type) type __import -# define WXDLLEXPORT_CTORFN -# else -# define WXDLLEXPORT -# define WXDLLEXPORT_DATA(type) type +# define WXDLLEXPORT _declspec( dllexport ) +# define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type # define WXDLLEXPORT_CTORFN -# endif - -#else - -# ifdef WXMAKINGDLL -# define WXDLLEXPORT __declspec( dllexport ) -# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type -# define WXDLLEXPORT_CTORFN __declspec( dllexport ) # 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 @@ -154,15 +229,18 @@ typedef int wxWindowID; # define WXDLLEXPORT_CTORFN # endif -#endif - #else -// Non-Windows # define WXDLLEXPORT # define WXDLLEXPORT_DATA(type) type # define WXDLLEXPORT_CTORFN #endif +#else // !Windows +# define WXDLLEXPORT +# define WXDLLEXPORT_DATA(type) type +# define WXDLLEXPORT_CTORFN +#endif // Win/!Win + // For ostream, istream ofstream #if defined(__BORLANDC__) && defined( _RTLDLL ) # define WXDLLIMPORT __import @@ -173,39 +251,9 @@ typedef int wxWindowID; class WXDLLEXPORT wxObject; class WXDLLEXPORT wxEvent; -// Vadim's types - check whether we need them all - -/// the type for various indexes (string, arrays, ...) -typedef unsigned int uint; - -/// extended boolean type: { yes, no, may be } -typedef signed int EBool; - -/// with TRUE and FALSE is a possible value for a "3-state" boolean var -#define UNKNOWN (-1) - /** symbolic constant used by all Find()-like functions returning positive + /** symbolic constant used by all Find()-like functions returning positive integer on success as failure indicator */ -#define NOT_FOUND (-1) - /** useful for Windows programmers: makes somewhat more clear all these - zeroes being passed to Windows APIs */ -#define RESERVED (NULL) - -// ---------------------------------------------------------------------------- -// Error codes -// ---------------------------------------------------------------------------- - -/// Standard error codes -enum ErrCode -{ - /// invalid parameter (in broad sense) - ERR_PARAM = (-4000), - /// no more data (iteration functions usually return this) - ERR_NODATA, - /// user cancelled the operation - ERR_CANCEL, - /// no error (the only non negative error code) - ERR_SUCCESS = 0 -}; +#define wxNOT_FOUND (-1) // ---------------------------------------------------------------------------- /** @name Very common macros */ @@ -216,49 +264,34 @@ enum ErrCode // a question of style, because delete will do it itself anyhow, but it might // be considered as an error by some overzealous debugging implementations of // the library, so we do it ourselves) -#define wxDELETE(p) if ( (p) != NULL ) { delete (p); p = NULL; } +#if defined(__SGI_CC__) +// 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) +// --- offer aug 98 +#define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; } +#else +#define wxDELETE(p) if ( (p) != NULL ) { delete p; p = NULL; } +#endif /* __SGI__CC__ */ // delete an array and NULL it (see comments above) -#define wxDELETEA(p) if ( (p) != NULL ) { delete [] (p); p = NULL; } +#if defined(__SGI_CC__) +// see above comment. +#define wxDELETEA(p) if ( (p) ) { delete [] (p); p = 0L; } +#else +#define wxDELETEA(p) if ( ((void *) (p)) != NULL ) { delete [] p; p = NULL; } +#endif /* __SGI__CC__ */ /// size of statically declared array #define WXSIZEOF(array) (sizeof(array)/sizeof(array[0])) -// ---------------------------------------------------------------------------- -// compiler and OS identification -// ---------------------------------------------------------------------------- - -// OS -#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) - #ifndef __UNIX__ - #define __UNIX__ - #endif -#endif - -#ifndef __UNIX__ // Windows - #ifndef __WXMSW__ - #define __WXMSW__ - #endif - - #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 - -#if defined(__UNIX__) - #define FILE_PATH_SEPARATOR ('/') -#elif defined(__WXMSW__) - #define FILE_PATH_SEPARATOR ('\\') -#else - #error "don't know path separator for this platform" -#endif +// Use of these suppresses some compiler warnings +WXDLLEXPORT_DATA(extern const bool) wxTrue; +WXDLLEXPORT_DATA(extern const bool) wxFalse; // ---------------------------------------------------------------------------- // compiler specific settings @@ -268,16 +301,29 @@ enum ErrCode // 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. - 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 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. +#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__) +#ifndef __MWERKS__ +#undef __WXDEBUG__ +#endif +#endif + // Callback function type definition typedef void (*wxFunction) (wxObject&, wxEvent&); @@ -292,7 +338,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. - * + * */ /* @@ -337,20 +383,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) @@ -358,7 +404,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 @@ -371,17 +417,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 + +/* + * 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. @@ -394,22 +447,14 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * Styles for wxListBox */ - -// In wxListBox style flag -#define wxSB_MASK 0x0008 -#define wxNEEDED_SB 0x0000 -#define wxALWAYS_SB 0x0008 - -// New naming convention -#define wxLB_NEEDED_SB wxNEEDED_SB -#define wxLB_ALWAYS_SB wxALWAYS_SB #define wxLB_SORT 0x0010 -// These duplicate the styles in the Multiple argument -#define wxLB_SINGLE 0x0000 +#define wxLB_SINGLE 0x0020 #define wxLB_MULTIPLE 0x0040 #define wxLB_EXTENDED 0x0080 // wxLB_OWNERDRAW is Windows-only #define wxLB_OWNERDRAW 0x0100 +#define wxLB_NEEDED_SB 0x0200 +#define wxLB_ALWAYS_SB 0x0400 #define wxLB_HSCROLL wxHSCROLL /* @@ -421,25 +466,28 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxTE_PASSWORD wxPASSWORD #define wxTE_READONLY 0x0010 #define wxTE_MULTILINE 0x0020 - -// TODO For backward compatibility, need wxOLD_READONLY -#define wxREADONLY wxTE_READONLY -#define wxEDITABLE 0 - -// MSW-only -#define wxTE_RICHTEXT 0x0020 +#define wxTE_PROCESS_TAB 0x0040 /* * wxComboBox style flags */ #define wxCB_SIMPLE 0x0004 -#define wxCB_DROPDOWN 0x0000 #define wxCB_SORT 0x0008 -#define wxCB_READONLY wxREADONLY +#define wxCB_READONLY 0x0010 +#define wxCB_DROPDOWN 0x0020 /* * 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 @@ -454,7 +502,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 @@ -472,21 +519,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 @@ -494,7 +538,6 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); /* * wxListCtrl flags */ - #define wxLC_ICON 0x0004 #define wxLC_SMALL_ICON 0x0008 #define wxLC_LIST 0x0010 @@ -530,7 +573,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxSP_WRAP 0x0020 /* - * wxSplitterWnd flags + * wxSplitterWindow flags */ #define wxSP_NOBORDER 0x0000 @@ -538,20 +581,26 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxSP_BORDER 0x0008 /* - * wxTabCtrl flags + * wxFrame extra flags */ -#define wxTAB_MULTILINE 0x0000 -#define wxTAB_RIGHTJUSTIFY 0x0004 -#define wxTAB_FIXEDWIDTH 0x0008 -#define wxTAB_OWNERDRAW 0x0010 +// No title on taskbar +#define wxFRAME_TOOL_WINDOW 0x0004 + +/* + * wxTabCtrl flags + */ -// Sorry, I changed my mind about these names... #define wxTC_MULTILINE 0x0000 #define wxTC_RIGHTJUSTIFY 0x0004 #define wxTC_FIXEDWIDTH 0x0008 #define wxTC_OWNERDRAW 0x0010 +/* + * wxNotebook flags + */ +#define wxNB_FIXEDWIDTH 0x0008 + /* * wxStatusBar95 flags */ @@ -603,7 +652,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, @@ -616,7 +665,8 @@ enum { // Logical ops -typedef enum { +typedef enum +{ wxCLEAR, // 0 wxXOR, // src XOR dst wxINVERT, // NOT dst @@ -646,10 +696,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 @@ -687,28 +737,41 @@ 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 + +/* Virtual keycodes */ -enum _Virtual_keycodes { +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, @@ -722,8 +785,8 @@ enum _Virtual_keycodes { 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, @@ -782,34 +845,38 @@ enum _Virtual_keycodes { 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 { - wxCURSES, - 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 - 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 +/* 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 }; -// Printing +/* Printing */ #ifndef wxPORTRAIT #define wxPORTRAIT 1 #define wxLANDSCAPE 2 #endif -// Standard menu identifiers +/* Standard menu identifiers */ +#define wxID_LOWEST 4999 + #define wxID_OPEN 5000 #define wxID_CLOSE 5001 #define wxID_NEW 5002 @@ -834,6 +901,8 @@ enum { #define wxID_PASTE 5032 #define wxID_CLEAR 5033 #define wxID_FIND 5034 +#define wxID_DUPLICATE 5035 +#define wxID_SELECTALL 5036 #define wxID_FILE1 5050 #define wxID_FILE2 5051 @@ -852,10 +921,27 @@ 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 + +// 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) +#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; @@ -881,12 +967,104 @@ typedef unsigned long WXCOLORREF; 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)(); +#elif defined(__WIN32__) typedef int (__stdcall *WXFARPROC)(); +#else +typedef int (*WXFARPROC)(); +#endif + +#endif + +#ifdef __WXMOTIF__ +/* Stand-ins for X/Xt/Motif types */ +typedef void* WXWindow; +typedef void* WXWidget; +typedef void* WXAppContext; +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 _GtkTooltips GtkTooltips; +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 - // __WXDEFSH__ + // _WX_DEFS_H_