⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfstring.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    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 encodingvoid wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding ){    Release() ;    if (st.IsEmpty())    {        m_cfs = CFSTR("") ;        CFRetain( m_cfs ) ;    }    else    {        wxString str = st ;        wxMacConvertNewlines13To10( &str ) ;#if wxUSE_UNICODE#if SIZEOF_WCHAR_T == 2        m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,            (UniChar*)str.wc_str() , str.Len() );#else        wxMBConvUTF16 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){    if ( m_cfs == NULL )        return wxEmptyString ;    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 ;    wxMBConvUTF16 converter ;    noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;    wxASSERT_MSG( noChars != wxCONV_FAILED, _T("Unable to count the number of characters in this string!") );    buf = new wxChar[ noChars + 1 ] ;    noChars = converter.MB2WC( buf , (const char*)unibuf , noChars + 1 ) ;    wxASSERT_MSG( noChars != wxCONV_FAILED, _T("Conversion of string failed!") );    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 ;}wxMacUniCharBuffer::wxMacUniCharBuffer( const wxString &str ){    m_chars = str.length() ;    m_ubuf = NULL ;#if SIZEOF_WCHAR_T == 4    wxMBConvUTF16 converter ;#if wxUSE_UNICODE    size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;    m_ubuf = (UniChar*) malloc( unicharlen + 2 ) ;    converter.WC2MB( (char*) m_ubuf , str.wc_str(), unicharlen + 2 ) ;#else    const wxWCharBuffer wchar = str.wc_str( wxConvLocal ) ;    size_t unicharlen = converter.WC2MB( NULL , wchar.data() , 0 ) ;    m_ubuf = (UniChar*) malloc( unicharlen + 2 ) ;    converter.WC2MB( (char*) m_ubuf , wchar.data() , unicharlen + 2 ) ;#endif    m_chars = unicharlen / 2 ;#else // SIZEOF_WCHAR_T is then 2#if wxUSE_UNICODE    m_ubuf = malloc( m_chars * 2 + 2 ) ;    memcpy( m_ubuf , (UniChar*) str.wc_str() , m_chars * 2 + 2 ) ;#else    wxWCharBuffer wchar = str.wc_str( wxConvLocal ) ;    m_chars = wxWcslen( wchar.data() ) ;    m_ubuf = malloc( m_chars * 2 + 2 ) ;    memcpy( m_ubuf , (UniChar*) wchar.data() , m_chars * 2 + 2 ) ;#endif#endif}wxMacUniCharBuffer::~wxMacUniCharBuffer(){    free( m_ubuf ) ;}UniCharArrayPtr wxMacUniCharBuffer::GetBuffer() {    return m_ubuf ;}   UniCharCount wxMacUniCharBuffer::GetChars(){    return m_chars ;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -