]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
More forward-ported wxPython-bindings related cleanup from 2.9.0 branch, also documen...
[wxWidgets.git] / include / wx / defs.h
index 51c395bb7ad115896aae067435b1129868a4d0d8..8c99a2c7def0d2a5fc5c59f4b1578ded5736ddb0 100644 (file)
@@ -303,8 +303,7 @@ typedef short int WXTYPE;
     #if defined(__VISUALC__) && (__VISUALC__ >= 1100)
         /*  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, 3)
+    #elif defined(__MINGW32__) && 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
@@ -374,10 +373,11 @@ typedef short int WXTYPE;
 
 
 #ifndef HAVE_WOSTREAM
-    // Mingw <= 3.4 and any version (so far) when targetting PalmOS don't have
-    // std::wostream
+    // Mingw <= 3.4 and all versions of Cygwin as well as any gcc version (so
+    // far) targeting PalmOS don't have std::wostream
     #if defined(__PALMOS__) || \
-        (defined(__MINGW32__) && !wxCHECK_GCC_VERSION(4, 0))
+        (defined(__MINGW32__) && !wxCHECK_GCC_VERSION(4, 0)) || \
+        defined(__CYGWIN__)
         #define wxNO_WOSTREAM
     #endif
 
@@ -474,19 +474,19 @@ typedef short int WXTYPE;
 /*  ---------------------------------------------------------------------------- */
 
 /*  Printf-like attribute definitions to obtain warnings with GNU C/C++ */
-#ifndef ATTRIBUTE_PRINTF
+#ifndef WX_ATTRIBUTE_PRINTF
 #   if defined(__GNUC__) && !wxUSE_UNICODE
-#       define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
+#       define WX_ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
 #   else
-#       define ATTRIBUTE_PRINTF(m, n)
+#       define WX_ATTRIBUTE_PRINTF(m, n)
 #   endif
 
-#   define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
-#   define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
-#   define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
-#   define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
-#   define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
-#endif /* !defined(ATTRIBUTE_PRINTF) */
+#   define WX_ATTRIBUTE_PRINTF_1 WX_ATTRIBUTE_PRINTF(1, 2)
+#   define WX_ATTRIBUTE_PRINTF_2 WX_ATTRIBUTE_PRINTF(2, 3)
+#   define WX_ATTRIBUTE_PRINTF_3 WX_ATTRIBUTE_PRINTF(3, 4)
+#   define WX_ATTRIBUTE_PRINTF_4 WX_ATTRIBUTE_PRINTF(4, 5)
+#   define WX_ATTRIBUTE_PRINTF_5 WX_ATTRIBUTE_PRINTF(5, 6)
+#endif /* !defined(WX_ATTRIBUTE_PRINTF) */
 
 
 /*  Macro to issue warning when using deprecated functions with gcc3 or MSVC7: */
@@ -530,8 +530,16 @@ typedef short int WXTYPE;
 #   define wxDEPRECATED_BUT_USED_INTERNALLY(x) wxDEPRECATED(x)
 #endif
 
-/*  everybody gets the assert and other debug macros */
-#include "wx/debug.h"
+/*
+    Combination of the two variants above: should be used for deprecated
+    functions which are defined inline and are used by wxWidgets itself.
+ */
+#ifdef WXBUILDING
+#   define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) func { body }
+#else
+#   define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) \
+        wxDEPRECATED(func) { body }
+#endif
 
 /*  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 */
@@ -541,6 +549,10 @@ typedef short int WXTYPE;
 #endif
 
 #ifdef __cplusplus
+
+// everybody gets the assert and other debug macros
+#include "wx/debug.h"
+
     // delete pointer if it is not NULL and NULL it afterwards
     template <typename T>
     inline void wxDELETE(T*& ptr)
@@ -584,6 +596,10 @@ typedef short int WXTYPE;
 /*  integer on success as failure indicator */
 #define wxNOT_FOUND       (-1)
 
+/* the default value for some length parameters meaning that the string is */
+/* NUL-terminated */
+#define wxNO_LEN ((size_t)-1)
+
 /*  ---------------------------------------------------------------------------- */
 /*  macros dealing with comparison operators */
 /*  ---------------------------------------------------------------------------- */
@@ -649,13 +665,6 @@ typedef short int WXTYPE;
     #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
-
 /*  some arguments are not used in unicode mode */
 #if wxUSE_UNICODE
     #define WXUNUSED_IN_UNICODE(param)  WXUNUSED(param)
