/* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */
#define HAVE_STD_WSTRING
#elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \
- && wxCHECK_GCC_VERSION(3, 1)
+ && wxCHECK_GCC_VERSION(3, 3)
/* GCC 3.1 has std::wstring; 3.0 never was in MinGW, 2.95 hasn't it */
#define HAVE_STD_WSTRING
#endif
enum { wxDefaultCoord = -1 };
+/* round-to-nearest (used in scaling) */
+#ifdef __cplusplus
+inline wxCoord wxCoordRound(const float& f)
+{
+ return (f > 0) ? (wxCoord)(f + 0.5) : (f < 0) ? (wxCoord)(f - 0.5) : 0;
+}
+inline wxCoord wxCoordRound(const double& f)
+{
+ return (f > 0) ? (wxCoord)(f + 0.5) : (f < 0) ? (wxCoord)(f - 0.5) : 0;
+}
+#endif
+
/* ---------------------------------------------------------------------------- */
/* define fixed length types */
/* ---------------------------------------------------------------------------- */
#define wxULongLong_t unsigned wxLongLong_t
#endif
- /* these macros allow to definea 64 bit constants in a portable way */
+ /* these macros allow to define 64 bit constants in a portable way */
#define wxLL(x) wxCONCAT(x, wxLongLongSuffix)
#define wxULL(x) wxCONCAT(x, wxCONCAT(u, wxLongLongSuffix))
#define wxHAS_INT64 1
#elif wxUSE_LONGLONG
- /* these macros allow to definea 64 bit constants in a portable way */
+ /* these macros allow to define 64 bit constants in a portable way */
#define wxLL(x) wxLongLong(x)
#define wxULL(x) wxULongLong(x)
#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
- */
-#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
- */
-#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
- */
-#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
*/
/* 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 */
-/* WARNING: The OS/2 headers typedef BYTE simply as 'char'; if the default is signed, all */
-/* hell will break loose! */
-/* #define OS2RGB(r,g,b) ((DWORD ((BYTE) (b) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(r)) << 16))) */
#define OS2RGB(r,g,b) ((DWORD)((unsigned char)(b) | ((unsigned char)(g) << 8)) | ((unsigned char)(r) << 16))
typedef unsigned long COLORREF;
-#define GetBValue(rgb) ((BYTE)((rgb) >> 16))
-#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
-#define GetRValue(rgb) ((BYTE)(rgb))
+#define GetRValue(rgb) ((unsigned char)((rgb) >> 16))
+#define GetGValue(rgb) ((unsigned char)(((unsigned short)(rgb)) >> 8))
+#define GetBValue(rgb) ((unsigned char)(rgb))
#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
#define PALETTERGB(r,g,b) (0x02000000 | OS2RGB(r,g,b))
/* OS2's RGB/RGB2 is backwards from this */