/**
-* Name: defs.h
+* Name: wx/defs.h
* Purpose: Declarations/definitions common to all wx source files
* Author: Julian Smart and others
* Modified by: Ryan Norton (Converted to C)
* Created: 01/02/97
* RCS-ID: $Id$
-* Copyright: (c)
+* Copyright: (c) Julian Smart
* Licence: wxWindows licence
*/
#include "wx/platform.h"
-/* RN - only double-check the environment when building in C++
- Shouldn't configure pass the environment to all sub-libs too? */
#ifdef __cplusplus
/* Make sure the environment is set correctly */
# if defined(__WXMSW__) && defined(__X__)
# error "Target can't be both X and Windows"
+# elif defined(__WXMSW__) && defined(__PALMOS__)
+# error "Target can't be both PalmOS and Windows"
# elif !defined(__WXMOTIF__) && \
!defined(__WXMSW__) && \
+ !defined(__WXPALMOS__)&& \
!defined(__WXGTK__) && \
!defined(__WXPM__) && \
!defined(__WXMAC__) && \
#ifdef __VISUALC__
/* the only "real" warning here is 4244 but there are just too many of them */
/* in our code... one day someone should go and fix them but until then... */
+# pragma warning(disable:4097) /* typedef used as class */
# pragma warning(disable:4201) /* nonstandard extension used: nameless struct/union */
# pragma warning(disable:4244) /* conversion from double to float */
-# pragma warning(disable:4710) /* function not inlined */
-# pragma warning(disable:4097) /* typedef used as class */
+# pragma warning(disable:4355) /* 'this' used in base member initializer list */
# pragma warning(disable:4511) /* copy ctor couldn't be generated */
# pragma warning(disable:4512) /* operator=() couldn't be generated */
-#ifndef WIN32
-# pragma warning(disable:4135) /* conversion between different integral types */
-# pragma warning(disable:4769) /* assignment of near pointer to long integer */
-/* This one is really annoying, since it occurs for each cast to (HANDLE)... */
-# pragma warning(disable:4305) /* truncation of long to near ptr */
-#endif
+# pragma warning(disable:4710) /* function not inlined */
#endif /* __VISUALC__ */
/* suppress some Salford C++ warnings */
# pragma warn -inl /* Functions containing reserved words and certain constructs are not expanded inline */
#endif /* __BORLANDC__ */
+/*
+ g++ gives a warning when a class has private dtor if it has no friends but
+ this is a perfectly valid situation for a ref-counted class which destroys
+ itself when its ref count drops to 0, so provide a macro to suppress this
+ warning
+ */
+#ifdef __GNUG__
+# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name) \
+ friend class wxDummyFriendFor ## name;
+#else /* !g++ */
+# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name)
+#endif
+
/* ---------------------------------------------------------------------------- */
/* wxWidgets version and compatibility defines */
/* ---------------------------------------------------------------------------- */
#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x500)
/* Borland 5.0+ supports bool */
#define HAVE_BOOL
- #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100)
+ #elif wxCHECK_WATCOM_VERSION(1,0)
/* Watcom 11+ supports bool */
#define HAVE_BOOL
#elif defined(__DIGITALMARS__)
#endif /* compilers */
#endif /* HAVE_BOOL */
+#if !defined(__MWERKS__) || !defined(true)
#if !defined(HAVE_BOOL) && !defined(bool) && !defined(VMS)
/* NB: of course, this doesn't replace the standard type, because, for */
/* example, overloading based on bool/int parameter doesn't work and */
#define true ((bool)1)
#define false ((bool)0)
#endif
+#endif
/* for backwards compatibility, also define TRUE and FALSE */
/* */
#if defined(__VISUALC__) && (__VISUALC__ >= 1100)
/* VC++ 6.0 and 5.0 have C++ casts (what about earlier versions?) */
#define HAVE_CXX_CASTS
- #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \
- && wxCHECK_GCC_VERSION(2, 95)
- /* GCC 2.95 has C++ casts, what about earlier versions? */
- #define HAVE_CXX_CASTS
+ #elif defined(__MINGW32__) || defined(__CYGWIN32__)
+ #if wxCHECK_GCC_VERSION(2, 95)
+ /* GCC 2.95 has C++ casts, what about earlier versions? */
+ #define HAVE_CXX_CASTS
+ #endif
#endif
#endif /* !HAVE_CXX_CASTS */
#ifndef HAVE_STATIC_CAST
#define HAVE_STATIC_CAST
#endif
+ #ifndef HAVE_DYNAMIC_CAST
+ #define HAVE_DYNAMIC_CAST
+ #endif
#endif /* HAVE_CXX_CASTS */
#ifdef HAVE_STATIC_CAST
#define wx_reinterpret_cast(t, x) ((t)(x))
#endif
+/*
+ This one is a wx invention: like static cast but used when we intentionally
+ truncate from a larger to smaller type, static_cast<> can't be used for it
+ as it results in warnings when using some compilers (SGI mipspro for example)
+ */
+#if defined(__INTELC__) && defined(__cplusplus)
+ template <typename T, typename X>
+ inline T wx_truncate_cast_impl(X x)
+ {
+ #pragma warning(push)
+ /* implicit conversion of a 64-bit integral type to a smaller integral type */
+ #pragma warning(disable: 1682)
+ /* conversion from "X" to "T" may lose significant bits */
+ #pragma warning(disable: 810)
+
+ return x;
+
+ #pragma warning(pop)
+ }
+
+ #define wx_truncate_cast(t, x) wx_truncate_cast_impl<t>(x)
+
+#elif defined(__cplusplus) && defined(__VISUALC__) && __VISUALC__ >= 1310
+ template <typename T, typename X>
+ inline T wx_truncate_cast_impl(X x)
+ {
+ #pragma warning(push)
+ /* conversion from 'X' to 'T', possible loss of data */
+ #pragma warning(disable: 4267)
+
+ return x;
+
+ #pragma warning(pop)
+ }
+
+ #define wx_truncate_cast(t, x) wx_truncate_cast_impl<t>(x)
+#else
+ #define wx_truncate_cast(t, x) ((t)(x))
+#endif
+
/* for consistency with wxStatic/DynamicCast defined in wx/object.h */
#define wxConstCast(obj, className) wx_const_cast(className *, obj)
#define wxVaCopy(d, s) ((d) = (s))
#endif
#endif /* va_copy/!va_copy */
-#endif // wxVaCopy
+#endif /* wxVaCopy */
/* ---------------------------------------------------------------------------- */
#define WXUNUSED_UNLESS_DEBUG(param) WXUNUSED(param)
#endif
+/* some arguments are not used in unicode mode */
+#if wxUSE_UNICODE
+ #define WXUNUSED_IN_UNICODE(param) WXUNUSED(param)
+#else
+ #define WXUNUSED_IN_UNICODE(param) param
+#endif
+
+/* some arguments are not used in WinCE build */
+#ifdef __WXWINCE__
+ #define WXUNUSED_IN_WINCE(param) WXUNUSED(param)
+#else
+ #define WXUNUSED_IN_WINCE(param) param
+#endif
+
/* some compilers give warning about a possibly unused variable if it is */
/* initialized in both branches of if/else and shut up if it is initialized */
/* when declared, but other compilers then give warnings about unused variable */
#define except(x) catch(...)
#endif /* Metrowerks */
-#if defined(__WATCOMC__)
+#if wxONLY_WATCOM_EARLIER_THAN(1,4)
typedef short mode_t;
#endif
wxWIN32S, /* Windows 32S API */
wxWIN95, /* Windows 95 */
wxWIN386, /* Watcom 32-bit supervisor modus */
- wxWINDOWS_CE, /* Windows CE */
+ wxWINDOWS_CE, /* Windows CE (generic) */
+ wxWINDOWS_POCKETPC, /* Windows CE PocketPC */
+ wxWINDOWS_SMARTPHONE, /* Windows CE Smartphone */
wxMGL_UNIX, /* MGL with direct hardware access */
wxMGL_X, /* MGL on X */
wxMGL_WIN32, /* MGL on Win32 */
wxMGL_DOS, /* MGL on MS-DOS */
wxWINDOWS_OS2, /* Native OS/2 PM */
wxUNIX, /* wxBase under Unix */
- wxX11 /* Plain X11 and Universal widgets */
+ wxX11, /* Plain X11 and Universal widgets */
+ wxPALMOS, /* PalmOS */
+ wxDOS /* wxBase under MS-DOS */
};
/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */
/* the type for screen and DC coordinates */
-
-#if wxUSE_COMPATIBLE_COORD_TYPES
- /* to ensure compatibility with 2.0, we must use long */
- #define wxCoord long
-#else /* !wxUSE_COMPATIBLE_COORD_TYPES */
- /* other platforms we support have at least 32bit int - quite enough */
- typedef int wxCoord;
-#endif /* wxUSE_COMPATIBLE_COORD_TYPES/!wxUSE_COMPATIBLE_COORD_TYPES */
+typedef int wxCoord;
enum { wxDefaultCoord = -1 };
/* define fixed length types */
/* ---------------------------------------------------------------------------- */
+#if defined(__WXPALMOS__) || defined(__MINGW32__)
+ #include <sys/types.h>
+#endif
+
/* chars are always one byte (by definition), shorts are always two (in */
/* practice) */
*/
/* 32bit */
-#ifdef __WINDOWS__
+#ifdef __PALMOS__
+ typedef int wxInt32;
+ typedef unsigned int wxUint32;
+ #define SIZEOF_INT 4
+ #define SIZEOF_LONG 4
+ #define SIZEOF_WCHAR_T 2
+ #define SIZEOF_SIZE_T 4
+ #define wxSIZE_T_IS_UINT
+ #define SIZEOF_VOID_P 4
+ #define SIZEOF_SIZE_T 4
+#elif defined(__WINDOWS__)
/* Win64 uses LLP64 model and so ints and longs have the same size as in */
/* Win32 */
#if defined(__WIN32__)
typedef long wxInt32;
typedef unsigned long wxUint32;
- #elif
+ #else
/* wxWidgets is not ready for 128bit systems yet... */
#error "Unknown sizeof(int) value, what are you compiling for?"
#endif
/*
VC++ 7.1 gives warnings about casts such as below even when they're
explicit with /Wp64 option, suppress them as we really know what we're
- doing here
+ doing here. Same thing with icc with -Wall.
*/
-#ifdef __VISUALC__
- #pragma warning(disable: 4311) /* pointer truncation from '' to '' */
+#if defined(__VISUALC__) || defined(__INTELC__)
+ #pragma warning(push)
+ #ifdef __VISUALC__
+ /* pointer truncation from '' to '' */
+ #pragma warning(disable: 4311)
+ #elif defined(__INTELC__)
+ /* conversion from pointer to same-sized integral type */
+ #pragma warning(disable: 1684)
+ #endif
#endif
return wx_reinterpret_cast(wxUIntPtr, p);
-#ifdef __VISUALC__
- #pragma warning(default: 4311)
+#if defined(__VISUALC__) || defined(__INTELC__)
+ #pragma warning(pop)
#endif
}
inline void *wxUIntToPtr(wxUIntPtr p)
{
-#ifdef __VISUALC__
- #pragma warning(disable: 4312) /* conversion to type of greater size */
+#if defined(__VISUALC__) || defined(__INTELC__)
+ #pragma warning(push)
+ #ifdef __VISUALC__
+ /* conversion to type of greater size */
+ #pragma warning(disable: 4312)
+ #elif defined(__INTELC__)
+ /* invalid type conversion: "wxUIntPtr={unsigned long}" to "void *" */
+ #pragma warning(disable: 171)
+ #endif
#endif
return wx_reinterpret_cast(void *, p);
-#ifdef __VISUALC__
- #pragma warning(default: 4312)
+#if defined(__VISUALC__) || defined(__INTELC__)
+ #pragma warning(pop)
#endif
}
#endif /*__cplusplus*/
/* 64 bit */
-/* NB: we #define and not typedef wxLongLong_t because we want to be able to */
-/* use 'unsigned wxLongLong_t' as well and because we use "#ifdef */
+/* NB: we #define and not typedef wxLongLong_t because we use "#ifdef */
/* wxLongLong_t" in wx/longlong.h */
+/* wxULongLong_t is set later (usually to unsigned wxLongLong_t) */
+
/* to avoid compilation problems on 64bit machines with ambiguous method calls */
/* we will need to define this */
#undef wxLongLongIsLong
#define wxLongLongSuffix l
#define wxLongLongFmtSpec _T("l")
#define wxLongLongIsLong
+#elif defined(__WXPALMOS__)
+ #define wxLongLong_t int64_t
+ #define wxLongLongSuffix ll
+ #define wxLongLongFmtSpec _T("ll")
#elif (defined(__VISUALC__) && defined(__WIN32__))
#define wxLongLong_t __int64
#define wxLongLongSuffix i64
#elif defined(__BORLANDC__) && defined(__WIN32__) && (__BORLANDC__ >= 0x520)
#define wxLongLong_t __int64
#define wxLongLongSuffix i64
- #define wxLongLongFmtSpec _T("Ld")
-#elif (defined(__WATCOMC__) && (defined(__WIN32__) || defined(__DOS__)))
+ #define wxLongLongFmtSpec _T("L")
+#elif (defined(__WATCOMC__) && (defined(__WIN32__) || defined(__DOS__) || defined(__OS2__)))
#define wxLongLong_t __int64
#define wxLongLongSuffix i64
- #define wxLongLongFmtSpec _T("Ld")
+ #define wxLongLongFmtSpec _T("L")
#elif defined(__DIGITALMARS__)
#define wxLongLong_t __int64
#define wxLongLongSuffix LL
#define wxLongLongFmtSpec _T("ll")
+#elif defined(__MINGW32__)
+ #define wxLongLong_t long long
+ #define wxLongLongSuffix ll
+ #define wxLongLongFmtSpec _T("I64")
#elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8) || \
- defined(__MINGW32__) || \
defined(__GNUC__) || \
defined(__CYGWIN__) || \
defined(__WXMICROWIN__) || \
#ifdef wxLongLong_t
+
+ #ifdef __WXPALMOS__
+ #define wxULongLong_t uint64_t
+ #else
+ #define wxULongLong_t unsigned wxLongLong_t
+ #endif
+
/* these macros allow to definea 64 bit constants in a portable way */
#define wxLL(x) wxCONCAT(x, wxLongLongSuffix)
#define wxULL(x) wxCONCAT(x, wxCONCAT(u, wxLongLongSuffix))
typedef wxLongLong_t wxInt64;
- typedef unsigned wxLongLong_t wxUint64;
+ typedef wxULongLong_t wxUint64;
#endif
/* Make sure ssize_t is defined (a signed type the same size as size_t) */
/* HAVE_SSIZE_T should be defined for compiliers that already have it */
#ifdef __MINGW32__
- #include <sys/types.h>
#if defined(_SSIZE_T_) && !defined(HAVE_SSIZE_T)
#define HAVE_SSIZE_T
#endif
#endif
+#if defined(__PALMOS__) && !defined(HAVE_SSIZE_T)
+ #define HAVE_SSIZE_T
+#endif
+#if wxCHECK_WATCOM_VERSION(1,4)
+ #define HAVE_SSIZE_T
+#endif
#ifndef HAVE_SSIZE_T
#if SIZEOF_SIZE_T == 4
typedef wxInt32 ssize_t;
#elif SIZEOF_SIZE_T == 8
- typedef wxInt64 ssize_t
+ typedef wxInt64 ssize_t;
#else
#error "error defining ssize_t, size_t is not 4 or 8 bytes"
#endif
enum wxOrientation
{
+ /* don't change the values of these elements, they are used elsewhere */
wxHORIZONTAL = 0x0004,
wxVERTICAL = 0x0008,
- wxBOTH = (wxVERTICAL | wxHORIZONTAL)
+ wxBOTH = wxVERTICAL | wxHORIZONTAL
};
enum wxDirection
wxBORDER_MASK = 0x1f200000
};
+/* This makes it easier to specify a 'normal' border for a control */
+#if defined(__SMARTPHONE__) || defined(__POCKETPC__)
+#define wxDEFAULT_CONTROL_BORDER wxBORDER_SIMPLE
+#else
+#define wxDEFAULT_CONTROL_BORDER wxBORDER_SUNKEN
+#endif
+
/* ---------------------------------------------------------------------------- */
/* Window style flags */
/* ---------------------------------------------------------------------------- */
#define wxFRAME_EX_CONTEXTHELP 0x00000004
#define wxDIALOG_EX_CONTEXTHELP 0x00000004
+/* Draw the window in a metal theme on Mac */
+#define wxFRAME_EX_METAL 0x00000040
+#define wxDIALOG_EX_METAL 0x00000040
+
/* Create a window which is attachable to another top level window */
#define wxFRAME_DRAWER 0x0020
#define wxFRAME_NO_WINDOW_MENU 0x0100
-/*
- * wxExtDialog style flags
- */
-#define wxED_CLIENT_MARGIN 0x0004
-#define wxED_BUTTONS_BOTTOM 0x0000 /* has no effect */
-#define wxED_BUTTONS_RIGHT 0x0002
-#define wxED_STATIC_LINE 0x0001
-
-#if defined(__WXMSW__) || defined(__WXMAC__)
-# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN)
-#else
-# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN|wxED_STATIC_LINE)
-#endif
-
/*
* wxMenuBar style flags
*/
/* Old names for compatibility */
#define wxRA_HORIZONTAL wxHORIZONTAL
#define wxRA_VERTICAL wxVERTICAL
+#define wxRA_USE_CHECKBOX 0x0010 /* alternative native subcontrols (wxPalmOS) */
/*
* wxRadioButton style flag
*/
#define wxRB_GROUP 0x0004
#define wxRB_SINGLE 0x0008
-
-/*
- * wxSlider flags
- */
-#define wxSL_HORIZONTAL wxHORIZONTAL /* 4 */
-#define wxSL_VERTICAL wxVERTICAL /* 8 */
-/* The next one is obsolete - use scroll events instead */
-#define wxSL_NOTIFY_DRAG 0x0000
-#define wxSL_TICKS 0x0010
-#define wxSL_AUTOTICKS wxSL_TICKS /* we don't support manual ticks */
-#define wxSL_LABELS 0x0020
-#define wxSL_LEFT 0x0040
-#define wxSL_TOP 0x0080
-#define wxSL_RIGHT 0x0100
-#define wxSL_BOTTOM 0x0200
-#define wxSL_BOTH 0x0400
-#define wxSL_SELRANGE 0x0800
+#define wxRB_USE_CHECKBOX 0x0010 /* alternative native control (wxPalmOS) */
/*
* wxScrollBar flags
#define wxSP_ARROW_KEYS 0x1000
#define wxSP_WRAP 0x2000
+/*
+ * wxBookCtrl flags (common for wxNotebook, wxListbook, wxChoicebook, wxTreebook)
+ */
+
+#define wxBK_DEFAULT 0x0000
+#define wxBK_TOP 0x0010
+#define wxBK_BOTTOM 0x0020
+#define wxBK_LEFT 0x0040
+#define wxBK_RIGHT 0x0080
+#define wxBK_ALIGN_MASK ( wxBK_TOP | wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT )
+
/*
* wxNotebook flags
*/
-#define wxNB_FIXEDWIDTH 0x0010
-#define wxNB_TOP 0x0000 /* default */
-#define wxNB_LEFT 0x0020
-#define wxNB_RIGHT 0x0040
-#define wxNB_BOTTOM 0x0080
-#define wxNB_MULTILINE 0x0100
-#define wxNB_DEFAULT wxNB_TOP
+#if WXWIN_COMPATIBILITY_2_6
+/* Use common book wxBK_* flags for describing alignment */
+#define wxNB_DEFAULT wxBK_DEFAULT
+#define wxNB_TOP wxBK_TOP
+#define wxNB_BOTTOM wxBK_BOTTOM
+#define wxNB_LEFT wxBK_LEFT
+#define wxNB_RIGHT wxBK_RIGHT
+#endif
+
+#define wxNB_FIXEDWIDTH 0x0100
+#define wxNB_MULTILINE 0x0200
+#define wxNB_NOPAGETHEME 0x0400
+#define wxNB_FLAT 0x0800
/*
* wxListbook flags
*/
-#define wxLB_DEFAULT 0x0
-#define wxLB_TOP 0x1
-#define wxLB_BOTTOM 0x2
-#define wxLB_LEFT 0x4
-#define wxLB_RIGHT 0x8
-#define wxLB_ALIGN_MASK 0xf
+#if WXWIN_COMPATIBILITY_2_6
+/* Use common book wxBK_* flags for describing alignment */
+#define wxLB_DEFAULT wxBK_DEFAULT
+#define wxLB_TOP wxBK_TOP
+#define wxLB_BOTTOM wxBK_BOTTOM
+#define wxLB_LEFT wxBK_LEFT
+#define wxLB_RIGHT wxBK_RIGHT
+#define wxLB_ALIGN_MASK wxBK_ALIGN_MASK
+#endif
/*
* wxChoicebook flags
*/
-#define wxCHB_DEFAULT 0x0
-#define wxCHB_TOP 0x1
-#define wxCHB_BOTTOM 0x2
-#define wxCHB_LEFT 0x4
-#define wxCHB_RIGHT 0x8
-#define wxCHB_ALIGN_MASK 0xf
+#if WXWIN_COMPATIBILITY_2_6
+/* Use common book wxBK_* flags for describing alignment */
+#define wxCHB_DEFAULT wxBK_DEFAULT
+#define wxCHB_TOP wxBK_TOP
+#define wxCHB_BOTTOM wxBK_BOTTOM
+#define wxCHB_LEFT wxBK_LEFT
+#define wxCHB_RIGHT wxBK_RIGHT
+#define wxCHB_ALIGN_MASK wxBK_ALIGN_MASK
+#endif
/*
* wxTabCtrl flags
#define wxPD_AUTO_HIDE 0x0004
#define wxPD_ELAPSED_TIME 0x0008
#define wxPD_ESTIMATED_TIME 0x0010
-/* 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_SMOOTH 0x0020
#define wxPD_REMAINING_TIME 0x0040
+#define wxPD_CAN_SKIP 0x0080
/*
* wxDirDialog styles
/* standard IDs */
/* ---------------------------------------------------------------------------- */
-/* any id: means that we don't care about the id, whether when installing an */
-/* event handler or when creating a new window */
+/* Standard menu IDs */
enum
{
- wxID_ANY = -1
-};
+ /* no id matches this one when compared to it */
+ wxID_NONE = -3,
-/* id for a separator line in the menu (invalid for normal item) */
-enum
-{
- wxID_SEPARATOR = -2
-};
+ /* id for a separator line in the menu (invalid for normal item) */
+ wxID_SEPARATOR = -2,
-/* Standard menu IDs */
-enum
-{
+ /* any id: means that we don't care about the id, whether when installing
+ * an event handler or when creating a new window */
+ wxID_ANY = -1,
+
+
+ /* all predefined ids are between wxID_LOWEST and wxID_HIGHEST */
wxID_LOWEST = 4999,
wxID_OPEN,
#define wxSIZE_ALLOW_MINUS_ONE 0x0004
/* Don't do parent client adjustments (for implementation only) */
#define wxSIZE_NO_ADJUSTMENTS 0x0008
+/* Change the window position even if it seems to be already correct */
+#define wxSIZE_FORCE 0x0010
/* ---------------------------------------------------------------------------- */
/* GDI descriptions */
wxTOOL_RIGHT
};
-/* the values of the format constants should be the same as correspondign */
+/* the values of the format constants should be the same as corresponding */
/* CF_XXX constants in Windows API */
enum wxDataFormatId
{
WXK_SPACE = 32,
WXK_DELETE = 127,
- /* These are, by design, not compatable with unicode characters.
+ /* These are, by design, not compatible with unicode characters.
If you want to get a unicode character from a key event, use
wxKeyEvent::GetUnicodeKey instead. */
WXK_START = 300,
WXK_WINDOWS_LEFT,
WXK_WINDOWS_RIGHT,
WXK_WINDOWS_MENU ,
- WXK_COMMAND
+ WXK_COMMAND,
+
+ /* Hardware-specific buttons */
+ WXK_SPECIAL1 = 193,
+ WXK_SPECIAL2,
+ WXK_SPECIAL3,
+ WXK_SPECIAL4,
+ WXK_SPECIAL5,
+ WXK_SPECIAL6,
+ WXK_SPECIAL7,
+ WXK_SPECIAL8,
+ WXK_SPECIAL9,
+ WXK_SPECIAL10,
+ WXK_SPECIAL11,
+ WXK_SPECIAL12,
+ WXK_SPECIAL13,
+ WXK_SPECIAL14,
+ WXK_SPECIAL15,
+ WXK_SPECIAL16,
+ WXK_SPECIAL17,
+ WXK_SPECIAL18,
+ WXK_SPECIAL19,
+ WXK_SPECIAL20
};
-#if wxUSE_HOTKEY
-enum wxHotkeyModifier
+/* This enum contains bit mask constants used in wxKeyEvent */
+enum wxKeyModifier
{
- wxMOD_NONE = 0,
- wxMOD_ALT = 1,
- wxMOD_CONTROL = 2,
- wxMOD_SHIFT = 4,
- wxMOD_WIN = 8
-};
+ wxMOD_NONE = 0x0000,
+ wxMOD_ALT = 0x0001,
+ wxMOD_CONTROL = 0x0002,
+ wxMOD_ALTGR = wxMOD_ALT | wxMOD_CONTROL,
+ wxMOD_SHIFT = 0x0004,
+ wxMOD_META = 0x0008,
+ wxMOD_WIN = wxMOD_META,
+#if defined(__WXMAC__) || defined(__WXCOCOA__)
+ wxMOD_CMD = wxMOD_META,
+#else
+ wxMOD_CMD = wxMOD_CONTROL,
#endif
+ wxMOD_ALL = 0xffff
+};
/* Mapping modes (same values as used by Windows, don't change) */
enum
wxPAPER_B5_EXTRA, /* B5 (ISO) Extra 201 x 276 mm */
wxPAPER_A2, /* A2 420 x 594 mm */
wxPAPER_A3_TRANSVERSE, /* A3 Transverse 297 x 420 mm */
- wxPAPER_A3_EXTRA_TRANSVERSE /* A3 Extra Transverse 322 x 445 mm */
-
+ wxPAPER_A3_EXTRA_TRANSVERSE, /* A3 Extra Transverse 322 x 445 mm */
+
+ wxPAPER_DBL_JAPANESE_POSTCARD,/* Japanese Double Postcard 200 x 148 mm */
+ wxPAPER_A6, /* A6 105 x 148 mm */
+ wxPAPER_JENV_KAKU2, /* Japanese Envelope Kaku #2 */
+ wxPAPER_JENV_KAKU3, /* Japanese Envelope Kaku #3 */
+ wxPAPER_JENV_CHOU3, /* Japanese Envelope Chou #3 */
+ wxPAPER_JENV_CHOU4, /* Japanese Envelope Chou #4 */
+ wxPAPER_LETTER_ROTATED, /* Letter Rotated 11 x 8 1/2 in */
+ wxPAPER_A3_ROTATED, /* A3 Rotated 420 x 297 mm */
+ wxPAPER_A4_ROTATED, /* A4 Rotated 297 x 210 mm */
+ wxPAPER_A5_ROTATED, /* A5 Rotated 210 x 148 mm */
+ wxPAPER_B4_JIS_ROTATED, /* B4 (JIS) Rotated 364 x 257 mm */
+ wxPAPER_B5_JIS_ROTATED, /* B5 (JIS) Rotated 257 x 182 mm */
+ wxPAPER_JAPANESE_POSTCARD_ROTATED,/* Japanese Postcard Rotated 148 x 100 mm */
+ wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED,/* Double Japanese Postcard Rotated 148 x 200 mm */
+ wxPAPER_A6_ROTATED, /* A6 Rotated 148 x 105 mm */
+ wxPAPER_JENV_KAKU2_ROTATED, /* Japanese Envelope Kaku #2 Rotated */
+ wxPAPER_JENV_KAKU3_ROTATED, /* Japanese Envelope Kaku #3 Rotated */
+ wxPAPER_JENV_CHOU3_ROTATED, /* Japanese Envelope Chou #3 Rotated */
+ wxPAPER_JENV_CHOU4_ROTATED, /* Japanese Envelope Chou #4 Rotated */
+ wxPAPER_B6_JIS, /* B6 (JIS) 128 x 182 mm */
+ wxPAPER_B6_JIS_ROTATED, /* B6 (JIS) Rotated 182 x 128 mm */
+ wxPAPER_12X11, /* 12 x 11 in */
+ wxPAPER_JENV_YOU4, /* Japanese Envelope You #4 */
+ wxPAPER_JENV_YOU4_ROTATED, /* Japanese Envelope You #4 Rotated */
+ wxPAPER_P16K, /* PRC 16K 146 x 215 mm */
+ wxPAPER_P32K, /* PRC 32K 97 x 151 mm */
+ wxPAPER_P32KBIG, /* PRC 32K(Big) 97 x 151 mm */
+ wxPAPER_PENV_1, /* PRC Envelope #1 102 x 165 mm */
+ wxPAPER_PENV_2, /* PRC Envelope #2 102 x 176 mm */
+ wxPAPER_PENV_3, /* PRC Envelope #3 125 x 176 mm */
+ wxPAPER_PENV_4, /* PRC Envelope #4 110 x 208 mm */
+ wxPAPER_PENV_5, /* PRC Envelope #5 110 x 220 mm */
+ wxPAPER_PENV_6, /* PRC Envelope #6 120 x 230 mm */
+ wxPAPER_PENV_7, /* PRC Envelope #7 160 x 230 mm */
+ wxPAPER_PENV_8, /* PRC Envelope #8 120 x 309 mm */
+ wxPAPER_PENV_9, /* PRC Envelope #9 229 x 324 mm */
+ wxPAPER_PENV_10, /* PRC Envelope #10 324 x 458 mm */
+ wxPAPER_P16K_ROTATED, /* PRC 16K Rotated */
+ wxPAPER_P32K_ROTATED, /* PRC 32K Rotated */
+ wxPAPER_P32KBIG_ROTATED, /* PRC 32K(Big) Rotated */
+ wxPAPER_PENV_1_ROTATED, /* PRC Envelope #1 Rotated 165 x 102 mm */
+ wxPAPER_PENV_2_ROTATED, /* PRC Envelope #2 Rotated 176 x 102 mm */
+ wxPAPER_PENV_3_ROTATED, /* PRC Envelope #3 Rotated 176 x 125 mm */
+ wxPAPER_PENV_4_ROTATED, /* PRC Envelope #4 Rotated 208 x 110 mm */
+ wxPAPER_PENV_5_ROTATED, /* PRC Envelope #5 Rotated 220 x 110 mm */
+ wxPAPER_PENV_6_ROTATED, /* PRC Envelope #6 Rotated 230 x 120 mm */
+ wxPAPER_PENV_7_ROTATED, /* PRC Envelope #7 Rotated 230 x 160 mm */
+ wxPAPER_PENV_8_ROTATED, /* PRC Envelope #8 Rotated 309 x 120 mm */
+ wxPAPER_PENV_9_ROTATED, /* PRC Envelope #9 Rotated 324 x 229 mm */
+ wxPAPER_PENV_10_ROTATED /* PRC Envelope #10 Rotated 458 x 324 m */
} wxPaperSize;
/* Printing orientation */
# define wxALL_FILES gettext_noop("All files (*)|*")
#endif
+#if defined(__CYGWIN__) && defined(__WXMSW__)
+# if wxUSE_STL || defined(wxUSE_STD_STRING)
+ /*
+ NASTY HACK because the gethostname in sys/unistd.h which the gnu
+ stl includes and wx builds with by default clash with each other
+ (windows version 2nd param is int, sys/unistd.h version is unsigned
+ int).
+ */
+# define gethostname gethostnameHACK
+# include <unistd.h>
+# undef gethostname
+# endif
+#endif
+
/* --------------------------------------------------------------------------- */
/* macros that enable wxWidgets apps to be compiled in absence of the */
/* sytem headers, although some platform specific types are used in the */
#define WX_OPAQUE_TYPE( name ) struct wxOpaque##name
typedef unsigned char WXCOLORREF[6];
+typedef void* WXCGIMAGEREF;
typedef void* WXHBITMAP;
-typedef void* WXHMETAFILE;
-typedef void* WXHICON;
typedef void* WXHCURSOR;
typedef void* WXHRGN;
typedef void* WXRECTPTR;
typedef unsigned long WXDWORD;
typedef unsigned short WXWORD;
+typedef WX_OPAQUE_TYPE(CIconHandle ) * WXHICON ;
+typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ;
+
/* typedef void* WXWidget; */
/* typedef void* WXWindow; */
typedef WX_NSView WXWidget; /* wxWidgets BASE definition */
#endif /* __WXCOCOA__ */
-#ifdef __WXMSW__
+#if defined(__WXPALMOS__)
+
+typedef void * WXHWND;
+typedef void * WXHANDLE;
+typedef void * WXHICON;
+typedef void * WXHFONT;
+typedef void * WXHMENU;
+typedef void * WXHPEN;
+typedef void * WXHBRUSH;
+typedef void * WXHPALETTE;
+typedef void * WXHCURSOR;
+typedef void * WXHRGN;
+typedef void * WXHACCEL;
+typedef void * WXHINSTANCE;
+typedef void * WXHBITMAP;
+typedef void * WXHIMAGELIST;
+typedef void * WXHGLOBAL;
+typedef void * WXHDC;
+typedef unsigned int WXUINT;
+typedef unsigned long WXDWORD;
+typedef unsigned short WXWORD;
+
+typedef unsigned long WXCOLORREF;
+typedef struct tagMSG WXMSG;
+
+typedef WXHWND WXWINHANDLE; /* WinHandle of PalmOS */
+typedef WXWINHANDLE WXWidget;
+
+typedef void * WXFORMPTR;
+typedef void * WXEVENTPTR;
+typedef void * WXRECTANGLEPTR;
+
+#endif /* __WXPALMOS__ */
+
+
+/* ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port */
+#if defined(__WIN32__)
/* the keywords needed for WinMain() declaration */
#ifndef WXFAR
typedef void * WXHPALETTE;
typedef void * WXHCURSOR;
typedef void * WXHRGN;
+typedef void * WXRECTPTR;
typedef void * WXHACCEL;
typedef void WXFAR * WXHINSTANCE;
typedef void * WXHBITMAP;
typedef long WXLRESULT;
#endif
-#if !defined(__WIN32__) || defined(__GNUWIN32__) || defined(__WXMICROWIN__)
+#if defined(__GNUWIN32__) || defined(__WXMICROWIN__)
typedef int (*WXFARPROC)();
#else
typedef int (__stdcall *WXFARPROC)();
#endif
-#endif /* __WXMSW__ */
+#endif /* __WIN32__ */
+#if defined(__OS2__)
+typedef unsigned long DWORD;
+typedef unsigned short WORD;
+#endif
+
#if defined(__WXPM__) || defined(__EMX__)
#ifdef __WXPM__
/* Stand-ins for OS/2 types, to avoid #including all of os2.h */
typedef unsigned long HINSTANCE;
typedef unsigned long HIMAGELIST;
typedef unsigned long HGLOBAL;
-typedef unsigned long DWORD;
-typedef unsigned short WORD;
#endif /* WXPM || EMX */
#if defined (__WXPM__)
typedef void* WXFont;
typedef void* WXImage;
typedef void* WXFontList;
+typedef void* WXFontSet;
typedef void* WXRendition;
typedef void* WXRenderTable;
typedef void* WXFontType; /* either a XmFontList or XmRenderTable */
private: \
classname& operator=(const classname&);
+/* --------------------------------------------------------------------------- */
+/* If a manifest is being automatically generated, add common controls 6 to it */
+/* --------------------------------------------------------------------------- */
+
+#if (!defined wxUSE_NO_MANIFEST || wxUSE_NO_MANIFEST == 0 ) && \
+ ( defined _MSC_FULL_VER && _MSC_FULL_VER >= 140040130 )
+
+#define WX_CC_MANIFEST(cpu) \
+ "/manifestdependency:\"type='win32' \
+ name='Microsoft.Windows.Common-Controls' \
+ version='6.0.0.0' \
+ processorArchitecture='"cpu"' \
+ publicKeyToken='6595b64144ccf1df' \
+ language='*'\""
+
+#if defined _M_IX86
+ #pragma comment(linker, WX_CC_MANIFEST("x86"))
+#elif defined _M_X64
+ #pragma comment(linker, WX_CC_MANIFEST("amd64"))
+#elif defined _M_IA64
+ #pragma comment(linker, WX_CC_MANIFEST("ia64"))
+#else
+ #pragma comment(linker, WX_CC_MANIFEST("*"))
+#endif
+
+#endif /* !wxUSE_NO_MANIFEST && _MSC_FULL_VER >= 140040130 */
+
#endif
/* _WX_DEFS_H_ */