4
4
// Author: Stefan Csomor
6
6
// Created: 2004-10-29 (from code in src/mac/carbon/utils.cpp)
7
// RCS-ID: $Id: cfstring.cpp 40283 2006-07-24 18:01:39Z VZ $
7
// RCS-ID: $Id: cfstring.cpp 51658 2008-02-11 15:19:53Z SC $
8
8
// Copyright: (c) Stefan Csomor
9
9
// Licence: wxWindows licence
10
10
/////////////////////////////////////////////////////////////////////////////
651
651
(UniChar*)str.wc_str() , str.Len() );
653
653
wxMBConvUTF16 converter ;
654
size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
655
UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
656
converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
657
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
658
unibuf , unicharlen / sizeof(UniChar) ) ;
654
size_t unicharbytes = converter.FromWChar( NULL , 0 , str.wc_str() , str.Length() ) ;
655
wxASSERT( unicharbytes != wxCONV_FAILED );
656
if ( unicharbytes == wxCONV_FAILED )
658
// create an empty string
664
// unicharbytes: number of bytes needed for UTF-16 encoded string (without terminating null)
665
// unichars: number of UTF-16 characters (without terminating null)
666
size_t unichars = unicharbytes / sizeof(UniChar) ;
667
UniChar *unibuf = new UniChar[ unichars ] ;
668
converter.FromWChar( (char*)unibuf , unicharbytes , str.wc_str() , str.Length() ) ;
669
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault , unibuf , unichars ) ;
661
673
#else // not wxUSE_UNICODE
662
674
m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,