]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/corefoundation/cfstring.h
don't redeclare vsscanf() for Windows compilers, the case of missing declaration...
[wxWidgets.git] / include / wx / mac / corefoundation / cfstring.h
index 428e5c8c14164a758391ecfd85765ae55b3da7fd..4a8ea3b503f6a5b00c4a6f168e59fd94b7267bd4 100644 (file)
@@ -1,83 +1,80 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/mac/corefoundation/cfstring.h
-// Purpose:     wxMacCFStringHolder and other string functions
+// Purpose:     wxCFStringRef and other string functions
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     2004-10-29 (from code in wx/mac/carbon/private.h)
 // RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
+// Usage:       Darwin (base library)
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __DARWIN__
-    #include <CoreFoundation/CFString.h>
-#else
-    #include <CFString.h>
-#endif
+#ifndef __WX_CFSTRINGHOLDER_H__
+#define __WX_CFSTRINGHOLDER_H__
 
-void wxMacConvertNewlines13To10( char * data ) ;
-void wxMacConvertNewlines10To13( char * data ) ;
-void wxMacConvertNewlines13To10( wxString *data ) ;
-void wxMacConvertNewlines10To13( wxString *data ) ;
+#include <CoreFoundation/CFString.h>
 
-#if wxUSE_UNICODE
-void wxMacConvertNewlines13To10( wxChar * data ) ;
-void wxMacConvertNewlines10To13( wxChar * data ) ;
-#endif
+#include "wx/dlimpexp.h"
+#include "wx/fontenc.h"
+#include "wx/mac/corefoundation/cfref.h"
 
-wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
-wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
-void wxMacWakeUp() ;
+class WXDLLIMPEXP_FWD_BASE wxString;
 
-class wxMacCFStringHolder
+WXDLLIMPEXP_BASE void wxMacConvertNewlines13To10( wxString *data ) ;
+WXDLLIMPEXP_BASE void wxMacConvertNewlines10To13( wxString *data ) ;
+
+WXDLLIMPEXP_BASE void wxMacConvertNewlines13To10( char * data ) ;
+WXDLLIMPEXP_BASE void wxMacConvertNewlines10To13( char * data ) ;
+
+WXDLLIMPEXP_BASE wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
+WXDLLIMPEXP_BASE wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
+WXDLLIMPEXP_BASE void wxMacWakeUp() ;
+
+class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
 {
 public:
-    wxMacCFStringHolder() 
-        : m_cfs(NULL) , m_release(false) 
-    {
-    }
-
-    wxMacCFStringHolder(const wxString &str , wxFontEncoding encoding )
-        : m_cfs(NULL) , m_release(false) 
+    wxCFStringRef()
     {
-        Assign( str , encoding ) ;
     }
 
-    wxMacCFStringHolder(CFStringRef ref , bool release = true )
-        : m_cfs(ref) , m_release(release) 
-    {
-    }
+    wxCFStringRef(const wxString &str,
+                        wxFontEncoding encoding = wxFONTENCODING_DEFAULT) ;
 
-    ~wxMacCFStringHolder()
+    wxCFStringRef(CFStringRef ref)
+        : wxCFRef< CFStringRef >(ref) 
     {
-        Release() ;
     }
 
-    CFStringRef Detach()
+    wxCFStringRef(const wxCFStringRef& otherRef )
+        : wxCFRef< CFStringRef >(otherRef) 
     {
-        CFStringRef retval = m_cfs ;
-        m_release = false ;
-        m_cfs = NULL ;
-        return retval ;
     }
 
-    void Release()
+    ~wxCFStringRef()
     {
-        if ( m_release && m_cfs)
-            CFRelease( m_cfs ) ;
-        m_cfs = NULL ;
     }
 
-    void Assign( const wxString &str , wxFontEncoding encoding ) ;
-
-    operator CFStringRef () { return m_cfs; }
     wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
 
 private:
-
-    CFStringRef m_cfs;
-    bool m_release ;
-    
-    DECLARE_NO_COPY_CLASS( wxMacCFStringHolder )
 } ;
 
+// corresponding class for holding UniChars (native unicode characters)
+
+class WXDLLIMPEXP_BASE wxMacUniCharBuffer
+{
+public :
+    wxMacUniCharBuffer( const wxString &str ) ;
+
+    ~wxMacUniCharBuffer() ;
+
+    UniChar* GetBuffer() ;
+
+    UniCharCount GetChars() ;
+
+private :
+    UniChar* m_ubuf ;
+    UniCharCount m_chars ;
+};
+#endif //__WXCFSTRINGHOLDER_H__