@@ -1072,6 +1081,9 @@ typedef wxUint32 wxDword;
     #else
         #error "error defining ssize_t, size_t is not 4 or 8 bytes"
     #endif
+
+    /* prevent ssize_t redefinitions in other libraries */
+    #define HAVE_SSIZE_T
 #endif
 
 // we can't rely on Windows _W64 being defined as windows.h may not be included
@@ -1757,11 +1769,6 @@ enum wxBorder
 #define wxTC_MULTILINE        0x0200    /* == wxNB_MULTILINE */
 #define wxTC_OWNERDRAW        0x0400
 
-/*
- * wxStatusBar95 flags
- */
-#define wxST_SIZEGRIP         0x0010
-
 /*
  * wxStaticBitmap flags
  */
@@ -2613,8 +2620,8 @@ typedef unsigned short  WXWORD;
 
 typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ;
 #if wxOSX_USE_CARBON
-typedef WX_OPAQUE_TYPE(ControlRef ) * WXWidget ;
-typedef WX_OPAQUE_TYPE(WindowRef) * WXWindow ;
+typedef struct OpaqueControlRef* WXWidget ;
+typedef struct OpaqueWindowPtr* WXWindow ;
 typedef struct __AGLPixelFormatRec   *WXGLPixelFormat;
 typedef struct __AGLContextRec       *WXGLContext;
 #endif
@@ -2627,16 +2634,24 @@ typedef void*       WXDisplay;
 
 typedef const void * CFTypeRef;
 
-typedef const struct __CFString * CFStringRef;
+// typedef const struct __CFString * CFStringRef;
+
+#define DECLARE_WXOSX_OPAQUE_CFREF( name ) typedef struct __##name* name##Ref;
+#define DECLARE_WXOSX_OPAQUE_CONST_CFREF( name ) typedef const struct __##name* name##Ref;
+
+DECLARE_WXOSX_OPAQUE_CONST_CFREF( CFString )
 typedef struct __CFString * CFMutableStringRef;
 
-typedef struct __CFRunLoopSource * CFRunLoopSourceRef;
+DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoopSource )
+DECLARE_WXOSX_OPAQUE_CONST_CFREF( CTFont )
+DECLARE_WXOSX_OPAQUE_CONST_CFREF( CTFontDescriptor )
 
-#define DECLARE_WXMAC_OPAQUE_CGREF( name ) typedef struct name* name##Ref;
+#define DECLARE_WXOSX_OPAQUE_CGREF( name ) typedef struct name* name##Ref;
 
-DECLARE_WXMAC_OPAQUE_CGREF( CGColor )
-DECLARE_WXMAC_OPAQUE_CGREF( CGImage )
-DECLARE_WXMAC_OPAQUE_CGREF( CGContext )
+DECLARE_WXOSX_OPAQUE_CGREF( CGColor )
+DECLARE_WXOSX_OPAQUE_CGREF( CGImage )
+DECLARE_WXOSX_OPAQUE_CGREF( CGContext )
+DECLARE_WXOSX_OPAQUE_CGREF( CGFont )
 
 typedef CGColorRef    WXCOLORREF;
 typedef CGImageRef    WXCGIMAGEREF;
@@ -2737,6 +2752,8 @@ DECLARE_WXCOCOA_OBJC_CLASS(NSColorPanel);
 DECLARE_WXCOCOA_OBJC_CLASS(NSControl);
 DECLARE_WXCOCOA_OBJC_CLASS(NSCursor);
 DECLARE_WXCOCOA_OBJC_CLASS(NSEvent);
+DECLARE_WXCOCOA_OBJC_CLASS(NSFont);
+DECLARE_WXCOCOA_OBJC_CLASS(NSFontDescriptor);
 DECLARE_WXCOCOA_OBJC_CLASS(NSFontPanel);
 DECLARE_WXCOCOA_OBJC_CLASS(NSImage);
 DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager);
@@ -3134,6 +3151,11 @@ typedef const void* WXWidget;
         classname(const classname<arg>&);                 \
         classname& operator=(const classname<arg>&)
 
+#define wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(classname, arg1, arg2) \
+    private:                                                      \
+        classname(const classname<arg1, arg2>&);                  \
+        classname& operator=(const classname<arg1, arg2>&)
+
 #define wxDECLARE_NO_ASSIGN_CLASS(classname)    \
     private:                                    \
         classname& operator=(const classname&)