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

📄 cfstring.cpp

📁 Wxpython Implemented on Windows CE, Source code
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////////////////////////////////
// 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.8 2006/06/29 17:23:37 SC 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>
#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
    }
    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)
    {
    case kTextEncodingISOLatin1  :

⌨️ 快捷键说明

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