unifying CFTypes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2007-12-08 17:35:54 +00:00
parent c47e732c7a
commit f35e4634f3

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: wx/mac/corefoundation/cfstring.h // Name: wx/mac/corefoundation/cfstring.h
// Purpose: wxMacCFStringHolder and other string functions // Purpose: wxCFStringRef and other string functions
// Author: Stefan Csomor // Author: Stefan Csomor
// Modified by: // Modified by:
// Created: 2004-10-29 (from code in wx/mac/carbon/private.h) // Created: 2004-10-29 (from code in wx/mac/carbon/private.h)
@@ -13,14 +13,11 @@
#ifndef __WX_CFSTRINGHOLDER_H__ #ifndef __WX_CFSTRINGHOLDER_H__
#define __WX_CFSTRINGHOLDER_H__ #define __WX_CFSTRINGHOLDER_H__
#ifdef __DARWIN__ #include <CoreFoundation/CFString.h>
#include <CoreFoundation/CFString.h>
#else
#include <CFString.h>
#endif
#include "wx/dlimpexp.h" #include "wx/dlimpexp.h"
#include "wx/fontenc.h" #include "wx/fontenc.h"
#include "wx/mac/corefoundation/cfref.h"
class WXDLLIMPEXP_FWD_BASE wxString; class WXDLLIMPEXP_FWD_BASE wxString;
@@ -34,60 +31,33 @@ WXDLLIMPEXP_BASE wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding)
WXDLLIMPEXP_BASE wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ; WXDLLIMPEXP_BASE wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
WXDLLIMPEXP_BASE void wxMacWakeUp() ; WXDLLIMPEXP_BASE void wxMacWakeUp() ;
class WXDLLIMPEXP_BASE wxMacCFStringHolder class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
{ {
public: public:
wxMacCFStringHolder() wxCFStringRef()
: m_cfs(NULL) , m_release(false)
{ {
} }
wxMacCFStringHolder(const wxString &str, wxCFStringRef(const wxString &str,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT) wxFontEncoding encoding = wxFONTENCODING_DEFAULT) ;
: m_cfs(NULL) , m_release(false)
{
Assign( str , encoding ) ;
}
wxMacCFStringHolder(CFStringRef ref , bool release = true ) wxCFStringRef(CFStringRef ref)
: m_cfs(ref) , m_release(release) : wxCFRef< CFStringRef >(ref)
{ {
} }
~wxMacCFStringHolder() wxCFStringRef(const wxCFStringRef& otherRef )
: wxCFRef< CFStringRef >(otherRef)
{ {
Release() ;
} }
CFStringRef Detach() ~wxCFStringRef()
{ {
CFStringRef retval = m_cfs ;
m_release = false ;
m_cfs = NULL ;
return retval ;
} }
void Release()
{
if ( m_release && m_cfs)
CFRelease( m_cfs ) ;
m_cfs = NULL ;
}
void Assign(CFStringRef ref , bool release = true);
void Assign(const wxString &str,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
operator CFStringRef () const { return m_cfs; }
wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
private: private:
CFStringRef m_cfs;
bool m_release ;
DECLARE_NO_COPY_CLASS( wxMacCFStringHolder )
} ; } ;
// corresponding class for holding UniChars (native unicode characters) // corresponding class for holding UniChars (native unicode characters)