unifying CFTypes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -22,11 +22,7 @@
|
|||||||
|
|
||||||
#include "wx/mac/corefoundation/cfstring.h"
|
#include "wx/mac/corefoundation/cfstring.h"
|
||||||
|
|
||||||
#ifdef __DARWIN__
|
#include <CoreServices/CoreServices.h>
|
||||||
#include <CoreServices/CoreServices.h>
|
|
||||||
#else
|
|
||||||
#include <TextCommon.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void wxMacConvertNewlines13To10( char * data )
|
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())
|
if (st.IsEmpty())
|
||||||
{
|
{
|
||||||
m_cfs = CFSTR("") ;
|
reset( wxCFRetain( CFSTR("") ) );
|
||||||
CFRetain( m_cfs ) ;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -619,8 +606,8 @@ void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding WXUNUSED_I
|
|||||||
wxMacConvertNewlines13To10( &str ) ;
|
wxMacConvertNewlines13To10( &str ) ;
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
#if SIZEOF_WCHAR_T == 2
|
#if SIZEOF_WCHAR_T == 2
|
||||||
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
|
reset( CFStringCreateWithCharacters( kCFAllocatorDefault,
|
||||||
(UniChar*)str.wc_str() , str.Len() );
|
(UniChar*)str.wc_str() , str.Len() ) );
|
||||||
#else
|
#else
|
||||||
wxMBConvUTF16 converter ;
|
wxMBConvUTF16 converter ;
|
||||||
size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
|
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 ;
|
delete[] unibuf ;
|
||||||
#endif
|
#endif
|
||||||
#else // not wxUSE_UNICODE
|
#else // not wxUSE_UNICODE
|
||||||
m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
|
reset( CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
|
||||||
wxMacGetSystemEncFromFontEnc( encoding ) ) ;
|
wxMacGetSystemEncFromFontEnc( encoding ) ) );
|
||||||
#endif
|
#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 ;
|
return wxEmptyString ;
|
||||||
|
|
||||||
Size cflen = CFStringGetLength( m_cfs ) ;
|
Size cflen = CFStringGetLength( get() ) ;
|
||||||
size_t noChars ;
|
size_t noChars ;
|
||||||
wxChar* buf = NULL ;
|
wxChar* buf = NULL ;
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
#if SIZEOF_WCHAR_T == 2
|
#if SIZEOF_WCHAR_T == 2
|
||||||
buf = new wxChar[ cflen + 1 ] ;
|
buf = new wxChar[ cflen + 1 ] ;
|
||||||
CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) buf ) ;
|
CFStringGetCharacters( get() , CFRangeMake( 0 , cflen ) , (UniChar*) buf ) ;
|
||||||
noChars = cflen ;
|
noChars = cflen ;
|
||||||
#else
|
#else
|
||||||
UniChar* unibuf = new UniChar[ cflen + 1 ] ;
|
UniChar* unibuf = new UniChar[ cflen + 1 ] ;
|
||||||
CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
|
CFStringGetCharacters( get() , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
|
||||||
unibuf[cflen] = 0 ;
|
unibuf[cflen] = 0 ;
|
||||||
wxMBConvUTF16 converter ;
|
wxMBConvUTF16 converter ;
|
||||||
noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
|
noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
|
||||||
@@ -666,10 +652,10 @@ wxString wxMacCFStringHolder::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encodi
|
|||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
CFIndex cStrLen ;
|
CFIndex cStrLen ;
|
||||||
CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
|
CFStringGetBytes( get() , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
|
||||||
'?' , false , NULL , 0 , &cStrLen ) ;
|
'?' , false , NULL , 0 , &cStrLen ) ;
|
||||||
buf = new wxChar[ cStrLen + 1 ] ;
|
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) ;
|
'?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ;
|
||||||
noChars = cStrLen ;
|
noChars = cStrLen ;
|
||||||
#endif
|
#endif
|
||||||
@@ -681,6 +667,9 @@ wxString wxMacCFStringHolder::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encodi
|
|||||||
return result ;
|
return result ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// wxMacUniCharBuffer
|
||||||
|
//
|
||||||
|
|
||||||
wxMacUniCharBuffer::wxMacUniCharBuffer( const wxString &str )
|
wxMacUniCharBuffer::wxMacUniCharBuffer( const wxString &str )
|
||||||
{
|
{
|
||||||
|
@@ -140,8 +140,7 @@ bool wxHIDDevice::Create (int nClass, int nType, int nDev)
|
|||||||
CFStringRef cfsProduct = (CFStringRef)
|
CFStringRef cfsProduct = (CFStringRef)
|
||||||
CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDProductKey));
|
CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDProductKey));
|
||||||
m_szProductName =
|
m_szProductName =
|
||||||
wxMacCFStringHolder( cfsProduct,
|
wxCFStringRef( wxCFRetain(cfsProduct)
|
||||||
false
|
|
||||||
).AsString();
|
).AsString();
|
||||||
|
|
||||||
//Get the Product ID Key
|
//Get the Product ID Key
|
||||||
|
@@ -85,7 +85,7 @@ static wxString BundleRelativeURLToPath(CFURLRef relativeURL)
|
|||||||
wxCHECK_MSG(absoluteURL, wxEmptyString, wxT("Failed to resolve relative URL to absolute URL"));
|
wxCHECK_MSG(absoluteURL, wxEmptyString, wxT("Failed to resolve relative URL to absolute URL"));
|
||||||
CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kDefaultPathStyle);
|
CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kDefaultPathStyle);
|
||||||
CFRelease(absoluteURL);
|
CFRelease(absoluteURL);
|
||||||
return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding());
|
return wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding());
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxStandardPathsCF::GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const
|
wxString wxStandardPathsCF::GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const
|
||||||
|
@@ -87,7 +87,7 @@ long wxMacExecute(wxChar **argv,
|
|||||||
CFURLRef cfurlApp =
|
CFURLRef cfurlApp =
|
||||||
CFURLCreateWithFileSystemPath(
|
CFURLCreateWithFileSystemPath(
|
||||||
kCFAllocatorDefault,
|
kCFAllocatorDefault,
|
||||||
wxMacCFStringHolder(path),
|
wxCFStringRef(path),
|
||||||
kDefaultPathStyle,
|
kDefaultPathStyle,
|
||||||
true); //false == not a directory
|
true); //false == not a directory
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ long wxMacExecute(wxChar **argv,
|
|||||||
// First, try creating as a directory
|
// First, try creating as a directory
|
||||||
cfurlCurrentFile = CFURLCreateWithFileSystemPath(
|
cfurlCurrentFile = CFURLCreateWithFileSystemPath(
|
||||||
kCFAllocatorDefault,
|
kCFAllocatorDefault,
|
||||||
wxMacCFStringHolder(*argv),
|
wxCFStringRef(*argv),
|
||||||
kDefaultPathStyle,
|
kDefaultPathStyle,
|
||||||
true); //true == directory
|
true); //true == directory
|
||||||
}
|
}
|
||||||
@@ -165,7 +165,7 @@ long wxMacExecute(wxChar **argv,
|
|||||||
// as a regular file
|
// as a regular file
|
||||||
cfurlCurrentFile = CFURLCreateWithFileSystemPath(
|
cfurlCurrentFile = CFURLCreateWithFileSystemPath(
|
||||||
kCFAllocatorDefault,
|
kCFAllocatorDefault,
|
||||||
wxMacCFStringHolder(*argv),
|
wxCFStringRef(*argv),
|
||||||
kDefaultPathStyle,
|
kDefaultPathStyle,
|
||||||
false); //false == regular file
|
false); //false == regular file
|
||||||
}
|
}
|
||||||
@@ -176,7 +176,7 @@ long wxMacExecute(wxChar **argv,
|
|||||||
// so try creating it through CFURLCreateWithString
|
// so try creating it through CFURLCreateWithString
|
||||||
cfurlCurrentFile = CFURLCreateWithString(
|
cfurlCurrentFile = CFURLCreateWithString(
|
||||||
kCFAllocatorDefault,
|
kCFAllocatorDefault,
|
||||||
wxMacCFStringHolder(*argv),
|
wxCFStringRef(*argv),
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user