// 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
+ #ifdef __EMX__
+ #define OS2EMX_PLAIN_CHAR
+ #endif
+
#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) )
// MacOS
#elif defined(__OS2__)
#endif
// Place other OS/2 compiler environment defines here
- #define LINKAGEMODE _Optlink
+ #if defined(__VISAGECPP__)
+ // VisualAge is the only thing that understands _Optlink
+ #define LINKAGEMODE _Optlink
+ #endif
#else // Windows
#ifndef __WINDOWS__
#define __WINDOWS__
# 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 // VC++ 1.5
// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
-// so define it ourselves
+// so define it ourselves (newer versions do it for all files, though, and
+// don't allow it to be redefined)
#ifdef __DECCXX
-#ifndef __VMS
-# define __cplusplus
-#endif
+ #if !defined(__VMS) && !defined(__cplusplus)
+ #define __cplusplus
+ #endif
#endif // __DECCXX
// Resolves linking problems under HP-UX
#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
+// Cygwin / Mingw32 with gcc >= 2.95 use new windows headers which
+// are more ms-like (header author is Anders Norlander, hence the name)
+#if (defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+ #ifndef wxUSE_NORLANDER_HEADERS
+ #define wxUSE_NORLANDER_HEADERS 1
+ #endif
+#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(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS
+// "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__
#endif
#endif
#ifdef __WXMSW__
-// wxWindows checks for WIN32, not __WIN32__
-#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__))
-#define __WIN32__
+
+#if defined(_WIN32) || defined(WIN32) || defined(__NT__)
+ #ifndef __WIN32__
+ #define __WIN32__
+ #endif
#endif
#ifdef __WXWINE__
#include "wx/setup.h"
// just in case they were defined in setup.h
+#ifdef PACKAGE
#undef PACKAGE
+#endif
+
+#ifdef VERSION
#undef VERSION
+#endif
// this has to be done after including setup.h which might
// define __HPUX__ 1 itself
#define WXUNUSED(identifier) identifier
#endif
+// some arguments are only used in debug mode, but unused in release one
+#ifdef __WXDEBUG__
+ #define WXUNUSED_UNLESS_DEBUG(param) param
+#else
+ #define WXUNUSED_UNLESS_DEBUG(param) WXUNUSED(param)
+#endif
+
// ----------------------------------------------------------------------------
// portable calling conventions macros
// ----------------------------------------------------------------------------
-// wxCALLBACK should be used for the functions which are called back by
-// Windows (such as compare function for wxListCtrl)
-#if defined(__WIN32__)
- #if defined(__MINGW32__) || defined(__GNUWIN32__)
- #define wxCALLBACK __attribute__((stdcall))
+// stdcall is used for all functions called by Windows under Windows
+#ifdef __WINDOWS__
+ #if defined(__GNUWIN32__)
+ #define wxSTDCALL __attribute__((stdcall))
#else
// both VC++ and Borland understand this
- #define wxCALLBACK _stdcall
+ #define wxSTDCALL _stdcall
#endif
+
+#else // Win
+ // no such stupidness under Unix
+ #define wxSTDCALL
+#endif // platform
+
+// wxCALLBACK should be used for the functions which are called back by
+// Windows (such as compare function for wxListCtrl)
+#if defined(__WIN32__)
+ #define wxCALLBACK wxSTDCALL
#else
// no stdcall under Unix nor Win16
#define wxCALLBACK
#if defined(__WXMSW__)
-// _declspec works in BC++ 5 and later, as well as VC++
-#if defined(__VISUALC__) || defined(__BORLANDC__)
-
+// __declspec works in BC++ 5 and later, as well as VC++ and gcc
+#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__GNUC__)
# ifdef WXMAKINGDLL
-# define WXDLLEXPORT _declspec( dllexport )
-# define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type
+# 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 __declspec( dllimport )
+# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) 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
#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 wxNOT_FOUND (-1)
// ----------------------------------------------------------------------------
-/** @name Very common macros */
+// Very common macros
// ----------------------------------------------------------------------------
+
+// everybody gets the assert and other debug macros
+#include "wx/debug.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
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
};
// ----------------------------------------------------------------------------
typedef float wxFloat32 ;
#if defined( __WXMAC__ ) && defined (__MWERKS__)
- typedef short double wxFloat64;
+ typedef short double wxFloat64;
#else
- typedef double wxFloat64;
+ typedef double wxFloat64;
#endif
#if defined( __WXMAC__ ) && !defined( __POWERPC__ )
#if defined (__MWERKS__) && ( (__MWERKS__ < 0x0900) || macintosh )
// assembler versions for these
#ifdef __POWERPC__
- inline wxUint16 wxUINT16_SWAP_ALWAYS( wxUint16 i )
- {return (__lhbrx( &i , 0 ) ) ;}
- inline wxInt16 wxINT16_SWAP_ALWAYS( wxInt16 i )
- {return (__lhbrx( &i , 0 ) ) ;}
- inline wxUint32 wxUINT32_SWAP_ALWAYS( wxUint32 i )
- {return (__lwbrx( &i , 0 ) ) ;}
- inline wxInt32 wxINT32_SWAP_ALWAYS( wxInt32 i )
- {return (__lwbrx( &i , 0 ) ) ;}
+ inline wxUint16 wxUINT16_SWAP_ALWAYS( wxUint16 i )
+ {return (__lhbrx( &i , 0 ) ) ;}
+ inline wxInt16 wxINT16_SWAP_ALWAYS( wxInt16 i )
+ {return (__lhbrx( &i , 0 ) ) ;}
+ inline wxUint32 wxUINT32_SWAP_ALWAYS( wxUint32 i )
+ {return (__lwbrx( &i , 0 ) ) ;}
+ inline wxInt32 wxINT32_SWAP_ALWAYS( wxInt32 i )
+ {return (__lwbrx( &i , 0 ) ) ;}
#else
- #pragma parameter __D0 wxUINT16_SWAP_ALWAYS(__D0)
- pascal wxUint16 wxUINT16_SWAP_ALWAYS(wxUint16 value)
- = { 0xE158 };
-
- #pragma parameter __D0 wxINT16_SWAP_ALWAYS(__D0)
- pascal wxInt16 wxUINT16_SWAP_ALWAYS(wxInt16 value)
- = { 0xE158 };
-
- #pragma parameter __D0 wxUINT32_SWAP_ALWAYS (__D0)
- pascal wxUint32 wxUINT32_SWAP_ALWAYS(wxUint32 value)
- = { 0xE158, 0x4840, 0xE158 };
-
- #pragma parameter __D0 wxINT32_SWAP_ALWAYS (__D0)
- pascal wxInt32 wxUINT32_SWAP_ALWAYS(wxInt32 value)
- = { 0xE158, 0x4840, 0xE158 };
+ #pragma parameter __D0 wxUINT16_SWAP_ALWAYS(__D0)
+ pascal wxUint16 wxUINT16_SWAP_ALWAYS(wxUint16 value)
+ = { 0xE158 };
+
+ #pragma parameter __D0 wxINT16_SWAP_ALWAYS(__D0)
+ pascal wxInt16 wxINT16_SWAP_ALWAYS(wxInt16 value)
+ = { 0xE158 };
+
+ #pragma parameter __D0 wxUINT32_SWAP_ALWAYS (__D0)
+ pascal wxUint32 wxUINT32_SWAP_ALWAYS(wxUint32 value)
+ = { 0xE158, 0x4840, 0xE158 };
+
+ #pragma parameter __D0 wxINT32_SWAP_ALWAYS (__D0)
+ pascal wxInt32 wxINT32_SWAP_ALWAYS(wxInt32 value)
+ = { 0xE158, 0x4840, 0xE158 };
#endif
#else // !MWERKS
#define wxTRANSPARENT_WINDOW 0x00100000
#define wxNO_BORDER 0x00200000
+// Override CTL3D etc. control colour processing to allow own background
+// colour.
+// OBSOLETE - use wxNO_3D instead
#define wxUSER_COLOURS 0x00800000
- // Override CTL3D etc. control colour processing to
- // allow own background colour
- // OBSOLETE - use wxNO_3D instead
+// Override CTL3D or native 3D styles for children
#define wxNO_3D 0x00800000
- // Override CTL3D or native 3D styles for children
+
+// Clip children when painting, which reduces flicker in e.g. frames and
+// 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
- // Clip children when painting, which reduces flicker in
- // e.g. frames and splitter windows, but can't be used in
- // a panel where a static box must be 'transparent' (panel
- // paints the background for it)
+// 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.
+// Add this style to a panel to get tab traversal working outside of dialogs
+// (on by default for wxPanel, wxDialog, wxScrolledWindow)
#define wxTAB_TRAVERSAL 0x00080000
// Add this style if the control wants to get all keyboard messages (under
// 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
+
+/*
+ * Extra window style flags (use wxWS_EX prefix to make it clear that they
+ * should be passed to wxWindow::SetExtraStyle(), not SetWindowStyle())
+ */
+
+// by default, TransferDataTo/FromWindow() only work on direct children of the
+// window (compatible behaviour), set this flag to make them recursively
+// descend into all subwindows
+#define wxWS_EX_VALIDATE_RECURSIVELY 0x00000001
+
/*
* wxFrame/wxDialog style flags
*/
#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
+ * Can overlap with some of the above.
+ */
+
+#define wxFRAME_NO_WINDOW_MENU 0x0100
#if WXWIN_COMPATIBILITY
#define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE
#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
/*
/*
* wxTextCtrl style flags
*/
-#define wxPROCESS_ENTER 0x0004
-#define wxPASSWORD 0x0008
-#define wxTE_PROCESS_ENTER wxPROCESS_ENTER
-#define wxTE_PASSWORD wxPASSWORD
+// the flag bits 0x0001, 2, 4 and 8 are free but should be used only for the
+// things which don't make sense for a text control used by wxTextEntryDialog
+// because they would otherwise conflict with wxOK, wxCANCEL, wxCENTRE
#define wxTE_READONLY 0x0010
#define wxTE_MULTILINE 0x0020
#define wxTE_PROCESS_TAB 0x0040
#define wxTE_RICH 0x0080
#define wxTE_NO_VSCROLL 0x0100
#define wxTE_AUTO_SCROLL 0x0200
+#define wxPROCESS_ENTER 0x0400
+#define wxPASSWORD 0x0800
+#define wxTE_PROCESS_ENTER wxPROCESS_ENTER
+#define wxTE_PASSWORD wxPASSWORD
/*
* wxComboBox style flags
*/
#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
/*
* wxListCtrl flags
*/
+#define wxLC_VRULES 0x0001
+#define wxLC_HRULES 0x0002
#define wxLC_ICON 0x0004
#define wxLC_SMALL_ICON 0x0008
#define wxLC_LIST 0x0010
// #define wxLC_SHOW_SEL_ALWAYS
/*
- * wxSpinButton flags
+ * wxSpinButton flags.
+ * Note that a wxSpinCtrl is sometimes defined as
+ * a wxTextCtrl, and so the flags must be different
+ * from wxTextCtrl's.
*/
#define wxSP_HORIZONTAL wxHORIZONTAL // 4
#define wxSP_VERTICAL wxVERTICAL // 8
-#define wxSP_ARROW_KEYS 0x0010
-#define wxSP_WRAP 0x0020
+#define wxSP_ARROW_KEYS 0x1000
+#define wxSP_WRAP 0x2000
/*
* 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
#define wxPD_AUTO_HIDE 0x0004
#define wxPD_ELAPSED_TIME 0x0008
#define wxPD_ESTIMATED_TIME 0x0010
-#define wxPD_REMAINING_TIME 0x0020
+// wxGA_SMOOTH = 0x0020 may also be used with wxProgressDialog
+// NO!!! This is wxDIALOG_MODAL and will cause the progress dialog to
+// be modal. No progress will then be made at all.
+#define wxPD_REMAINING_TIME 0x0040
/*
* wxHtmlWindow 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
// Brush & Pen Stippling. Note that a stippled pen cannot be dashed!!
// Note also that stippling a Pen IS meaningfull, because a Line is
+ wxSTIPPLE_MASK_OPAQUE, //mask is used for blitting monochrome using text fore and back ground colors
+ wxSTIPPLE_MASK, //mask is used for masking areas in the stipple bitmap (TO DO)
// drawn with a Pen, and without any Brush -- and it can be stippled.
wxSTIPPLE = 110,
wxBDIAGONAL_HATCH,
// Logical ops
typedef enum
{
- wxCLEAR, // 0
- wxXOR, // src XOR dst
- wxINVERT, // NOT dst
- wxOR_REVERSE, // src OR (NOT dst)
- wxAND_REVERSE,// src AND (NOT dst)
- wxCOPY, // src
- wxAND, // src AND dst
- wxAND_INVERT, // (NOT src) AND dst
- wxNO_OP, // dst
- wxNOR, // (NOT src) AND (NOT dst)
- wxEQUIV, // (NOT src) XOR dst
- wxSRC_INVERT, // (NOT src)
- wxOR_INVERT, // (NOT src) OR dst
- wxNAND, // (NOT src) OR (NOT dst)
- wxOR, // src OR dst
- wxSET, // 1
- wxSRC_OR, // source _bitmap_ OR destination
- wxSRC_AND // source _bitmap_ AND destination
+ wxCLEAR, wxROP_BLACK = wxCLEAR, wxBLIT_BLACKNESS = wxCLEAR, // 0
+ wxXOR, wxROP_XORPEN = wxXOR, wxBLIT_SRCINVERT = wxXOR, // src XOR dst
+ wxINVERT, wxROP_NOT = wxINVERT, wxBLIT_DSTINVERT = wxINVERT, // NOT dst
+ wxOR_REVERSE, wxROP_MERGEPENNOT = wxOR_REVERSE, wxBLIT_00DD0228 = wxOR_REVERSE, // src OR (NOT dst)
+ wxAND_REVERSE, wxROP_MASKPENNOT = wxAND_REVERSE, wxBLIT_SRCERASE = wxAND_REVERSE, // src AND (NOT dst)
+ wxCOPY, wxROP_COPYPEN = wxCOPY, wxBLIT_SRCCOPY = wxCOPY, // src
+ wxAND, wxROP_MASKPEN = wxAND, wxBLIT_SRCAND = wxAND, // src AND dst
+ wxAND_INVERT, wxROP_MASKNOTPEN = wxAND_INVERT, wxBLIT_00220326 = wxAND_INVERT, // (NOT src) AND dst
+ wxNO_OP, wxROP_NOP = wxNO_OP, wxBLIT_00AA0029 = wxNO_OP, // dst
+ wxNOR, wxROP_NOTMERGEPEN = wxNOR, wxBLIT_NOTSRCERASE = wxNOR, // (NOT src) AND (NOT dst)
+ wxEQUIV, wxROP_NOTXORPEN = wxEQUIV, wxBLIT_00990066 = wxEQUIV, // (NOT src) XOR dst
+ wxSRC_INVERT, wxROP_NOTCOPYPEN = wxSRC_INVERT, wxBLIT_NOTSCRCOPY = wxSRC_INVERT, // (NOT src)
+ wxOR_INVERT, wxROP_MERGENOTPEN = wxOR_INVERT, wxBLIT_MERGEPAINT = wxOR_INVERT, // (NOT src) OR dst
+ wxNAND, wxROP_NOTMASKPEN = wxNAND, wxBLIT_007700E6 = wxNAND, // (NOT src) OR (NOT dst)
+ wxOR, wxROP_MERGEPEN = wxOR, wxBLIT_SRCPAINT = wxOR, // src OR dst
+ wxSET, wxROP_WHITE = wxSET, wxBLIT_WHITENESS = wxSET // 1
} form_ops_t;
/* Flood styles */
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 WindowPtr WXHWND;
+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 RgnHandle WXHRGN;
+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
-#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 _GtkNotebook GtkNotebook;
typedef struct _GtkNotebookPage GtkNotebookPage;
typedef struct _GtkAccelGroup GtkAccelGroup;
-typedef struct _GtkItemFactory GtkItemFactory;
-typedef struct _GtkSelectionData GtkSelectionData;
+typedef struct _GtkItemFactory GtkItemFactory;
+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