X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3622daa901777a33969d8bc04e2d62dee14d164..d3904ceb9a02934a8d1ab7034f368b103a699d99:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index f84200020c..843ea408c8 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -9,8 +9,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __DEFSH__ -#define __DEFSH__ +#ifndef _WX_DEFS_H_ +#define _WX_DEFS_H_ #ifdef __GNUG__ #pragma interface "defs.h" @@ -30,8 +30,14 @@ #include "wx/version.h" // Helps SGI compilation, apparently -#if defined(__SGI__) && defined(__GNUG__) +#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 // Eliminate double/float warnings @@ -48,14 +54,10 @@ #endif #if defined(__WXMOTIF__) # define __X__ -#elif defined(__WXMSW__) || defined(__WINDOWS_386__) || defined(__NT__) || defined(__MSDOS__) -# ifndef __WXMSW__ -# define __WXMSW__ -# endif #endif // 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 @@ -70,11 +72,12 @@ // Make sure the environment is set correctly #if defined(__WXMSW__) && defined(__X__) # error "Target can't be both X and Windows" -#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__MAC__) && !defined(__X__) -#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__MAC__]" +#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \ + !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__) +#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) // Bool is now obsolete, use bool instead // typedef int Bool; @@ -172,22 +175,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 @@ -215,10 +205,27 @@ 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])) @@ -228,17 +235,13 @@ enum ErrCode // ---------------------------------------------------------------------------- // OS -#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) +#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) #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__) @@ -251,14 +254,6 @@ enum ErrCode #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 - // ---------------------------------------------------------------------------- // compiler specific settings // ---------------------------------------------------------------------------- @@ -394,21 +389,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,19 +409,16 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxTE_READONLY 0x0010 #define wxTE_MULTILINE 0x0020 -// TODO For backward compatibility, need wxOLD_READONLY -#define wxREADONLY wxTE_READONLY -#define wxEDITABLE 0 - -// #define wxTE_RICHTEXT 0x0020 +// MSW-only +#define wxTE_RICHTEXT 0x0020 /* * 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 @@ -701,7 +686,7 @@ enum wxDataFormat // Virtual keycodes -enum _Virtual_keycodes { +enum wxKeyCode { WXK_BACK = 8, WXK_TAB = 9, WXK_RETURN = 13, @@ -785,20 +770,23 @@ enum _Virtual_keycodes { // OS mnemonics -- Identify the running OS (useful for Windows) // [Not all platforms are currently available or supported] enum { - wxCURSES, + 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 + wxCOSE_X, // OSF Common Desktop Environment wxNEXTSTEP, // NeXTStep wxMACINTOSH, // Apple System 7 - wxGEOS, // GEOS - wxOS2_PM, // OS/2 Workplace + 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 + wxWIN32S, // Windows 32S API + wxWIN95, // Windows 95 + wxWIN386 // Watcom 32-bit supervisor modus }; // Printing @@ -879,12 +867,17 @@ typedef unsigned long WXCOLORREF; typedef void * WXRGNDATA; typedef void * WXMSG; typedef unsigned long WXHCONV; +typedef unsigned long WXHKEY; typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; +#ifdef __GNUWIN32__ typedef int (*WXFARPROC)(); +#else +typedef int (__stdcall *WXFARPROC)(); +#endif #endif #endif - // __WXDEFSH__ + // _WX_DEFS_H_