#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
# pragma suppress 571 // Virtual function hiding
#endif // __SALFORDC__
+#ifdef __VISUALC__
+#ifndef WIN32
+// VC1.5 does not have LPTSTR type
+#define LPTSTR LPSTR
+#define LPCTSTR LPCSTR
+#endif
+#endif
+
// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
// so define it ourselves
#ifdef __DECCXX
#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
-typedef char signed wxInt8;
-typedef char unsigned wxUint8;
+#define wxInt8 char signed
+#define wxUint8 char unsigned
#ifdef __WIN16__
-typedef int signed wxInt16;
-typedef int unsigned wxUint16;
-typedef long signed wxInt32;
-typedef long unsigned wxUint32;
+#define wxInt16 int signed
+#define wxUint16 int unsigned
+#define wxInt32 long signed
+#define wxUint32 long unsigned
#endif
#ifdef __WIN32__
-typedef short signed wxInt16;
-typedef short unsigned wxUint16;
-typedef int signed wxInt32;
-typedef int unsigned wxUint32;
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
#endif
#ifdef __WXMAC__
-typedef short signed wxInt16;
-typedef short unsigned wxUint16;
-typedef int signed wxInt32;
-typedef int unsigned wxUint32;
+#define wxInt16 short signed
+#define wxUint16 short unsigned
+#define wxInt32 int signed
+#define wxUint32 int unsigned
#endif
#ifdef __WXOS2__
-typedef short signed wxInt16;
-typedef short unsigned wxUint16;
-typedef int signed wxInt32;
-typedef int unsigned wxUint32;
+#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... */
- typedef short signed wxInt16;
- typedef short unsigned wxUint16;
- typedef int signed wxInt32;
- typedef int unsigned wxUint32;
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
#else
- typedef short signed wxInt16;
- typedef short unsigned wxUint16;
- typedef int signed wxInt32;
- typedef int unsigned wxUint32;
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
#endif
#endif
-typedef wxUint8 wxByte;
-typedef wxUint16 wxWord;
+#define wxByte wxUint8
+#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
*/
*/
// use native docking
#define wxMB_DOCKABLE 0x0001
-// make all menus tearoff menus, even if not set on per-menu basis
-#define wxMB_TEAROFF 0x0002
/*
* wxMenu style flags
#define wxTE_READONLY 0x0010
#define wxTE_MULTILINE 0x0020
#define wxTE_PROCESS_TAB 0x0040
+// this style means to use RICHEDIT control and does something only under wxMSW
+// and Win32 and is silently ignored under all other platforms
+#define wxTE_RICH 0x0080
/*
* wxComboBox style flags
#define wxCB_DROPDOWN 0x0020
/*
- * wxRadioBox/wxRadioButton style flags
+ * wxRadioBox 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
-
+#define wxRA_SPECIFY_COLS wxHORIZONTAL
+#define wxRA_SPECIFY_ROWS wxVERTICAL
// Old names for compatibility
#define wxRA_HORIZONTAL wxHORIZONTAL
#define wxRA_VERTICAL wxVERTICAL
+
+/*
+ * wxRadioButton style flag
+ */
#define wxRB_GROUP 0x0004
/*
#define wxTR_SINGLE 0x0000
#define wxTR_MULTIPLE 0x0020
#define wxTR_EXTENDED 0x0040
-#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080
+#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080
/*
* wxListCtrl 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__)
typedef unsigned guint;
typedef unsigned long gulong;
typedef void* gpointer;
+typedef struct _GSList GSList;
/* Stand-ins for GDK types */
typedef gulong GdkAtom;