#endif /* VC++ 8 */
#endif /* __VISUALC__ */
-/* suppress some Salford C++ warnings */
-#ifdef __SALFORDC__
-# pragma suppress 353 /* Possible nested comments */
-# pragma suppress 593 /* Define not used */
-# pragma suppress 61 /* enum has no name (doesn't suppress!) */
-# pragma suppress 106 /* unnamed, unused parameter */
-# pragma suppress 571 /* Virtual function hiding */
-#endif /* __SALFORDC__ */
-
/* suppress some Borland C++ warnings */
#ifdef __BORLANDC__
# pragma warn -inl /* Functions containing reserved words and certain constructs are not expanded inline */
#define false ((bool)0)
#endif
#define HAVE_BOOL
+ #elif defined(__WXPALMOS__)
+ /* Palm OS supports bool */
+ #define HAVE_BOOL
#endif /* compilers */
#endif /* HAVE_BOOL */
typedef short int WXTYPE;
-/* special care should be taken with this type under Windows where the real */
-/* window id is unsigned, so we must always do the cast before comparing them */
-/* (or else they would be always different!). Using wxGetWindowId() which does */
-/* the cast itself is recommended. Note that this type can't be unsigned */
-/* because wxID_ANY == -1 is a valid (and largely used) value for window id. */
-typedef int wxWindowID;
/* ---------------------------------------------------------------------------- */
/* other feature tests */
#endif
#endif /* HAVE_WOSTREAM */
+// ----------------------------------------------------------------------------
+// other C++ features
+// ----------------------------------------------------------------------------
+
+#ifndef HAVE_PARTIAL_SPECIALIZATION
+ // be optimistic by default
+ #define HAVE_PARTIAL_SPECIALIZATION
+#endif
+
+#ifdef __VISUALC__
+ #if __VISUALC__ < 1310
+ #undef HAVE_PARTIAL_SPECIALIZATION
+ #endif
+#endif // __VISUALC__
+
/* ---------------------------------------------------------------------------- */
/* portable calling conventions macros */
/* ---------------------------------------------------------------------------- */
/* NULL declaration: it must be defined as 0 for C++ programs (in particular, */
/* it must not be defined as "(void *)0" which is standard for C but completely */
/* breaks C++ code) */
-#ifndef __HANDHELDPC__
+#if !defined(__HANDHELDPC__) && !defined(__PALMOS__)
#include <stddef.h>
#endif
/* ---------------------------------------------------------------------------- */
#if defined(__WXPALMOS__) || defined(__MINGW32__)
+ #if !defined(__MWERKS__)
#include <sys/types.h>
+ #endif
#endif
/* chars are always one byte (by definition), shorts are always two (in */
#define SIZEOF_LONG 4
#define SIZEOF_WCHAR_T 2
#define SIZEOF_SIZE_T 4
- #define wxSIZE_T_IS_UINT
+ #ifdef __WXPALMOS6__
+ #define wxSIZE_T_IS_UINT
+ #endif
#define SIZEOF_VOID_P 4
#define SIZEOF_SIZE_T 4
#elif defined(__WINDOWS__)
#define wxINT64_MIN LLONG_MIN
#else
#define wxINT64_MAX wxLL(9223372036854775807)
- #define wxINT64_MIN wxLL(-9223372036854775807-1)
+ #define wxINT64_MIN (wxLL(-9223372036854775807)-1)
#endif
/*
#error "See the documentation on the 'longlong' pragma."
#endif
#elif defined(__WXPALMOS__)
- #define wxLongLong_t int64_t
+ #if defined(__WXPALMOS6__)
+ #define wxLongLong_t int64_t
+ #else
+ #define wxLongLong_t long long
+ #endif /* __WXPALMOS6__ */
#define wxLongLongSuffix ll
#define wxLongLongFmtSpec _T("ll")
#elif defined(__VISAGECPP__) && __IBMCPP__ >= 400
#ifdef wxLongLong_t
#ifdef __WXPALMOS__
+ #if defined(__WXPALMOS6__)
#define wxULongLong_t uint64_t
+ #else
+ #define wxULongLong_t unsigned long long
+ #endif /* __WXPALMOS6__ */
#else
#define wxULongLong_t unsigned wxLongLong_t
#endif
/* Standard menu IDs */
enum
{
+ /*
+ These ids delimit the range used by automatically-generated ids
+ (i.e. those used when wxID_ANY is specified during construction).
+ */
+#if defined(__WXMSW__) || wxUSE_AUTOID_MANAGEMENT
+ /*
+ On MSW the range is always restricted no matter if id management
+ is used or not because the native window ids are limited to short
+ range. On other platforms the range is only restricted if id
+ management is used so the reference count buffer won't be so big.
+ */
+ wxID_AUTO_LOWEST = -32000,
+ wxID_AUTO_HIGHEST = -2000,
+#else
+ wxID_AUTO_LOWEST = -1000000,
+ wxID_AUTO_HIGHEST = -2000,
+#endif
+
/* no id matches this one when compared to it */
wxID_NONE = -3,
wxID_HIGHEST = 5999
};
+/* ---------------------------------------------------------------------------- */
+/* wxWindowID type (after wxID_XYZ enum, platform detection, and dlimpexp.h) */
+/* ---------------------------------------------------------------------------- */
+
+/* special care should be taken with this type under Windows where the real */
+/* window id is unsigned, so we must always do the cast before comparing them */
+/* (or else they would be always different!). Using wxGetWindowId() which does */
+/* the cast itself is recommended. Note that this type can't be unsigned */
+/* because wxID_ANY == -1 is a valid (and largely used) value for window id. */
+#ifdef __cplusplus
+ #include "wx/windowid.h"
+#endif
+
/* ---------------------------------------------------------------------------- */
/* other constants */
/* ---------------------------------------------------------------------------- */
#define WX_OPAQUE_TYPE( name ) struct wxOpaque##name
-typedef unsigned char WXCOLORREF[6];
-typedef void* WXCGIMAGEREF;
typedef void* WXHBITMAP;
typedef void* WXHCURSOR;
-typedef void* WXHRGN;
typedef void* WXRECTPTR;
typedef void* WXPOINTPTR;
typedef void* WXHWND;
typedef void* WXEVENTHANDLERREF;
typedef void* WXEVENTHANDLERCALLREF;
typedef void* WXAPPLEEVENTREF;
-typedef void* WXHDC;
typedef void* WXHMENU;
+
typedef unsigned int WXUINT;
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_OPAQUE_TYPE(ControlRef ) * WXWidget ;
typedef WX_OPAQUE_TYPE(WindowRef) * WXWindow ;
+
typedef void* WXDisplay;
-/* typedef WindowPtr WXHWND; */
-/* typedef Handle WXHANDLE; */
-/* typedef CIconHandle WXHICON; */
-/* typedef unsigned long WXHFONT; */
-/* typedef MenuHandle WXHMENU; */
-/* typedef unsigned long WXHPEN; */
-/* typedef unsigned long WXHBRUSH; */
-/* typedef unsigned long WXHPALETTE; */
-/* typedef CursHandle WXHCURSOR; */
-/* typedef RgnHandle WXHRGN; */
-/* typedef unsigned long WXHACCEL; */
-/* typedef unsigned long WXHINSTANCE; */
-/* typedef unsigned long WXHIMAGELIST; */
-/* typedef unsigned long WXHGLOBAL; */
-/* typedef GrafPtr WXHDC; */
-/* typedef unsigned int WXWPARAM; */
-/* typedef long WXLPARAM; */
-/* typedef void * WXRGNDATA; */
-/* typedef void * WXMSG; */
-/* typedef unsigned long WXHCONV; */
-/* typedef unsigned long WXHKEY; */
-/* typedef void * WXDRAWITEMSTRUCT; */
-/* typedef void * WXMEASUREITEMSTRUCT; */
-/* typedef void * WXLPCREATESTRUCT; */
-/* typedef int (*WXFARPROC)(); */
-
-/* typedef WindowPtr WXWindow; */
-/* typedef ControlHandle WXWidget; */
-
-#endif
-
-#if defined( __WXCOCOA__ ) || ( defined(__WXMAC__) && defined(__DARWIN__) )
+/*
+ * core frameworks
+ */
+
+typedef const void * CFTypeRef;
+
+typedef const struct __CFString * CFStringRef;
+typedef struct __CFString * CFMutableStringRef;
+
+typedef struct __CFRunLoopSource * CFRunLoopSourceRef;
+
+#define DECLARE_WXMAC_OPAQUE_CGREF( name ) typedef struct name* name##Ref;
+
+DECLARE_WXMAC_OPAQUE_CGREF( CGColor )
+DECLARE_WXMAC_OPAQUE_CGREF( CGImage )
+DECLARE_WXMAC_OPAQUE_CGREF( CGContext )
+
+typedef CGColorRef WXCOLORREF;
+typedef CGImageRef WXCGIMAGEREF;
+typedef CGContextRef WXHDC;
+
+/*
+ * carbon
+ */
+
+typedef const struct __HIShape * HIShapeRef;
+typedef struct __HIShape * HIMutableShapeRef;
+
+#define DECLARE_WXMAC_OPAQUE_REF( name ) typedef struct Opaque##name* name;
+
+DECLARE_WXMAC_OPAQUE_REF( PasteboardRef )
+DECLARE_WXMAC_OPAQUE_REF( IconRef )
+
+typedef IconRef WXHICON ;
+typedef HIShapeRef WXHRGN;
+
+#endif
+
+#if defined( __WXCOCOA__ ) || defined(__WXMAC__)
/* Definitions of 32-bit/64-bit types
* These are typedef'd exactly the same way in newer OS X headers so