From 504f8052fd01fdc49848d29a5ade7b061f419b81 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sat, 8 Dec 2007 17:41:07 +0000 Subject: [PATCH] unifying CFTypes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/corefoundation/cfstring.cpp | 49 +++++++++--------------- src/mac/corefoundation/hid.cpp | 3 +- src/mac/corefoundation/stdpaths_cf.cpp | 2 +- src/mac/corefoundation/utilsexc_base.cpp | 8 ++-- 4 files changed, 25 insertions(+), 37 deletions(-) diff --git a/src/mac/corefoundation/cfstring.cpp b/src/mac/corefoundation/cfstring.cpp index c7b9bb7b6a..9ac251a09f 100644 --- a/src/mac/corefoundation/cfstring.cpp +++ b/src/mac/corefoundation/cfstring.cpp @@ -22,11 +22,7 @@ #include "wx/mac/corefoundation/cfstring.h" -#ifdef __DARWIN__ - #include -#else - #include -#endif +#include void wxMacConvertNewlines13To10( char * data ) { @@ -593,25 +589,16 @@ wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) // -// CFStringRefs (Carbon only) +// CFStringRefs // -// converts this string into a carbon foundation string with optional pc 2 mac encoding +// converts this string into a core foundation string with optional pc 2 mac encoding -void wxMacCFStringHolder::Assign( CFStringRef ref , bool release ) +wxCFStringRef::wxCFStringRef( const wxString &st , wxFontEncoding WXUNUSED_IN_UNICODE(encoding) ) { - Release(); - m_cfs = ref; - m_release = release; -} - -void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding WXUNUSED_IN_UNICODE(encoding) ) -{ - Release() ; if (st.IsEmpty()) { - m_cfs = CFSTR("") ; - CFRetain( m_cfs ) ; + reset( wxCFRetain( CFSTR("") ) ); } else { @@ -619,8 +606,8 @@ void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding WXUNUSED_I wxMacConvertNewlines13To10( &str ) ; #if wxUSE_UNICODE #if SIZEOF_WCHAR_T == 2 - m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault, - (UniChar*)str.wc_str() , str.Len() ); + reset( CFStringCreateWithCharacters( kCFAllocatorDefault, + (UniChar*)str.wc_str() , str.Len() ) ); #else wxMBConvUTF16 converter ; size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ; @@ -631,30 +618,29 @@ void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding WXUNUSED_I delete[] unibuf ; #endif #else // not wxUSE_UNICODE - m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() , - wxMacGetSystemEncFromFontEnc( encoding ) ) ; + reset( CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() , + wxMacGetSystemEncFromFontEnc( encoding ) ) ); #endif } - m_release = true ; } -wxString wxMacCFStringHolder::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encoding)) +wxString wxCFStringRef::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encoding)) { - if ( m_cfs == NULL ) + if ( !get() ) return wxEmptyString ; - Size cflen = CFStringGetLength( m_cfs ) ; + Size cflen = CFStringGetLength( get() ) ; size_t noChars ; wxChar* buf = NULL ; #if wxUSE_UNICODE #if SIZEOF_WCHAR_T == 2 buf = new wxChar[ cflen + 1 ] ; - CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) buf ) ; + CFStringGetCharacters( get() , CFRangeMake( 0 , cflen ) , (UniChar*) buf ) ; noChars = cflen ; #else UniChar* unibuf = new UniChar[ cflen + 1 ] ; - CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ; + CFStringGetCharacters( get() , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ; unibuf[cflen] = 0 ; wxMBConvUTF16 converter ; noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ; @@ -666,10 +652,10 @@ wxString wxMacCFStringHolder::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encodi #endif #else CFIndex cStrLen ; - CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) , + CFStringGetBytes( get() , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) , '?' , false , NULL , 0 , &cStrLen ) ; buf = new wxChar[ cStrLen + 1 ] ; - CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) , + CFStringGetBytes( get() , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) , '?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ; noChars = cStrLen ; #endif @@ -681,6 +667,9 @@ wxString wxMacCFStringHolder::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encodi return result ; } +// +// wxMacUniCharBuffer +// wxMacUniCharBuffer::wxMacUniCharBuffer( const wxString &str ) { diff --git a/src/mac/corefoundation/hid.cpp b/src/mac/corefoundation/hid.cpp index c820d8d941..fb9a4d051d 100644 --- a/src/mac/corefoundation/hid.cpp +++ b/src/mac/corefoundation/hid.cpp @@ -140,8 +140,7 @@ bool wxHIDDevice::Create (int nClass, int nType, int nDev) CFStringRef cfsProduct = (CFStringRef) CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDProductKey)); m_szProductName = - wxMacCFStringHolder( cfsProduct, - false + wxCFStringRef( wxCFRetain(cfsProduct) ).AsString(); //Get the Product ID Key diff --git a/src/mac/corefoundation/stdpaths_cf.cpp b/src/mac/corefoundation/stdpaths_cf.cpp index 928b6dc1ad..5d93769869 100644 --- a/src/mac/corefoundation/stdpaths_cf.cpp +++ b/src/mac/corefoundation/stdpaths_cf.cpp @@ -85,7 +85,7 @@ static wxString BundleRelativeURLToPath(CFURLRef relativeURL) wxCHECK_MSG(absoluteURL, wxEmptyString, wxT("Failed to resolve relative URL to absolute URL")); CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kDefaultPathStyle); CFRelease(absoluteURL); - return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); + return wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding()); } wxString wxStandardPathsCF::GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const diff --git a/src/mac/corefoundation/utilsexc_base.cpp b/src/mac/corefoundation/utilsexc_base.cpp index b1ed128295..878d2ed814 100644 --- a/src/mac/corefoundation/utilsexc_base.cpp +++ b/src/mac/corefoundation/utilsexc_base.cpp @@ -87,7 +87,7 @@ long wxMacExecute(wxChar **argv, CFURLRef cfurlApp = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, - wxMacCFStringHolder(path), + wxCFStringRef(path), kDefaultPathStyle, true); //false == not a directory @@ -155,7 +155,7 @@ long wxMacExecute(wxChar **argv, // First, try creating as a directory cfurlCurrentFile = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, - wxMacCFStringHolder(*argv), + wxCFStringRef(*argv), kDefaultPathStyle, true); //true == directory } @@ -165,7 +165,7 @@ long wxMacExecute(wxChar **argv, // as a regular file cfurlCurrentFile = CFURLCreateWithFileSystemPath( kCFAllocatorDefault, - wxMacCFStringHolder(*argv), + wxCFStringRef(*argv), kDefaultPathStyle, false); //false == regular file } @@ -176,7 +176,7 @@ long wxMacExecute(wxChar **argv, // so try creating it through CFURLCreateWithString cfurlCurrentFile = CFURLCreateWithString( kCFAllocatorDefault, - wxMacCFStringHolder(*argv), + wxCFStringRef(*argv), NULL); } -- 2.45.2