Moved wxCFStringHolder and some other string functions to their own files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
9004ba6af3
commit
5185263fc5
@ -38,6 +38,10 @@
|
||||
#define MAC_OS_X_VERSION_10_3 1030
|
||||
#endif
|
||||
|
||||
#ifdef __WXMAC_CARBON__
|
||||
#include "wx/mac/corefoundation/cfstring.h"
|
||||
#endif
|
||||
|
||||
#if wxUSE_GUI
|
||||
|
||||
#include "wx/window.h"
|
||||
@ -479,79 +483,6 @@ void wxMacCleanupConverters() ;
|
||||
void wxMacStringToPascal( const wxString&from , StringPtr to ) ;
|
||||
wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ;
|
||||
|
||||
void wxMacConvertNewlines13To10( char * data ) ;
|
||||
void wxMacConvertNewlines10To13( char * data ) ;
|
||||
void wxMacConvertNewlines13To10( wxString *data ) ;
|
||||
void wxMacConvertNewlines10To13( wxString *data ) ;
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
void wxMacConvertNewlines13To10( wxChar * data ) ;
|
||||
void wxMacConvertNewlines10To13( wxChar * data ) ;
|
||||
#endif
|
||||
|
||||
#if TARGET_CARBON
|
||||
|
||||
class wxMacCFStringHolder
|
||||
{
|
||||
public:
|
||||
wxMacCFStringHolder()
|
||||
{
|
||||
m_cfs = NULL ;
|
||||
m_release = false ;
|
||||
}
|
||||
|
||||
wxMacCFStringHolder(const wxString &str , wxFontEncoding encoding )
|
||||
{
|
||||
m_cfs = NULL ;
|
||||
m_release = false ;
|
||||
Assign( str , encoding ) ;
|
||||
}
|
||||
|
||||
wxMacCFStringHolder(CFStringRef ref , bool release = true )
|
||||
{
|
||||
m_cfs = ref ;
|
||||
m_release = release ;
|
||||
}
|
||||
|
||||
~wxMacCFStringHolder()
|
||||
{
|
||||
Release() ;
|
||||
}
|
||||
|
||||
CFStringRef Detach()
|
||||
{
|
||||
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( const wxString &str , wxFontEncoding encoding ) ;
|
||||
|
||||
operator CFStringRef () { return m_cfs; }
|
||||
wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
|
||||
|
||||
private:
|
||||
|
||||
CFStringRef m_cfs;
|
||||
bool m_release ;
|
||||
} ;
|
||||
|
||||
#endif
|
||||
|
||||
// utils.cpp
|
||||
|
||||
wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
|
||||
wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
|
||||
void wxMacWakeUp() ;
|
||||
|
||||
// toplevel.cpp
|
||||
|
||||
ControlRef wxMacFindControlUnderMouse( Point location , WindowRef window , ControlPartCode *outPart ) ;
|
||||
|
84
include/wx/mac/corefoundation/cfstring.h
Normal file
84
include/wx/mac/corefoundation/cfstring.h
Normal file
@ -0,0 +1,84 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/mac/corefoundation/cfstring.h
|
||||
// Purpose: wxMacCFStringHolder 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
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef __DARWIN__
|
||||
#include <CoreFoundation/CFString.h>
|
||||
#else
|
||||
#include <CFString.h>
|
||||
#endif
|
||||
|
||||
void wxMacConvertNewlines13To10( char * data ) ;
|
||||
void wxMacConvertNewlines10To13( char * data ) ;
|
||||
void wxMacConvertNewlines13To10( wxString *data ) ;
|
||||
void wxMacConvertNewlines10To13( wxString *data ) ;
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
void wxMacConvertNewlines13To10( wxChar * data ) ;
|
||||
void wxMacConvertNewlines10To13( wxChar * data ) ;
|
||||
#endif
|
||||
|
||||
wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
|
||||
wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
|
||||
void wxMacWakeUp() ;
|
||||
|
||||
class wxMacCFStringHolder
|
||||
{
|
||||
public:
|
||||
wxMacCFStringHolder()
|
||||
{
|
||||
m_cfs = NULL ;
|
||||
m_release = false ;
|
||||
}
|
||||
|
||||
wxMacCFStringHolder(const wxString &str , wxFontEncoding encoding )
|
||||
{
|
||||
m_cfs = NULL ;
|
||||
m_release = false ;
|
||||
Assign( str , encoding ) ;
|
||||
}
|
||||
|
||||
wxMacCFStringHolder(CFStringRef ref , bool release = true )
|
||||
{
|
||||
m_cfs = ref ;
|
||||
m_release = release ;
|
||||
}
|
||||
|
||||
~wxMacCFStringHolder()
|
||||
{
|
||||
Release() ;
|
||||
}
|
||||
|
||||
CFStringRef Detach()
|
||||
{
|
||||
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( const wxString &str , wxFontEncoding encoding ) ;
|
||||
|
||||
operator CFStringRef () { return m_cfs; }
|
||||
wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
|
||||
|
||||
private:
|
||||
|
||||
CFStringRef m_cfs;
|
||||
bool m_release ;
|
||||
} ;
|
||||
|
@ -705,676 +705,6 @@ wxString wxMacMakeStringFromPascal( ConstStringPtr from )
|
||||
}
|
||||
|
||||
|
||||
wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding)
|
||||
{
|
||||
TextEncodingBase enc = 0 ;
|
||||
if ( encoding == wxFONTENCODING_DEFAULT )
|
||||
{
|
||||
#if wxUSE_GUI
|
||||
encoding = wxFont::GetDefaultEncoding() ;
|
||||
#else
|
||||
encoding = wxLocale::GetSystemEncoding() ;
|
||||
#endif
|
||||
}
|
||||
|
||||
switch( encoding)
|
||||
{
|
||||
case wxFONTENCODING_ISO8859_1 :
|
||||
enc = kTextEncodingISOLatin1 ;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_2 :
|
||||
enc = kTextEncodingISOLatin2;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_3 :
|
||||
enc = kTextEncodingISOLatin3 ;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_4 :
|
||||
enc = kTextEncodingISOLatin4;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_5 :
|
||||
enc = kTextEncodingISOLatinCyrillic;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_6 :
|
||||
enc = kTextEncodingISOLatinArabic;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_7 :
|
||||
enc = kTextEncodingISOLatinGreek;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_8 :
|
||||
enc = kTextEncodingISOLatinHebrew;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_9 :
|
||||
enc = kTextEncodingISOLatin5;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_10 :
|
||||
enc = kTextEncodingISOLatin6;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_13 :
|
||||
enc = kTextEncodingISOLatin7;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_14 :
|
||||
enc = kTextEncodingISOLatin8;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_15 :
|
||||
enc = kTextEncodingISOLatin9;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_KOI8 :
|
||||
enc = kTextEncodingKOI8_R;
|
||||
break ;
|
||||
case wxFONTENCODING_ALTERNATIVE : // MS-DOS CP866
|
||||
enc = kTextEncodingDOSRussian;
|
||||
break ;
|
||||
/*
|
||||
case wxFONTENCODING_BULGARIAN :
|
||||
enc = ;
|
||||
break ;
|
||||
*/
|
||||
case wxFONTENCODING_CP437 :
|
||||
enc =kTextEncodingDOSLatinUS ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP850 :
|
||||
enc = kTextEncodingDOSLatin1;
|
||||
break ;
|
||||
case wxFONTENCODING_CP852 :
|
||||
enc = kTextEncodingDOSLatin2;
|
||||
break ;
|
||||
case wxFONTENCODING_CP855 :
|
||||
enc = kTextEncodingDOSCyrillic;
|
||||
break ;
|
||||
case wxFONTENCODING_CP866 :
|
||||
enc =kTextEncodingDOSRussian ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP874 :
|
||||
enc = kTextEncodingDOSThai;
|
||||
break ;
|
||||
case wxFONTENCODING_CP932 :
|
||||
enc = kTextEncodingDOSJapanese;
|
||||
break ;
|
||||
case wxFONTENCODING_CP936 :
|
||||
enc =kTextEncodingDOSChineseSimplif ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP949 :
|
||||
enc = kTextEncodingDOSKorean;
|
||||
break ;
|
||||
case wxFONTENCODING_CP950 :
|
||||
enc = kTextEncodingDOSChineseTrad;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_CP1250 :
|
||||
enc = kTextEncodingWindowsLatin2;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1251 :
|
||||
enc =kTextEncodingWindowsCyrillic ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1252 :
|
||||
enc =kTextEncodingWindowsLatin1 ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1253 :
|
||||
enc = kTextEncodingWindowsGreek;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1254 :
|
||||
enc = kTextEncodingWindowsLatin5;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1255 :
|
||||
enc =kTextEncodingWindowsHebrew ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1256 :
|
||||
enc =kTextEncodingWindowsArabic ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1257 :
|
||||
enc = kTextEncodingWindowsBalticRim;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_UTF7 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF8 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_EUC_JP :
|
||||
enc = kTextEncodingEUC_JP;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_MACROMAN :
|
||||
enc = kTextEncodingMacRoman ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACJAPANESE :
|
||||
enc = kTextEncodingMacJapanese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCHINESETRAD :
|
||||
enc = kTextEncodingMacChineseTrad ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKOREAN :
|
||||
enc = kTextEncodingMacKorean ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACARABIC :
|
||||
enc = kTextEncodingMacArabic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACHEBREW :
|
||||
enc = kTextEncodingMacHebrew ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGREEK :
|
||||
enc = kTextEncodingMacGreek ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCYRILLIC :
|
||||
enc = kTextEncodingMacCyrillic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACDEVANAGARI :
|
||||
enc = kTextEncodingMacDevanagari ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGURMUKHI :
|
||||
enc = kTextEncodingMacGurmukhi ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGUJARATI :
|
||||
enc = kTextEncodingMacGujarati ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACORIYA :
|
||||
enc = kTextEncodingMacOriya ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACBENGALI :
|
||||
enc = kTextEncodingMacBengali ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTAMIL :
|
||||
enc = kTextEncodingMacTamil ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTELUGU :
|
||||
enc = kTextEncodingMacTelugu ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKANNADA :
|
||||
enc = kTextEncodingMacKannada ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACMALAJALAM :
|
||||
enc = kTextEncodingMacMalayalam ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACSINHALESE :
|
||||
enc = kTextEncodingMacSinhalese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACBURMESE :
|
||||
enc = kTextEncodingMacBurmese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKHMER :
|
||||
enc = kTextEncodingMacKhmer ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTHAI :
|
||||
enc = kTextEncodingMacThai ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACLAOTIAN :
|
||||
enc = kTextEncodingMacLaotian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGEORGIAN :
|
||||
enc = kTextEncodingMacGeorgian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACARMENIAN :
|
||||
enc = kTextEncodingMacArmenian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCHINESESIMP :
|
||||
enc = kTextEncodingMacChineseSimp ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTIBETAN :
|
||||
enc = kTextEncodingMacTibetan ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACMONGOLIAN :
|
||||
enc = kTextEncodingMacMongolian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACETHIOPIC :
|
||||
enc = kTextEncodingMacEthiopic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCENTRALEUR :
|
||||
enc = kTextEncodingMacCentralEurRoman ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACVIATNAMESE :
|
||||
enc = kTextEncodingMacVietnamese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACARABICEXT :
|
||||
enc = kTextEncodingMacExtArabic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACSYMBOL :
|
||||
enc = kTextEncodingMacSymbol ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACDINGBATS :
|
||||
enc = kTextEncodingMacDingbats ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTURKISH :
|
||||
enc = kTextEncodingMacTurkish ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCROATIAN :
|
||||
enc = kTextEncodingMacCroatian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACICELANDIC :
|
||||
enc = kTextEncodingMacIcelandic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACROMANIAN :
|
||||
enc = kTextEncodingMacRomanian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCELTIC :
|
||||
enc = kTextEncodingMacCeltic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGAELIC :
|
||||
enc = kTextEncodingMacGaelic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKEYBOARD :
|
||||
enc = kTextEncodingMacKeyboardGlyphs ;
|
||||
break ;
|
||||
default :
|
||||
// to make gcc happy
|
||||
break ;
|
||||
} ;
|
||||
return enc ;
|
||||
}
|
||||
|
||||
wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding)
|
||||
{
|
||||
wxFontEncoding enc = wxFONTENCODING_DEFAULT ;
|
||||
|
||||
switch( encoding)
|
||||
{
|
||||
case kTextEncodingISOLatin1 :
|
||||
enc = wxFONTENCODING_ISO8859_1 ;
|
||||
break ;
|
||||
case kTextEncodingISOLatin2 :
|
||||
enc = wxFONTENCODING_ISO8859_2;
|
||||
break ;
|
||||
case kTextEncodingISOLatin3 :
|
||||
enc = wxFONTENCODING_ISO8859_3 ;
|
||||
break ;
|
||||
case kTextEncodingISOLatin4 :
|
||||
enc = wxFONTENCODING_ISO8859_4;
|
||||
break ;
|
||||
case kTextEncodingISOLatinCyrillic :
|
||||
enc = wxFONTENCODING_ISO8859_5;
|
||||
break ;
|
||||
case kTextEncodingISOLatinArabic :
|
||||
enc = wxFONTENCODING_ISO8859_6;
|
||||
break ;
|
||||
case kTextEncodingISOLatinGreek :
|
||||
enc = wxFONTENCODING_ISO8859_7;
|
||||
break ;
|
||||
case kTextEncodingISOLatinHebrew :
|
||||
enc = wxFONTENCODING_ISO8859_8;
|
||||
break ;
|
||||
case kTextEncodingISOLatin5 :
|
||||
enc = wxFONTENCODING_ISO8859_9;
|
||||
break ;
|
||||
case kTextEncodingISOLatin6 :
|
||||
enc = wxFONTENCODING_ISO8859_10;
|
||||
break ;
|
||||
case kTextEncodingISOLatin7 :
|
||||
enc = wxFONTENCODING_ISO8859_13;
|
||||
break ;
|
||||
case kTextEncodingISOLatin8 :
|
||||
enc = wxFONTENCODING_ISO8859_14;
|
||||
break ;
|
||||
case kTextEncodingISOLatin9 :
|
||||
enc =wxFONTENCODING_ISO8859_15 ;
|
||||
break ;
|
||||
|
||||
case kTextEncodingKOI8_R :
|
||||
enc = wxFONTENCODING_KOI8;
|
||||
break ;
|
||||
/*
|
||||
case :
|
||||
enc = wxFONTENCODING_BULGARIAN;
|
||||
break ;
|
||||
*/
|
||||
case kTextEncodingDOSLatinUS :
|
||||
enc = wxFONTENCODING_CP437;
|
||||
break ;
|
||||
case kTextEncodingDOSLatin1 :
|
||||
enc = wxFONTENCODING_CP850;
|
||||
break ;
|
||||
case kTextEncodingDOSLatin2 :
|
||||
enc =wxFONTENCODING_CP852 ;
|
||||
break ;
|
||||
case kTextEncodingDOSCyrillic :
|
||||
enc = wxFONTENCODING_CP855;
|
||||
break ;
|
||||
case kTextEncodingDOSRussian :
|
||||
enc = wxFONTENCODING_CP866;
|
||||
break ;
|
||||
case kTextEncodingDOSThai :
|
||||
enc =wxFONTENCODING_CP874 ;
|
||||
break ;
|
||||
case kTextEncodingDOSJapanese :
|
||||
enc = wxFONTENCODING_CP932;
|
||||
break ;
|
||||
case kTextEncodingDOSChineseSimplif :
|
||||
enc = wxFONTENCODING_CP936;
|
||||
break ;
|
||||
case kTextEncodingDOSKorean :
|
||||
enc = wxFONTENCODING_CP949;
|
||||
break ;
|
||||
case kTextEncodingDOSChineseTrad :
|
||||
enc = wxFONTENCODING_CP950;
|
||||
break ;
|
||||
|
||||
case kTextEncodingWindowsLatin2 :
|
||||
enc = wxFONTENCODING_CP1250;
|
||||
break ;
|
||||
case kTextEncodingWindowsCyrillic :
|
||||
enc = wxFONTENCODING_CP1251;
|
||||
break ;
|
||||
case kTextEncodingWindowsLatin1 :
|
||||
enc = wxFONTENCODING_CP1252;
|
||||
break ;
|
||||
case kTextEncodingWindowsGreek :
|
||||
enc = wxFONTENCODING_CP1253;
|
||||
break ;
|
||||
case kTextEncodingWindowsLatin5 :
|
||||
enc = wxFONTENCODING_CP1254;
|
||||
break ;
|
||||
case kTextEncodingWindowsHebrew :
|
||||
enc = wxFONTENCODING_CP1255;
|
||||
break ;
|
||||
case kTextEncodingWindowsArabic :
|
||||
enc = wxFONTENCODING_CP1256;
|
||||
break ;
|
||||
case kTextEncodingWindowsBalticRim :
|
||||
enc =wxFONTENCODING_CP1257 ;
|
||||
break ;
|
||||
case kTextEncodingEUC_JP :
|
||||
enc = wxFONTENCODING_EUC_JP;
|
||||
break ;
|
||||
/*
|
||||
case wxFONTENCODING_UTF7 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF8 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
*/
|
||||
case kTextEncodingMacRoman :
|
||||
enc = wxFONTENCODING_MACROMAN ;
|
||||
break ;
|
||||
case kTextEncodingMacJapanese :
|
||||
enc = wxFONTENCODING_MACJAPANESE ;
|
||||
break ;
|
||||
case kTextEncodingMacChineseTrad :
|
||||
enc = wxFONTENCODING_MACCHINESETRAD ;
|
||||
break ;
|
||||
case kTextEncodingMacKorean :
|
||||
enc = wxFONTENCODING_MACKOREAN ;
|
||||
break ;
|
||||
case kTextEncodingMacArabic :
|
||||
enc =wxFONTENCODING_MACARABIC ;
|
||||
break ;
|
||||
case kTextEncodingMacHebrew :
|
||||
enc = wxFONTENCODING_MACHEBREW ;
|
||||
break ;
|
||||
case kTextEncodingMacGreek :
|
||||
enc = wxFONTENCODING_MACGREEK ;
|
||||
break ;
|
||||
case kTextEncodingMacCyrillic :
|
||||
enc = wxFONTENCODING_MACCYRILLIC ;
|
||||
break ;
|
||||
case kTextEncodingMacDevanagari :
|
||||
enc = wxFONTENCODING_MACDEVANAGARI ;
|
||||
break ;
|
||||
case kTextEncodingMacGurmukhi :
|
||||
enc = wxFONTENCODING_MACGURMUKHI ;
|
||||
break ;
|
||||
case kTextEncodingMacGujarati :
|
||||
enc = wxFONTENCODING_MACGUJARATI ;
|
||||
break ;
|
||||
case kTextEncodingMacOriya :
|
||||
enc =wxFONTENCODING_MACORIYA ;
|
||||
break ;
|
||||
case kTextEncodingMacBengali :
|
||||
enc =wxFONTENCODING_MACBENGALI ;
|
||||
break ;
|
||||
case kTextEncodingMacTamil :
|
||||
enc = wxFONTENCODING_MACTAMIL ;
|
||||
break ;
|
||||
case kTextEncodingMacTelugu :
|
||||
enc = wxFONTENCODING_MACTELUGU ;
|
||||
break ;
|
||||
case kTextEncodingMacKannada :
|
||||
enc = wxFONTENCODING_MACKANNADA ;
|
||||
break ;
|
||||
case kTextEncodingMacMalayalam :
|
||||
enc = wxFONTENCODING_MACMALAJALAM ;
|
||||
break ;
|
||||
case kTextEncodingMacSinhalese :
|
||||
enc = wxFONTENCODING_MACSINHALESE ;
|
||||
break ;
|
||||
case kTextEncodingMacBurmese :
|
||||
enc = wxFONTENCODING_MACBURMESE ;
|
||||
break ;
|
||||
case kTextEncodingMacKhmer :
|
||||
enc = wxFONTENCODING_MACKHMER ;
|
||||
break ;
|
||||
case kTextEncodingMacThai :
|
||||
enc = wxFONTENCODING_MACTHAI ;
|
||||
break ;
|
||||
case kTextEncodingMacLaotian :
|
||||
enc = wxFONTENCODING_MACLAOTIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacGeorgian :
|
||||
enc = wxFONTENCODING_MACGEORGIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacArmenian :
|
||||
enc = wxFONTENCODING_MACARMENIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacChineseSimp :
|
||||
enc = wxFONTENCODING_MACCHINESESIMP ;
|
||||
break ;
|
||||
case kTextEncodingMacTibetan :
|
||||
enc = wxFONTENCODING_MACTIBETAN ;
|
||||
break ;
|
||||
case kTextEncodingMacMongolian :
|
||||
enc = wxFONTENCODING_MACMONGOLIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacEthiopic :
|
||||
enc = wxFONTENCODING_MACETHIOPIC ;
|
||||
break ;
|
||||
case kTextEncodingMacCentralEurRoman:
|
||||
enc = wxFONTENCODING_MACCENTRALEUR ;
|
||||
break ;
|
||||
case kTextEncodingMacVietnamese:
|
||||
enc = wxFONTENCODING_MACVIATNAMESE ;
|
||||
break ;
|
||||
case kTextEncodingMacExtArabic :
|
||||
enc = wxFONTENCODING_MACARABICEXT ;
|
||||
break ;
|
||||
case kTextEncodingMacSymbol :
|
||||
enc = wxFONTENCODING_MACSYMBOL ;
|
||||
break ;
|
||||
case kTextEncodingMacDingbats :
|
||||
enc = wxFONTENCODING_MACDINGBATS ;
|
||||
break ;
|
||||
case kTextEncodingMacTurkish :
|
||||
enc = wxFONTENCODING_MACTURKISH ;
|
||||
break ;
|
||||
case kTextEncodingMacCroatian :
|
||||
enc = wxFONTENCODING_MACCROATIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacIcelandic :
|
||||
enc = wxFONTENCODING_MACICELANDIC ;
|
||||
break ;
|
||||
case kTextEncodingMacRomanian :
|
||||
enc = wxFONTENCODING_MACROMANIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacCeltic :
|
||||
enc = wxFONTENCODING_MACCELTIC ;
|
||||
break ;
|
||||
case kTextEncodingMacGaelic :
|
||||
enc = wxFONTENCODING_MACGAELIC ;
|
||||
break ;
|
||||
case kTextEncodingMacKeyboardGlyphs :
|
||||
enc = wxFONTENCODING_MACKEYBOARD ;
|
||||
break ;
|
||||
} ;
|
||||
return enc ;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// CFStringRefs (Carbon only)
|
||||
//
|
||||
|
||||
#if TARGET_CARBON
|
||||
|
||||
// converts this string into a carbon foundation string with optional pc 2 mac encoding
|
||||
void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding )
|
||||
{
|
||||
Release() ;
|
||||
|
||||
wxString str = st ;
|
||||
wxMacConvertNewlines13To10( &str ) ;
|
||||
#if wxUSE_UNICODE
|
||||
#if SIZEOF_WCHAR_T == 2
|
||||
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
|
||||
(UniChar*)str.wc_str() , str.Len() );
|
||||
#else
|
||||
wxMBConvUTF16BE converter ;
|
||||
size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
|
||||
UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
|
||||
converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
|
||||
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
|
||||
unibuf , unicharlen / sizeof(UniChar) ) ;
|
||||
delete[] unibuf ;
|
||||
#endif
|
||||
#else // not wxUSE_UNICODE
|
||||
m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
|
||||
wxMacGetSystemEncFromFontEnc( encoding ) ) ;
|
||||
#endif
|
||||
m_release = true ;
|
||||
}
|
||||
|
||||
wxString wxMacCFStringHolder::AsString(wxFontEncoding encoding)
|
||||
{
|
||||
Size cflen = CFStringGetLength( m_cfs ) ;
|
||||
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 ) ;
|
||||
noChars = cflen ;
|
||||
#else
|
||||
UniChar* unibuf = new UniChar[ cflen + 1 ] ;
|
||||
CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
|
||||
unibuf[cflen] = 0 ;
|
||||
wxMBConvUTF16BE converter ;
|
||||
noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
|
||||
buf = new wxChar[ noChars + 1 ] ;
|
||||
converter.MB2WC( buf , (const char*)unibuf , noChars ) ;
|
||||
delete[] unibuf ;
|
||||
#endif
|
||||
#else
|
||||
CFIndex cStrLen ;
|
||||
CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
|
||||
'?' , false , NULL , 0 , &cStrLen ) ;
|
||||
buf = new wxChar[ cStrLen + 1 ] ;
|
||||
CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
|
||||
'?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ;
|
||||
noChars = cStrLen ;
|
||||
#endif
|
||||
|
||||
buf[noChars] = 0 ;
|
||||
wxMacConvertNewlines10To13( buf ) ;
|
||||
wxString result(buf) ;
|
||||
delete[] buf ;
|
||||
return result ;
|
||||
}
|
||||
|
||||
#endif //TARGET_CARBON
|
||||
|
||||
void wxMacConvertNewlines13To10( char * data )
|
||||
{
|
||||
char * buf = data ;
|
||||
while( (buf=strchr(buf,0x0d)) != NULL )
|
||||
{
|
||||
*buf = 0x0a ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines10To13( char * data )
|
||||
{
|
||||
char * buf = data ;
|
||||
while( (buf=strchr(buf,0x0a)) != NULL )
|
||||
{
|
||||
*buf = 0x0d ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines13To10( wxString * data )
|
||||
{
|
||||
size_t len = data->Length() ;
|
||||
|
||||
if ( len == 0 || wxStrchr(data->c_str(),0x0d)==NULL)
|
||||
return ;
|
||||
|
||||
wxString temp(*data) ;
|
||||
wxStringBuffer buf(*data,len ) ;
|
||||
memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ;
|
||||
|
||||
wxMacConvertNewlines13To10( buf ) ;
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines10To13( wxString * data )
|
||||
{
|
||||
size_t len = data->Length() ;
|
||||
|
||||
if ( data->Length() == 0 || wxStrchr(data->c_str(),0x0a)==NULL)
|
||||
return ;
|
||||
|
||||
wxString temp(*data) ;
|
||||
wxStringBuffer buf(*data,len ) ;
|
||||
memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ;
|
||||
wxMacConvertNewlines10To13( buf ) ;
|
||||
}
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
void wxMacConvertNewlines13To10( wxChar * data )
|
||||
{
|
||||
wxChar * buf = data ;
|
||||
while( (buf=wxStrchr(buf,0x0d)) != NULL )
|
||||
{
|
||||
*buf = 0x0a ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines10To13( wxChar * data )
|
||||
{
|
||||
wxChar * buf = data ;
|
||||
while( (buf=wxStrchr(buf,0x0a)) != NULL )
|
||||
{
|
||||
*buf = 0x0d ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Common Event Support
|
||||
// ----------------------------------------------------------------------------
|
||||
|
693
src/mac/corefoundation/cfstring.cpp
Normal file
693
src/mac/corefoundation/cfstring.cpp
Normal file
@ -0,0 +1,693 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: src/mac/corefoundation/cfstring.cpp
|
||||
// Purpose: wxCFStringHolder and other string functions
|
||||
// Author: Stefan Csomor
|
||||
// Modified by:
|
||||
// Created: 2004-10-29 (from code in src/mac/carbon/utils.cpp)
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Stefan Csomor
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "wx/wxprec.h"
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/string.h"
|
||||
#include "wx/intl.h"
|
||||
#endif
|
||||
#include "wx/mac/corefoundation/cfstring.h"
|
||||
|
||||
#if wxUSE_GUI
|
||||
#include "wx/font.h"
|
||||
#endif
|
||||
|
||||
#ifdef __DARWIN__
|
||||
#include <CoreServices/CoreServices.h>
|
||||
#else
|
||||
#include <TextCommon.h>
|
||||
#endif
|
||||
|
||||
void wxMacConvertNewlines13To10( char * data )
|
||||
{
|
||||
char * buf = data ;
|
||||
while( (buf=strchr(buf,0x0d)) != NULL )
|
||||
{
|
||||
*buf = 0x0a ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines10To13( char * data )
|
||||
{
|
||||
char * buf = data ;
|
||||
while( (buf=strchr(buf,0x0a)) != NULL )
|
||||
{
|
||||
*buf = 0x0d ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines13To10( wxString * data )
|
||||
{
|
||||
size_t len = data->Length() ;
|
||||
|
||||
if ( len == 0 || wxStrchr(data->c_str(),0x0d)==NULL)
|
||||
return ;
|
||||
|
||||
wxString temp(*data) ;
|
||||
wxStringBuffer buf(*data,len ) ;
|
||||
memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ;
|
||||
|
||||
wxMacConvertNewlines13To10( buf ) ;
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines10To13( wxString * data )
|
||||
{
|
||||
size_t len = data->Length() ;
|
||||
|
||||
if ( data->Length() == 0 || wxStrchr(data->c_str(),0x0a)==NULL)
|
||||
return ;
|
||||
|
||||
wxString temp(*data) ;
|
||||
wxStringBuffer buf(*data,len ) ;
|
||||
memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ;
|
||||
wxMacConvertNewlines10To13( buf ) ;
|
||||
}
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
void wxMacConvertNewlines13To10( wxChar * data )
|
||||
{
|
||||
wxChar * buf = data ;
|
||||
while( (buf=wxStrchr(buf,0x0d)) != NULL )
|
||||
{
|
||||
*buf = 0x0a ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
|
||||
void wxMacConvertNewlines10To13( wxChar * data )
|
||||
{
|
||||
wxChar * buf = data ;
|
||||
while( (buf=wxStrchr(buf,0x0a)) != NULL )
|
||||
{
|
||||
*buf = 0x0d ;
|
||||
buf++ ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding)
|
||||
{
|
||||
TextEncodingBase enc = 0 ;
|
||||
if ( encoding == wxFONTENCODING_DEFAULT )
|
||||
{
|
||||
#if wxUSE_GUI
|
||||
encoding = wxFont::GetDefaultEncoding() ;
|
||||
#else
|
||||
encoding = wxLocale::GetSystemEncoding() ;
|
||||
#endif
|
||||
}
|
||||
|
||||
switch( encoding)
|
||||
{
|
||||
case wxFONTENCODING_ISO8859_1 :
|
||||
enc = kTextEncodingISOLatin1 ;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_2 :
|
||||
enc = kTextEncodingISOLatin2;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_3 :
|
||||
enc = kTextEncodingISOLatin3 ;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_4 :
|
||||
enc = kTextEncodingISOLatin4;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_5 :
|
||||
enc = kTextEncodingISOLatinCyrillic;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_6 :
|
||||
enc = kTextEncodingISOLatinArabic;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_7 :
|
||||
enc = kTextEncodingISOLatinGreek;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_8 :
|
||||
enc = kTextEncodingISOLatinHebrew;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_9 :
|
||||
enc = kTextEncodingISOLatin5;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_10 :
|
||||
enc = kTextEncodingISOLatin6;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_13 :
|
||||
enc = kTextEncodingISOLatin7;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_14 :
|
||||
enc = kTextEncodingISOLatin8;
|
||||
break ;
|
||||
case wxFONTENCODING_ISO8859_15 :
|
||||
enc = kTextEncodingISOLatin9;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_KOI8 :
|
||||
enc = kTextEncodingKOI8_R;
|
||||
break ;
|
||||
case wxFONTENCODING_ALTERNATIVE : // MS-DOS CP866
|
||||
enc = kTextEncodingDOSRussian;
|
||||
break ;
|
||||
/*
|
||||
case wxFONTENCODING_BULGARIAN :
|
||||
enc = ;
|
||||
break ;
|
||||
*/
|
||||
case wxFONTENCODING_CP437 :
|
||||
enc =kTextEncodingDOSLatinUS ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP850 :
|
||||
enc = kTextEncodingDOSLatin1;
|
||||
break ;
|
||||
case wxFONTENCODING_CP852 :
|
||||
enc = kTextEncodingDOSLatin2;
|
||||
break ;
|
||||
case wxFONTENCODING_CP855 :
|
||||
enc = kTextEncodingDOSCyrillic;
|
||||
break ;
|
||||
case wxFONTENCODING_CP866 :
|
||||
enc =kTextEncodingDOSRussian ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP874 :
|
||||
enc = kTextEncodingDOSThai;
|
||||
break ;
|
||||
case wxFONTENCODING_CP932 :
|
||||
enc = kTextEncodingDOSJapanese;
|
||||
break ;
|
||||
case wxFONTENCODING_CP936 :
|
||||
enc = kTextEncodingDOSChineseSimplif ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP949 :
|
||||
enc = kTextEncodingDOSKorean;
|
||||
break ;
|
||||
case wxFONTENCODING_CP950 :
|
||||
enc = kTextEncodingDOSChineseTrad;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_CP1250 :
|
||||
enc = kTextEncodingWindowsLatin2;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1251 :
|
||||
enc =kTextEncodingWindowsCyrillic ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1252 :
|
||||
enc =kTextEncodingWindowsLatin1 ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1253 :
|
||||
enc = kTextEncodingWindowsGreek;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1254 :
|
||||
enc = kTextEncodingWindowsLatin5;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1255 :
|
||||
enc =kTextEncodingWindowsHebrew ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1256 :
|
||||
enc =kTextEncodingWindowsArabic ;
|
||||
break ;
|
||||
case wxFONTENCODING_CP1257 :
|
||||
enc = kTextEncodingWindowsBalticRim;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_UTF7 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF8 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_EUC_JP :
|
||||
enc = kTextEncodingEUC_JP;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
|
||||
case wxFONTENCODING_MACROMAN :
|
||||
enc = kTextEncodingMacRoman ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACJAPANESE :
|
||||
enc = kTextEncodingMacJapanese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCHINESETRAD :
|
||||
enc = kTextEncodingMacChineseTrad ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKOREAN :
|
||||
enc = kTextEncodingMacKorean ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACARABIC :
|
||||
enc = kTextEncodingMacArabic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACHEBREW :
|
||||
enc = kTextEncodingMacHebrew ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGREEK :
|
||||
enc = kTextEncodingMacGreek ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCYRILLIC :
|
||||
enc = kTextEncodingMacCyrillic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACDEVANAGARI :
|
||||
enc = kTextEncodingMacDevanagari ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGURMUKHI :
|
||||
enc = kTextEncodingMacGurmukhi ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGUJARATI :
|
||||
enc = kTextEncodingMacGujarati ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACORIYA :
|
||||
enc = kTextEncodingMacOriya ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACBENGALI :
|
||||
enc = kTextEncodingMacBengali ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTAMIL :
|
||||
enc = kTextEncodingMacTamil ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTELUGU :
|
||||
enc = kTextEncodingMacTelugu ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKANNADA :
|
||||
enc = kTextEncodingMacKannada ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACMALAJALAM :
|
||||
enc = kTextEncodingMacMalayalam ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACSINHALESE :
|
||||
enc = kTextEncodingMacSinhalese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACBURMESE :
|
||||
enc = kTextEncodingMacBurmese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKHMER :
|
||||
enc = kTextEncodingMacKhmer ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTHAI :
|
||||
enc = kTextEncodingMacThai ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACLAOTIAN :
|
||||
enc = kTextEncodingMacLaotian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGEORGIAN :
|
||||
enc = kTextEncodingMacGeorgian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACARMENIAN :
|
||||
enc = kTextEncodingMacArmenian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCHINESESIMP :
|
||||
enc = kTextEncodingMacChineseSimp ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTIBETAN :
|
||||
enc = kTextEncodingMacTibetan ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACMONGOLIAN :
|
||||
enc = kTextEncodingMacMongolian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACETHIOPIC :
|
||||
enc = kTextEncodingMacEthiopic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCENTRALEUR :
|
||||
enc = kTextEncodingMacCentralEurRoman ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACVIATNAMESE :
|
||||
enc = kTextEncodingMacVietnamese ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACARABICEXT :
|
||||
enc = kTextEncodingMacExtArabic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACSYMBOL :
|
||||
enc = kTextEncodingMacSymbol ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACDINGBATS :
|
||||
enc = kTextEncodingMacDingbats ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACTURKISH :
|
||||
enc = kTextEncodingMacTurkish ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCROATIAN :
|
||||
enc = kTextEncodingMacCroatian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACICELANDIC :
|
||||
enc = kTextEncodingMacIcelandic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACROMANIAN :
|
||||
enc = kTextEncodingMacRomanian ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACCELTIC :
|
||||
enc = kTextEncodingMacCeltic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACGAELIC :
|
||||
enc = kTextEncodingMacGaelic ;
|
||||
break ;
|
||||
case wxFONTENCODING_MACKEYBOARD :
|
||||
enc = kTextEncodingMacKeyboardGlyphs ;
|
||||
break ;
|
||||
default : // to make gcc happy
|
||||
break ;
|
||||
};
|
||||
return enc ;
|
||||
}
|
||||
|
||||
wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding)
|
||||
{
|
||||
wxFontEncoding enc = wxFONTENCODING_DEFAULT ;
|
||||
|
||||
switch( encoding)
|
||||
{
|
||||
case kTextEncodingISOLatin1 :
|
||||
enc = wxFONTENCODING_ISO8859_1 ;
|
||||
break ;
|
||||
case kTextEncodingISOLatin2 :
|
||||
enc = wxFONTENCODING_ISO8859_2;
|
||||
break ;
|
||||
case kTextEncodingISOLatin3 :
|
||||
enc = wxFONTENCODING_ISO8859_3 ;
|
||||
break ;
|
||||
case kTextEncodingISOLatin4 :
|
||||
enc = wxFONTENCODING_ISO8859_4;
|
||||
break ;
|
||||
case kTextEncodingISOLatinCyrillic :
|
||||
enc = wxFONTENCODING_ISO8859_5;
|
||||
break ;
|
||||
case kTextEncodingISOLatinArabic :
|
||||
enc = wxFONTENCODING_ISO8859_6;
|
||||
break ;
|
||||
case kTextEncodingISOLatinGreek :
|
||||
enc = wxFONTENCODING_ISO8859_7;
|
||||
break ;
|
||||
case kTextEncodingISOLatinHebrew :
|
||||
enc = wxFONTENCODING_ISO8859_8;
|
||||
break ;
|
||||
case kTextEncodingISOLatin5 :
|
||||
enc = wxFONTENCODING_ISO8859_9;
|
||||
break ;
|
||||
case kTextEncodingISOLatin6 :
|
||||
enc = wxFONTENCODING_ISO8859_10;
|
||||
break ;
|
||||
case kTextEncodingISOLatin7 :
|
||||
enc = wxFONTENCODING_ISO8859_13;
|
||||
break ;
|
||||
case kTextEncodingISOLatin8 :
|
||||
enc = wxFONTENCODING_ISO8859_14;
|
||||
break ;
|
||||
case kTextEncodingISOLatin9 :
|
||||
enc =wxFONTENCODING_ISO8859_15 ;
|
||||
break ;
|
||||
|
||||
case kTextEncodingKOI8_R :
|
||||
enc = wxFONTENCODING_KOI8;
|
||||
break ;
|
||||
/*
|
||||
case :
|
||||
enc = wxFONTENCODING_BULGARIAN;
|
||||
break ;
|
||||
*/
|
||||
case kTextEncodingDOSLatinUS :
|
||||
enc = wxFONTENCODING_CP437;
|
||||
break ;
|
||||
case kTextEncodingDOSLatin1 :
|
||||
enc = wxFONTENCODING_CP850;
|
||||
break ;
|
||||
case kTextEncodingDOSLatin2 :
|
||||
enc =wxFONTENCODING_CP852 ;
|
||||
break ;
|
||||
case kTextEncodingDOSCyrillic :
|
||||
enc = wxFONTENCODING_CP855;
|
||||
break ;
|
||||
case kTextEncodingDOSRussian :
|
||||
enc = wxFONTENCODING_CP866;
|
||||
break ;
|
||||
case kTextEncodingDOSThai :
|
||||
enc =wxFONTENCODING_CP874 ;
|
||||
break ;
|
||||
case kTextEncodingDOSJapanese :
|
||||
enc = wxFONTENCODING_CP932;
|
||||
break ;
|
||||
case kTextEncodingDOSChineseSimplif :
|
||||
enc = wxFONTENCODING_CP936;
|
||||
break ;
|
||||
case kTextEncodingDOSKorean :
|
||||
enc = wxFONTENCODING_CP949;
|
||||
break ;
|
||||
case kTextEncodingDOSChineseTrad :
|
||||
enc = wxFONTENCODING_CP950;
|
||||
break ;
|
||||
|
||||
case kTextEncodingWindowsLatin2 :
|
||||
enc = wxFONTENCODING_CP1250;
|
||||
break ;
|
||||
case kTextEncodingWindowsCyrillic :
|
||||
enc = wxFONTENCODING_CP1251;
|
||||
break ;
|
||||
case kTextEncodingWindowsLatin1 :
|
||||
enc = wxFONTENCODING_CP1252;
|
||||
break ;
|
||||
case kTextEncodingWindowsGreek :
|
||||
enc = wxFONTENCODING_CP1253;
|
||||
break ;
|
||||
case kTextEncodingWindowsLatin5 :
|
||||
enc = wxFONTENCODING_CP1254;
|
||||
break ;
|
||||
case kTextEncodingWindowsHebrew :
|
||||
enc = wxFONTENCODING_CP1255;
|
||||
break ;
|
||||
case kTextEncodingWindowsArabic :
|
||||
enc = wxFONTENCODING_CP1256;
|
||||
break ;
|
||||
case kTextEncodingWindowsBalticRim :
|
||||
enc =wxFONTENCODING_CP1257 ;
|
||||
break ;
|
||||
case kTextEncodingEUC_JP :
|
||||
enc = wxFONTENCODING_EUC_JP;
|
||||
break ;
|
||||
#if 0
|
||||
case wxFONTENCODING_UTF7 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF8 :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF16LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32BE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
case wxFONTENCODING_UTF32LE :
|
||||
enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
|
||||
break ;
|
||||
#endif
|
||||
case kTextEncodingMacRoman :
|
||||
enc = wxFONTENCODING_MACROMAN ;
|
||||
break ;
|
||||
case kTextEncodingMacJapanese :
|
||||
enc = wxFONTENCODING_MACJAPANESE ;
|
||||
break ;
|
||||
case kTextEncodingMacChineseTrad :
|
||||
enc = wxFONTENCODING_MACCHINESETRAD ;
|
||||
break ;
|
||||
case kTextEncodingMacKorean :
|
||||
enc = wxFONTENCODING_MACKOREAN ;
|
||||
break ;
|
||||
case kTextEncodingMacArabic :
|
||||
enc =wxFONTENCODING_MACARABIC ;
|
||||
break ;
|
||||
case kTextEncodingMacHebrew :
|
||||
enc = wxFONTENCODING_MACHEBREW ;
|
||||
break ;
|
||||
case kTextEncodingMacGreek :
|
||||
enc = wxFONTENCODING_MACGREEK ;
|
||||
break ;
|
||||
case kTextEncodingMacCyrillic :
|
||||
enc = wxFONTENCODING_MACCYRILLIC ;
|
||||
break ;
|
||||
case kTextEncodingMacDevanagari :
|
||||
enc = wxFONTENCODING_MACDEVANAGARI ;
|
||||
break ;
|
||||
case kTextEncodingMacGurmukhi :
|
||||
enc = wxFONTENCODING_MACGURMUKHI ;
|
||||
break ;
|
||||
case kTextEncodingMacGujarati :
|
||||
enc = wxFONTENCODING_MACGUJARATI ;
|
||||
break ;
|
||||
case kTextEncodingMacOriya :
|
||||
enc =wxFONTENCODING_MACORIYA ;
|
||||
break ;
|
||||
case kTextEncodingMacBengali :
|
||||
enc =wxFONTENCODING_MACBENGALI ;
|
||||
break ;
|
||||
case kTextEncodingMacTamil :
|
||||
enc = wxFONTENCODING_MACTAMIL ;
|
||||
break ;
|
||||
case kTextEncodingMacTelugu :
|
||||
enc = wxFONTENCODING_MACTELUGU ;
|
||||
break ;
|
||||
case kTextEncodingMacKannada :
|
||||
enc = wxFONTENCODING_MACKANNADA ;
|
||||
break ;
|
||||
case kTextEncodingMacMalayalam :
|
||||
enc = wxFONTENCODING_MACMALAJALAM ;
|
||||
break ;
|
||||
case kTextEncodingMacSinhalese :
|
||||
enc = wxFONTENCODING_MACSINHALESE ;
|
||||
break ;
|
||||
case kTextEncodingMacBurmese :
|
||||
enc = wxFONTENCODING_MACBURMESE ;
|
||||
break ;
|
||||
case kTextEncodingMacKhmer :
|
||||
enc = wxFONTENCODING_MACKHMER ;
|
||||
break ;
|
||||
case kTextEncodingMacThai :
|
||||
enc = wxFONTENCODING_MACTHAI ;
|
||||
break ;
|
||||
case kTextEncodingMacLaotian :
|
||||
enc = wxFONTENCODING_MACLAOTIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacGeorgian :
|
||||
enc = wxFONTENCODING_MACGEORGIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacArmenian :
|
||||
enc = wxFONTENCODING_MACARMENIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacChineseSimp :
|
||||
enc = wxFONTENCODING_MACCHINESESIMP ;
|
||||
break ;
|
||||
case kTextEncodingMacTibetan :
|
||||
enc = wxFONTENCODING_MACTIBETAN ;
|
||||
break ;
|
||||
case kTextEncodingMacMongolian :
|
||||
enc = wxFONTENCODING_MACMONGOLIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacEthiopic :
|
||||
enc = wxFONTENCODING_MACETHIOPIC ;
|
||||
break ;
|
||||
case kTextEncodingMacCentralEurRoman:
|
||||
enc = wxFONTENCODING_MACCENTRALEUR ;
|
||||
break ;
|
||||
case kTextEncodingMacVietnamese:
|
||||
enc = wxFONTENCODING_MACVIATNAMESE ;
|
||||
break ;
|
||||
case kTextEncodingMacExtArabic :
|
||||
enc = wxFONTENCODING_MACARABICEXT ;
|
||||
break ;
|
||||
case kTextEncodingMacSymbol :
|
||||
enc = wxFONTENCODING_MACSYMBOL ;
|
||||
break ;
|
||||
case kTextEncodingMacDingbats :
|
||||
enc = wxFONTENCODING_MACDINGBATS ;
|
||||
break ;
|
||||
case kTextEncodingMacTurkish :
|
||||
enc = wxFONTENCODING_MACTURKISH ;
|
||||
break ;
|
||||
case kTextEncodingMacCroatian :
|
||||
enc = wxFONTENCODING_MACCROATIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacIcelandic :
|
||||
enc = wxFONTENCODING_MACICELANDIC ;
|
||||
break ;
|
||||
case kTextEncodingMacRomanian :
|
||||
enc = wxFONTENCODING_MACROMANIAN ;
|
||||
break ;
|
||||
case kTextEncodingMacCeltic :
|
||||
enc = wxFONTENCODING_MACCELTIC ;
|
||||
break ;
|
||||
case kTextEncodingMacGaelic :
|
||||
enc = wxFONTENCODING_MACGAELIC ;
|
||||
break ;
|
||||
case kTextEncodingMacKeyboardGlyphs :
|
||||
enc = wxFONTENCODING_MACKEYBOARD ;
|
||||
break ;
|
||||
} ;
|
||||
return enc ;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// CFStringRefs (Carbon only)
|
||||
//
|
||||
|
||||
// converts this string into a carbon foundation string with optional pc 2 mac encoding
|
||||
void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding )
|
||||
{
|
||||
Release() ;
|
||||
|
||||
wxString str = st ;
|
||||
wxMacConvertNewlines13To10( &str ) ;
|
||||
#if wxUSE_UNICODE
|
||||
#if SIZEOF_WCHAR_T == 2
|
||||
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
|
||||
(UniChar*)str.wc_str() , str.Len() );
|
||||
#else
|
||||
wxMBConvUTF16BE converter ;
|
||||
size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
|
||||
UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
|
||||
converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
|
||||
m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
|
||||
unibuf , unicharlen / sizeof(UniChar) ) ;
|
||||
delete[] unibuf ;
|
||||
#endif
|
||||
#else // not wxUSE_UNICODE
|
||||
m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
|
||||
wxMacGetSystemEncFromFontEnc( encoding ) ) ;
|
||||
#endif
|
||||
m_release = true ;
|
||||
}
|
||||
|
||||
wxString wxMacCFStringHolder::AsString(wxFontEncoding encoding)
|
||||
{
|
||||
Size cflen = CFStringGetLength( m_cfs ) ;
|
||||
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 ) ;
|
||||
noChars = cflen ;
|
||||
#else
|
||||
UniChar* unibuf = new UniChar[ cflen + 1 ] ;
|
||||
CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
|
||||
unibuf[cflen] = 0 ;
|
||||
wxMBConvUTF16BE converter ;
|
||||
noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
|
||||
buf = new wxChar[ noChars + 1 ] ;
|
||||
converter.MB2WC( buf , (const char*)unibuf , noChars ) ;
|
||||
delete[] unibuf ;
|
||||
#endif
|
||||
#else
|
||||
CFIndex cStrLen ;
|
||||
CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
|
||||
'?' , false , NULL , 0 , &cStrLen ) ;
|
||||
buf = new wxChar[ cStrLen + 1 ] ;
|
||||
CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
|
||||
'?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ;
|
||||
noChars = cStrLen ;
|
||||
#endif
|
||||
|
||||
buf[noChars] = 0 ;
|
||||
wxMacConvertNewlines10To13( buf ) ;
|
||||
wxString result(buf) ;
|
||||
delete[] buf ;
|
||||
return result ;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user