#define _WX_DEFS_H_
#ifdef __GNUG__
-#pragma interface "defs.h"
+ #pragma interface "defs.h"
#endif
-#include <stddef.h>
-
-#include "wx/setup.h"
-
-#ifdef PACKAGE
- #undef PACKAGE
-#endif
-#ifdef VERSION
- #undef VERSION
-#endif
-
-#include "wx/version.h"
-
// ----------------------------------------------------------------------------
// compiler and OS identification
// ----------------------------------------------------------------------------
defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \
defined(__EMX__)
- #ifndef __UNIX__
- #define __UNIX__
- #endif // Unix
+ #define __UNIX_LIKE__
// Helps SGI compilation, apparently
#ifdef __SGI__
#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) )
// MacOS
+#elif defined(__OS2__)
+ #if defined(__IBMCPP__)
+ #define __VISAGEAVER__ __IBMCPP__
+ #endif
+ #ifndef __WXOS2__
+ #define __WXOS2__
+ #endif
+ #ifndef __WXPM__
+ #define __WXPM__
+ #endif
+
+ // Place other OS/2 compiler environment defines here
+ #define LINKAGEMODE _Optlink
#else // Windows
#ifndef __WINDOWS__
#define __WINDOWS__
#endif // compiler
#endif // OS
+// LINKAGEMODE mode is empty for everyting except OS/2
+#ifndef LINKAGEMODE
+ #define LINKAGEMODE
+#endif // LINKAGEMODE
+
// suppress some Visual C++ warnings
#ifdef __VISUALC__
# pragma warning(disable:4244) // conversion from double to float
#if defined(__HPUX__) && defined(__GNUG__)
#define va_list __gnuc_va_list
#endif // HP-UX
+
+// Mingw32 gcc-2.95 uses new windows headers which are more ms-like
+// 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_MINOR__>=95)
+# define wxUSE_NORLANDER_HEADERS 1
+#endif
+
//////////////////////////////////////////////////////////////////////////////////
// Currently Only MS-Windows/NT, XView and Motif are supported
// 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__) && \
+#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXPM__) && \
!defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
- #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]"
+ #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
#endif
+// ----------------------------------------------------------------------------
+// wxWindows options
+// ----------------------------------------------------------------------------
+
+#include <stddef.h>
+
+#include "wx/setup.h"
+
+// just in case they were defined in setup.h
+#undef PACKAGE
+#undef VERSION
+
+// if we're on a Unixsystem but didn't use configure (so that setup.h didn't
+// define __UNIX__), do define __UNIX__ now
+#if !defined(__UNIX__) && defined(__UNIX_LIKE__)
+ #define __UNIX__
+#endif // Unix
+
+#include "wx/version.h"
+
// ============================================================================
// non portable C++ features
// ============================================================================
// check for native bool type and TRUE/FALSE constants
// ----------------------------------------------------------------------------
-#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__)
+#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXPM__) || defined(__WXSTUBS__)
// Bool is now obsolete, use bool instead
// typedef int Bool;
#elif defined(__GNUWIN32__)
// Cygwin supports bool
#define HAVE_BOOL
+ #elif defined(__VISAGECPP__)
+ typedef unsigned long bool;
+ #define HAVE_BOOL
#endif // compilers
#endif // HAVE_BOOL
* Making or using wxWindows as a Windows DLL
*/
-#ifdef __WXMSW__
+#if defined(__WXMSW__)
// _declspec works in BC++ 5 and later, as well as VC++
#if defined(__VISUALC__) || defined(__BORLANDC__)
# define WXDLLEXPORT_CTORFN
# endif
+#elif defined(__WXPM__)
+
+# ifdef WXMAKINGDLL
+# define WXDLLEXPORT _Export
+# define WXDLLEXPORT_DATA(type) _Export type
+# define WXDLLEXPORT_CTORFN
+# elif defined(WXUSINGDLL)
+# define WXDLLEXPORT _Export
+# define WXDLLEXPORT_DATA(type) _Export type
+# define WXDLLEXPORT_CTORFN
+# else
+# define WXDLLEXPORT
+# define WXDLLEXPORT_DATA(type) type
+# define WXDLLEXPORT_CTORFN
+# endif
+
#else
# define WXDLLEXPORT
# define WXDLLEXPORT_DATA(type) type
wxWIN95, // Windows 95
wxWIN386, // Watcom 32-bit supervisor modus
wxMGL_UNIX, // MGL with direct hardware access
- wxMGL_X, // MGL on X
+ wxMGL_X, // MGL on X
wxMGL_WIN32, // MGL on Win32
wxMGL_OS2 // MGL on OS/2
};
// fixed length types
#define wxInt8 char signed
-#define wxUint8 char unsigned
+#define wxUint8 char unsigned
#ifdef __WIN16__
-#define wxInt16 int signed
-#define wxUint16 int unsigned
-#define wxInt32 long signed
-#define wxUint32 long unsigned
+#define wxInt16 int signed
+#define wxUint16 int unsigned
+#define wxInt32 long signed
+#define wxUint32 long unsigned
#endif
#ifdef __WIN32__
-#define wxInt16 short signed
-#define wxUint16 short unsigned
-#define wxInt32 int signed
-#define wxUint32 int unsigned
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
#endif
#ifdef __WXMAC__
-#define wxInt16 short signed
-#define wxUint16 short unsigned
-#define wxInt32 int signed
-#define wxUint32 int unsigned
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
#endif
#ifdef __WXOS2__
-#define wxInt16 short signed
-#define wxUint16 short unsigned
-#define wxInt32 int signed
-#define wxUint32 int unsigned
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
#endif
#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__)
#if defined(SIZEOF_INT)
/* well, this shouldn't happen... */
- #define wxInt16 short signed
- #define wxUint16 short unsigned
- #define wxInt32 int signed
- #define wxUint32 int unsigned
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
#else
- #define wxInt16 short signed
- #define wxUint16 short unsigned
- #define wxInt32 int signed
- #define wxUint32 int unsigned
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
#endif
#endif
#define wxByte wxUint8
-#define wxWord wxUint16
+#define wxWord wxUint16
// byte sex
((wxUint16) ( \
(((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \
(((wxUint16) (val) & (wxUint16) 0xff00U) >> 8)))
-
+
#define wxINT16_SWAP_ALWAYS(val) \
((wxInt16) ( \
(((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \
(((wxUint16) (val) & (wxUint16) 0xff00U) >> 8)))
-
+
#define wxUINT32_SWAP_ALWAYS(val) \
((wxUint32) ( \
(((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \
#define wxWANTS_CHARS 0x00040000
// Make window retained (mostly Motif, I think)
-#define wxRETAINED 0x0002000
+#define wxRETAINED 0x00020000
#define wxBACKINGSTORE wxRETAINED
+// don't invalidate the whole window (resulting in a PAINT event) when the
+// window is resized (currently, makes sense for wxMSW only)
+#define wxNO_FULL_REPAINT_ON_RESIZE 0x00010000
/*
* wxFrame/wxDialog style flags
*/
#define wxPD_REMAINING_TIME 0x0020
/*
- * extended dialog specifiers. these values are stored in a different
+ * wxHtmlWindow flags
+ */
+#define wxHW_SCROLLBAR_NEVER 0x0002
+#define wxHW_SCROLLBAR_AUTO 0x0004
+
+/*
+ * extended dialog specifiers. these values are stored in a different
* flag and thus do not overlap with other style flags. note that these
* values do not correspond to the return values of the dialogs (for
- * those values, look at the wxID_XXX defines).
+ * those values, look at the wxID_XXX defines).
*/
#define wxOK 0x00000001
#define wxYES_NO 0x00000002
// wxCENTRE = 0x0400 (defined above)
-// centering into frame rather than screen
-#define wxCENTER_FRAME 0x0004
-
+// centering into frame rather than screen (obsolete)
+#define wxCENTER_FRAME 0x0000
+// centre on screen rather than parent
+#define wxCENTRE_ON_SCREEN 0x0004
+#define wxCENTER_ON_SCREEN wxCENTRE_ON_SCREEN
// ----------------------------------------------------------------------------
// Possible SetSize flags
// platform specific (implementation) parts of the headers
// ---------------------------------------------------------------------------
-#ifdef __WXMSW__
-// Stand-ins for Windows types, to avoid #including all of windows.h
+#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;
typedef unsigned long WXHANDLE;
typedef unsigned long WXHICON;
typedef void * WXMEASUREITEMSTRUCT;
typedef void * WXLPCREATESTRUCT;
+#if defined(__WXPM__)
+typedef unsigned long WXMPARAM;
+typedef unsigned long WXMSGID;
+typedef void* WXRESULT;
+typedef int (*WXFARPROC)();
+// some windows handles not defined by PM
+typedef unsigned long HANDLE;
+typedef unsigned long HICON;
+typedef unsigned long HFONT;
+typedef unsigned long HMENU;
+typedef unsigned long HPEN;
+typedef unsigned long HBRUSH;
+typedef unsigned long HPALETTE;
+typedef unsigned long HCURSOR;
+typedef unsigned long HINSTANCE;
+typedef unsigned long HIMAGELIST;
+typedef unsigned long HGLOBAL;
+typedef unsigned long DWORD;
+typedef unsigned short WORD;
+#endif
+
#if defined(__GNUWIN32__) || defined(__WXWINE__)
typedef int (*WXFARPROC)();
#elif defined(__WIN32__)