📄 cfstring.cpp
字号:
/////////////////////////////////////////////////////////////////////////////// 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: cfstring.cpp,v 1.9 2006/07/24 18:01:38 VZ Exp $// Copyright: (c) Stefan Csomor// Licence: wxWindows licence/////////////////////////////////////////////////////////////////////////////#include "wx/wxprec.h"#ifndef WX_PRECOMP #include "wx/string.h" #include "wx/intl.h" #if wxUSE_GUI #include "wx/font.h" #endif#endif#include "wx/mac/corefoundation/cfstring.h"#ifdef __DARWIN__ #include <CoreServices/CoreServices.h>#else #include <TextCommon.h>#endifvoid 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_UNICODEvoid 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++ ; }}#endifwxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding){ TextEncodingBase enc = 0 ; if ( encoding == wxFONTENCODING_DEFAULT ) {#if wxUSE_GUI encoding = wxFont::GetDefaultEncoding() ;#else encoding = wxFONTENCODING_SYSTEM; // to be set below#endif } if ( encoding == wxFONTENCODING_SYSTEM ) { enc = CFStringGetSystemEncoding(); } 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) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -