// compiler and OS identification
// ----------------------------------------------------------------------------
+// first define Windows symbols if they're not defined on the command line: we
+// can autodetect everything we need if _WIN32 is defined
+#if defined(_WIN32) || defined(WIN32) || defined(__NT__)
+ #ifndef __WXMSW__
+ #define __WXMSW__
+ #endif
+
+ #ifndef __WIN32__
+ #define __WIN32__
+ #endif
+
+ // Win95 means Win95-style UI, i.e. Win9x/NT 4+
+ #if !defined(__WIN95__) && defined(WINVER) && (WINVER >= 0x0400)
+ #define __WIN95__
+ #endif
+#endif // Win32
+
+#ifdef __WXWINE__
+ #ifndef __WIN32__
+ #define __WIN32__
+ #endif
+ #ifndef __WIN95__
+ #define __WIN95__
+ #endif
+ #ifndef STRICT
+ #define STRICT
+ #endif
+#endif // WINE
+
+#if defined(TWIN32) && !defined(__TWIN32__)
+ #define __TWIN32__
+#endif // Twin32
+
+#include "wx/setup.h"
+
+// old C++ headers (like <iostream.h>) declare classes in the global namespace
+// while the new, standard ones (like <iostream>) do it in std:: namespace
+//
+// using this macro allows constuctions like "wxSTD iostream" to work in
+// either case
+#if !wxUSE_IOSTREAMH
+ #define wxSTD std::
+#else
+ #define wxSTD
+#endif
+
+// just in case they were defined in setup.h
+#ifdef PACKAGE
+#undef PACKAGE
+#endif
+
+#ifdef VERSION
+#undef VERSION
+#endif
+
// OS: first test for generic Unix defines, then for particular flavours and
// finally for Unix-like systems
-#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \
- defined(__LINUX__) || defined(__sgi) || \
+#if defined(__UNIX__) || defined(__unix) || defined(__unix__) || \
+ defined(____SVR4____) || defined(__LINUX__) || defined(__sgi) || \
defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \
defined(__EMX__) || defined(__VMS) || defined(__BEOS__)
#endif
#endif // Sun
-#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) )
- // MacOS
+ #ifdef __EMX__
+ #define OS2EMX_PLAIN_CHAR
+ #endif
+
+ // define __HPUX__ for HP-UX where standard macro is __hpux
+ #if defined(__hpux) && !defined(__HPUX__)
+ #define __HPUX__
+ #endif // HP-UX
+
+ #if defined(__APPLE__)
+ // MacOS X
+ #ifndef __WXMAC__
+ #define __WXMAC__
+ #endif
+ #ifndef __WXMAC_X__
+ // This define really should not be necessary since __WXMAC__
+ // combined with __UNIX__ is sufficient to differentiate
+ // Classic Mac OS from Mac OS X. However, some code has been
+ // added to workaround defects(?) in the bundled gcc compiler
+ // and these corrections are identified by __WXMAC_X__
+ #define __WXMAC_X__
+ #endif
+
+ #define PM_USE_SESSION_APIS 0
+ #include <Carbon/Carbon.h>
+ #endif // __APPLE__
+#elif defined(applec) || \
+ defined(THINK_C) || \
+ (defined(__MWERKS__) && !defined(__INTEL__))
+ // MacOS
+#elif defined(__WXMAC__) && defined(__APPLE__)
+ // MacOS X
+ #define __UNIX_LIKE__
+
+ #ifndef __WXMAC__
+ #define __WXMAC__
+ #endif
+ #ifndef __WXMAC_X__
+ // This define really should not be necessary since __WXMAC__
+ // combined with __UNIX__ is sufficient to differentiate
+ // Classic Mac OS from Mac OS X. However, some code has been
+ // added to workaround defects(?) in the bundled gcc compiler
+ // and these corrections are identified by __WXMAC_X__
+ #define __WXMAC_X__
+ #endif
+
+ #define PM_USE_SESSION_APIS 0
+ #include <Carbon/Carbon.h>
#elif defined(__OS2__)
#if defined(__IBMCPP__)
#define __VISAGEAVER__ __IBMCPP__
#define __WINDOWS__
#endif // Windows
+ // to be changed for Win64!
+ #ifndef __WIN32__
+ #define __WIN16__
+ #endif
+
// 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__)
#elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__)
#define __BORLANDC__
#elif defined(__WATCOMC__)
- //#define __WATCOMC__
#elif defined(__SC__)
#define __SYMANTECC__
#endif // compiler
#endif // OS
+// if we're on a Unix system 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
+
// LINKAGEMODE mode is empty for everyting except OS/2
#ifndef LINKAGEMODE
#define LINKAGEMODE
# pragma warning(disable:4100) // unreferenced formal parameter
# pragma warning(disable:4511) // copy ctor couldn't be generated
# pragma warning(disable:4512) // operator=() couldn't be generated
-# pragma warning(disable:4699) // Using precompiled header
+# pragma warning(disable:4699) // using precompiled header
# pragma warning(disable:4134) // conversion between pointers to members of same class
+# pragma warning(disable:4710) // function not inlined
#ifndef WIN32
# pragma warning(disable:4135) // conversion between different integral types
# pragma warning(disable:4769) // assignment of near pointer to long integer
#endif
#endif // __VISUALC__
+// suppress some Watcom C++ warnings
+#ifdef __WATCOMC__
+# pragma warning 849 9 // Disable 'virtual function hidden'
+# pragma warning 549 9 // Disable 'operand contains compiler generated information'
+#endif // __VISUALC__
+
// suppress some Salford C++ warnings
#ifdef __SALFORDC__
# pragma suppress 353 // Possible nested comments
#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__==2) && (__GNUC_MINOR__>=95)))
- #ifndef wxUSE_NORLANDER_HEADERS
- #define wxUSE_NORLANDER_HEADERS 1
- #endif
+// This macro can be used to check that the version of mingw32 compiler is
+// at least maj.min
+#if defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || defined( __CYGWIN__ )
+ #include "wx/msw/gccpriv.h"
#else
- #ifndef wxUSE_NORLANDER_HEADERS
- #define wxUSE_NORLANDER_HEADERS 0
- #endif
-#endif
-
-// "old" GNUWIN32 is the one without Norlander's headers: it lacks the standard
-// Win32 headers and we define the used stuff ourselves for it in
-// wx/msw/gnuwin32/extra.h
-#if defined(__GNUC__) && !wxUSE_NORLANDER_HEADERS
- #define __GNUWIN32_OLD__
+ #undef wxCHECK_W32API_VERSION
+ #define wxCHECK_W32API_VERSION(maj, min) (0)
#endif
-//////////////////////////////////////////////////////////////////////////////////
-// Currently Only MS-Windows/NT, XView and Motif are supported
-//
#if defined(__HPUX__) && !defined(__WXGTK__)
#ifndef __WXMOTIF__
#define __WXMOTIF__
#define __X__
#endif
-#ifdef __WXMSW__
-
-#if defined(_WIN32) || defined(WIN32) || defined(__NT__)
- #ifndef __WIN32__
- #define __WIN32__
- #endif
-#endif
-
-#ifdef __WXWINE__
- #ifndef __WIN32__
- #define __WIN32__
- #endif
- #ifndef __WIN95__
- #define __WIN95__
- #endif
- #ifndef STRICT
- #define STRICT
- #endif
-#endif
-
-#ifndef __WIN32__
-#define __WIN16__
-#endif
-
-#if !defined(__WIN95__) && (WINVER >= 0x0400)
-#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"
#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
!defined(__WXPM__) && !defined(__WXMAC__) && !defined(__X__) && \
!defined(__WXQT__) && !defined(__WXSTUBS__) && wxUSE_GUI
- #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
+ #ifdef __UNIX__
+ #error "No Target! You should wx-config program for compilation flags!"
+ #else // !Unix
+ #error "No Target! You should supplied makefiles for compilation!"
+ #endif // Unix/!Unix
#endif
-// ----------------------------------------------------------------------------
-// wxWindows options
-// ----------------------------------------------------------------------------
-
-#include <stddef.h>
-
-#include "wx/setup.h"
-
-// just in case they were defined in setup.h
-#undef PACKAGE
-#undef VERSION
-
-// this has to be done after including setup.h which might
-// define __HPUX__ 1 itself
-#if defined(__hpux) && !defined(__HPUX__)
- #define __HPUX__
-#endif // HP-UX
-
-// if we're on a Unix system 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"
// ----------------------------------------------------------------------------
#if defined(__WXMSW__)
-// _declspec works in BC++ 5 and later, as well as VC++
-#if defined(__VISUALC__) || defined(__BORLANDC__)
-
-# ifdef WXMAKINGDLL
-# define WXDLLEXPORT _declspec( dllexport )
-# define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type
-# define WXDLLEXPORT_CTORFN
-# elif defined(WXUSINGDLL)
-# define WXDLLEXPORT _declspec( dllimport )
-# define WXDLLEXPORT_DATA(type) _declspec( dllimport ) type
-# define WXDLLEXPORT_CTORFN
-# else
-# define WXDLLEXPORT
-# define WXDLLEXPORT_DATA(type) type
-# define WXDLLEXPORT_CTORFN
-# endif
-
-#elif defined(__GNUC__)
-
+// __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well as VC++ and gcc
+#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__GNUC__) || defined(__WATCOMC__)
# ifdef WXMAKINGDLL
# define WXDLLEXPORT __declspec( dllexport )
# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
# define WXDLLEXPORT_DATA(type) type
# define WXDLLEXPORT_CTORFN
# endif
+#else
+# define WXDLLEXPORT
+# define WXDLLEXPORT_DATA(type) type
+# 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
+# if (!(defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )))
+
+# 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
# define WXDLLEXPORT_CTORFN
+
# endif
-#else
+#else // !(MSW or OS2)
+
# 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
#endif
+#ifdef __cplusplus
class WXDLLEXPORT wxObject;
class WXDLLEXPORT wxEvent;
+#endif
/** symbolic constant used by all Find()-like functions returning positive
integer on success as failure indicator */
#define wxNOT_FOUND (-1)
// ----------------------------------------------------------------------------
-/** @name Very common macros */
+// Very common macros
// ----------------------------------------------------------------------------
+
+// everybody gets the assert and other debug macros
+#ifdef __cplusplus
+#include "wx/debug.h"
+#endif
+
+// NULL declaration
+#include <stddef.h>
+
//@{
/// delete pointer if it is not NULL and NULL it afterwards
// (checking that it's !NULL before passing it to delete is just a
/// size of statically declared array
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
-// Use of these suppresses some compiler warnings
-WXDLLEXPORT_DATA(extern const bool) wxTrue;
-WXDLLEXPORT_DATA(extern const bool) wxFalse;
-
// ----------------------------------------------------------------------------
// compiler specific settings
// ----------------------------------------------------------------------------
// where should i put this? we need to make sure of this as it breaks
// the <iostream> code.
#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__)
-#ifndef __MWERKS__
-#undef __WXDEBUG__
-#endif
+# ifndef __MWERKS__
+// #undef __WXDEBUG__
+# ifdef wxUSE_DEBUG_NEW_ALWAYS
+# undef wxUSE_DEBUG_NEW_ALWAYS
+# define wxUSE_DEBUG_NEW_ALWAYS 0
+# endif
+# endif
#endif
// Callback function type definition
+#ifdef __cplusplus
typedef void (*wxFunction) (wxObject&, wxEvent&);
+#endif
// ----------------------------------------------------------------------------
// OS mnemonics -- Identify the running OS (useful for Windows)
wxMGL_X, // MGL on X
wxMGL_WIN32, // MGL on Win32
wxMGL_OS2, // MGL on OS/2
- wxWINDOWS_OS2 // Native OS/2 PM
+ wxWINDOWS_OS2, // Native OS/2 PM
+ wxUNIX // wxBase under Unix
};
// ----------------------------------------------------------------------------
= { 0xE158 };
#pragma parameter __D0 wxINT16_SWAP_ALWAYS(__D0)
- pascal wxInt16 wxUINT16_SWAP_ALWAYS(wxInt16 value)
+ pascal wxInt16 wxINT16_SWAP_ALWAYS(wxInt16 value)
= { 0xE158 };
#pragma parameter __D0 wxUINT32_SWAP_ALWAYS (__D0)
= { 0xE158, 0x4840, 0xE158 };
#pragma parameter __D0 wxINT32_SWAP_ALWAYS (__D0)
- pascal wxInt32 wxUINT32_SWAP_ALWAYS(wxInt32 value)
+ pascal wxInt32 wxINT32_SWAP_ALWAYS(wxInt32 value)
= { 0xE158, 0x4840, 0xE158 };
#endif
wxSHRINK = 0x1000,
wxGROW = 0x2000,
wxEXPAND = wxGROW,
- wxSHAPED = 0x4000
+ wxSHAPED = 0x4000,
+ wxADJUST_MINSIZE = 0x8000
};
// ----------------------------------------------------------------------------
// splitter windows, but can't be used in a panel where a static box must be
// 'transparent' (panel paints the background for it)
#define wxCLIP_CHILDREN 0x00400000
+// Note we're reusing the wxCAPTION style because we won't need captions
+// for subwindows/controls
+#define wxCLIP_SIBLINGS 0x20000000
// Add this style to a panel to get tab traversal working outside of dialogs
// (on by default for wxPanel, wxDialog, wxScrolledWindow)
#define wxICONIZE 0x4000
#define wxMINIMIZE wxICONIZE
#define wxMAXIMIZE 0x2000
-#define wxTHICK_FRAME 0x1000
+// free value: 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_NO_PARENT 0x0001 // Don't make owned by apps top window
+#define wxFRAME_NO_TASKBAR 0x0002 // No taskbar button (MSW only)
+#define wxFRAME_TOOL_WINDOW 0x0004 // No taskbar button, no system menu
+
+// deprecated versions defined for compatibility reasons
+#define wxRESIZE_BOX wxMAXIMIZE_BOX
+#define wxTHICK_FRAME wxRESIZE_BORDER
+
+// obsolete styles, unused any more
#define wxDIALOG_MODAL 0x0020
#define wxDIALOG_MODELESS 0x0000
-// Add for normal Windows frame behaviour
-#define wxFRAME_FLOAT_ON_PARENT 0x0020
+
+// deprecated flag, don't use any more, defined for compatibility only
+#define wxFRAME_FLOAT_ON_PARENT 0
+
+// Context-sensitive help
+#define wxFRAME_EX_CONTEXTHELP 0x00000004
+#define wxDIALOG_EX_CONTEXTHELP 0x00000004
/*
* MDI parent frame style flags
#endif
#define wxDEFAULT_FRAME_STYLE \
- (wxSYSTEM_MENU | wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN)
+ (wxSYSTEM_MENU | wxRESIZE_BORDER | \
+ wxMINIMIZE_BOX | wxMAXIMIZE_BOX | \
+ wxCAPTION | wxCLIP_CHILDREN)
#ifdef __WXMSW__
-# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME)
+# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU | wxCAPTION)
#else
-// Under Unix, the dialogs don't have a system menu. Specifying
-// wxSYSTEM_MENU here, will make a close button appear.
-# define wxDEFAULT_DIALOG_STYLE (wxCAPTION|wxTHICK_FRAME)
+// Under Unix, the dialogs don't have a system menu. Specifying wxSYSTEM_MENU
+// here will make a close button appear.
+# define wxDEFAULT_DIALOG_STYLE wxCAPTION
#endif
/*
*/
#define wxBU_AUTODRAW 0x0004
#define wxBU_NOAUTODRAW 0x0000
+#define wxBU_LEFT 0x0040
+#define wxBU_TOP 0x0080
+#define wxBU_RIGHT 0x0100
+#define wxBU_BOTTOM 0x0200
/*
* wxTreeCtrl flags
#define wxTR_MULTIPLE 0x0020
#define wxTR_EXTENDED 0x0040
#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080
+#define wxTR_NO_LINES 0x0100
+#define wxTR_MAC_BUTTONS 0x0200
+#define wxTR_ROW_LINES 0x0400
/*
* wxListCtrl flags
*/
+#define wxLC_VRULES 0x0001
+#define wxLC_HRULES 0x0002
#define wxLC_ICON 0x0004
#define wxLC_SMALL_ICON 0x0008
#define wxLC_LIST 0x0010
* wxSplitterWindow flags
*/
#define wxSP_NOBORDER 0x0000
-#define wxSP_3D 0x0010
+#define wxSP_NOSASH 0x0010
#define wxSP_BORDER 0x0020
#define wxSP_PERMIT_UNSPLIT 0x0040
#define wxSP_LIVE_UPDATE 0x0080
-
-/*
- * wxFrame extra flags
- */
-// No title on taskbar
-#define wxFRAME_TOOL_WINDOW 0x0004
+#define wxSP_3DSASH 0x0100
+#define wxSP_3DBORDER 0x0200
+#define wxSP_FULLSASH 0x0400
+#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH)
/*
* wxTabCtrl flags
// id for a separator line in the menu (invalid for normal item)
#define wxID_SEPARATOR (-1)
-// this one is for compatibility only, don't use in new code
-#ifndef ID_SEPARATOR
- #define ID_SEPARATOR wxID_SEPARATOR
-#endif
-
// Standard menu IDs
#define wxID_LOWEST 4999
#define wxID_MORE 5109
#define wxID_SETUP 5110
#define wxID_RESET 5111
+#define wxID_CONTEXT_HELP 5112
+#define wxID_YESTOALL 5113
+#define wxID_NOTOALL 5114
+#define wxID_ABORT 5115
+#define wxID_RETRY 5116
+#define wxID_IGNORE 5117
// IDs used by generic file dialog (11 consecutive starting from this value)
#define wxID_FILEDLGG 5900
wxPRINT_MODE_PRINTER = 3 // Send to printer
} wxPrintMode;
-// ---------------------------------------------------------------------------
-// Macro to specify "All Files" on different platforms
-// ---------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// miscellaneous
+// ----------------------------------------------------------------------------
+
+// define this macro if font handling is done using the X font names
+#if defined(__WXGTK__) || defined(__X__)
+ #define _WX_X_FONTLIKE
+#endif
+
+// macro to specify "All Files" on different platforms
#if defined(__WXMSW__)
# define wxALL_FILES_PATTERN "*.*"
# define wxALL_FILES gettext_noop("All files (*.*)|*.*")
# define wxALL_FILES_PATTERN "*"
# define wxALL_FILES gettext_noop("All files (*)|*")
#endif
+
// ---------------------------------------------------------------------------
// macros that enable wxWindows apps to be compiled in absence of the
// sytem headers, although some platform specific types are used in the
#ifdef __WXMAC__
typedef WindowPtr WXHWND;
-typedef Handle WXHANDLE;
-typedef CIconHandle WXHICON;
+typedef Handle WXHANDLE;
+typedef CIconHandle WXHICON;
//typedef unsigned long WXHFONT;
-typedef MenuHandle WXHMENU;
+typedef MenuHandle WXHMENU;
//typedef unsigned long WXHPEN;
//typedef unsigned long WXHBRUSH;
//typedef unsigned long WXHPALETTE;
-typedef CursHandle WXHCURSOR;
+typedef CursHandle WXHCURSOR;
typedef RgnHandle WXHRGN;
//typedef unsigned long WXHACCEL;
//typedef unsigned long WXHINSTANCE;
-typedef GWorldPtr WXHBITMAP;
+typedef GWorldPtr WXHBITMAP;
//typedef unsigned long WXHIMAGELIST;
//typedef unsigned long WXHGLOBAL;
-typedef GrafPtr WXHDC;
+typedef GrafPtr WXHDC;
typedef unsigned int WXUINT;
typedef unsigned long WXDWORD;
typedef unsigned short WXWORD;
//typedef unsigned int WXWPARAM;
//typedef long WXLPARAM;
-typedef RGBColor WXCOLORREF;
+typedef RGBColor WXCOLORREF;
//typedef void * WXRGNDATA;
//typedef void * WXMSG;
//typedef unsigned long WXHCONV;
//typedef void * WXLPCREATESTRUCT;
typedef int (*WXFARPROC)();
-typedef WindowPtr WXWindow;
-typedef ControlHandle WXWidget;
+typedef WindowPtr WXWindow;
+typedef ControlHandle WXWidget;
#endif
#if defined(__WXMSW__) || defined(__WXPM__)
+
+// the keywords needed for WinMain() declaration
+#ifdef __WIN16__
+# ifdef __VISUALC__
+# define WXFAR __far
+# else
+# define WXFAR _far
+# endif
+#else // Win32
+# ifndef WXFAR
+# define WXFAR
+# endif
+#endif // Win16/32
+
// 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 WXHCURSOR;
typedef unsigned long WXHRGN;
typedef unsigned long WXHACCEL;
-typedef unsigned long WXHINSTANCE;
+typedef void WXFAR * WXHINSTANCE;
typedef unsigned long WXHBITMAP;
typedef unsigned long WXHIMAGELIST;
typedef unsigned long WXHGLOBAL;
typedef unsigned long WXMPARAM;
typedef unsigned long WXMSGID;
typedef void* WXRESULT;
-typedef int (*WXFARPROC)();
+//typedef int (*WXFARPROC)();
// some windows handles not defined by PM
typedef unsigned long HANDLE;
typedef unsigned long HICON;
// WIN32 graphics types for OS/2 GPI
// RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def
-#define OS2RGB(r,g,b) ((DWORD ((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(b)) << 16)))
+#define OS2RGB(r,g,b) ((DWORD ((BYTE) (b) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(r)) << 16)))
typedef unsigned long COLORREF;
#define GetBValue(rgb) ((BYTE)((rgb) >> 16))
typedef int (*WXFARPROC)();
#elif defined(__WIN32__)
typedef int (__stdcall *WXFARPROC)();
+#elif defined(__WXPM__)
+# if defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )
+ // VA 3.0 for some reason needs base data types when typedefing a proc proto???
+ typedef void* (_System *WXFARPROC)(unsigned long, unsigned long, void*, void*);
+# else
+ typedef WXRESULT (_System *WXFARPROC)(WXHWND, WXMSGID, WXWPARAM, WXLPARAM);
+# endif
#else
typedef int (*WXFARPROC)();
#endif
typedef WXHWND WXWidget;
#if defined(__BORLANDC__) && !defined(__WIN32__)
-#ifndef LPTSTR
-#define LPTSTR LPSTR
-#endif
-#ifndef LPCTSTR
-#define LPCTSTR LPSTR
-#endif
+# ifndef LPTSTR
+# define LPTSTR LPSTR
+# endif
+# ifndef LPCTSTR
+# define LPCTSTR LPSTR
+# endif
#endif
-// the keywords needed for WinMain() declaration
-
-#ifdef __WIN16__
- #ifdef __VISUALC__
- #define WXFAR __far
- #else // !VC++
- #define WXFAR _far
- #endif
-#else // Win32
- #ifndef WXFAR
- #define WXFAR
- #endif
-#endif // Win16/32
-
-#endif // MSW
+#endif // MSW or OS2
#ifdef __WXMOTIF__
/* Stand-ins for X/Xt/Motif types */
#ifdef __WXGTK__
/* Stand-ins for GLIB types */
+typedef char gchar;
+typedef signed char gint8;
typedef int gint;
typedef unsigned guint;
typedef unsigned long gulong;
typedef struct _GdkColormap GdkColormap;
typedef struct _GdkFont GdkFont;
typedef struct _GdkGC GdkGC;
-#ifdef __WXGTK13__
+#ifdef __WXGTK20__
typedef struct _GdkDrawable GdkWindow;
typedef struct _GdkDrawable GdkBitmap;
typedef struct _GdkDrawable GdkPixmap;
typedef struct _GtkSelectionData GtkSelectionData;
typedef GtkWidget *WXWidget;
+
+#ifndef __WXGTK20__
+#define GTK_OBJECT_GET_CLASS(object) (GTK_OBJECT(object)->klass)
+#define GTK_CLASS_TYPE(klass) ((klass)->type)
+#endif
+
+#ifdef __WXGTK20__
+/* Stand-ins for Pango types */
+typedef struct _PangoContext PangoContext;
+typedef struct _PangoLayout PangoLayout;
+typedef struct _PangoFontDescription PangoFontDescription;
+#endif
#endif // GTK
// This is required because of clashing macros in windows.h, which may be