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

📄 utils.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        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 ;}#endif // wxUSE_BASE#if wxUSE_GUI//// CFStringRefs (Carbon only)//#if TARGET_CARBON// converts this string into a carbon foundation string with optional pc 2 mac encodingvoid 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_CARBONvoid 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->empty() || 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++ ;    }}#endif// ----------------------------------------------------------------------------// debugging support// ----------------------------------------------------------------------------#if defined(__WXMAC__) && !defined(__DARWIN__) && defined(__MWERKS__) && (__MWERKS__ >= 0x2400)// MetroNub stuff doesn't seem to work in CodeWarrior 5.3 Carbon builds...#ifndef __MetroNubUtils__#include "MetroNubUtils.h"#endif#ifndef __GESTALT__#include <Gestalt.h>#endif#if TARGET_API_MAC_CARBON    #include <CodeFragments.h>    extern "C" long CallUniversalProc(UniversalProcPtr theProcPtr, ProcInfoType procInfo, ...);    ProcPtr gCallUniversalProc_Proc = NULL;#endifstatic MetroNubUserEntryBlock*    gMetroNubEntry = NULL;static long fRunOnce = false;/* ---------------------------------------------------------------------------        IsMetroNubInstalled   --------------------------------------------------------------------------- */Boolean IsMetroNubInstalled(){    if (!fRunOnce)    {        long result, value;        fRunOnce = true;        gMetroNubEntry = NULL;        if (Gestalt(gestaltSystemVersion, &value) == noErr && value < 0x1000)        {            /* look for MetroNub's Gestalt selector */            if (Gestalt(kMetroNubUserSignature, &result) == noErr)            {            #if TARGET_API_MAC_CARBON                if (gCallUniversalProc_Proc == NULL)                {                    CFragConnectionID   connectionID;                    Ptr                 mainAddress;                    Str255              errorString;                    ProcPtr             symbolAddress;                    OSErr               err;                    CFragSymbolClass    symbolClass;                    symbolAddress = NULL;                    err = GetSharedLibrary("\pInterfaceLib", kPowerPCCFragArch, kFindCFrag,                                           &connectionID, &mainAddress, errorString);                    if (err != noErr)                    {                        gCallUniversalProc_Proc = NULL;                        goto end;                    }                    err = FindSymbol(connectionID, "\pCallUniversalProc",                                    (Ptr *) &gCallUniversalProc_Proc, &symbolClass);                    if (err != noErr)                    {                        gCallUniversalProc_Proc = NULL;                        goto end;                    }                }            #endif                {                    MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;                    /* make sure the version of the API is compatible */                    if (block->apiLowVersion <= kMetroNubUserAPIVersion &&                        kMetroNubUserAPIVersion <= block->apiHiVersion)                        gMetroNubEntry = block;        /* success! */                }            }        }    }end:#if TARGET_API_MAC_CARBON    return (gMetroNubEntry != NULL && gCallUniversalProc_Proc != NULL);#else    return (gMetroNubEntry != NULL);#endif}/* ---------------------------------------------------------------------------        IsMWDebuggerRunning                                            [v1 API]   --------------------------------------------------------------------------- */Boolean IsMWDebuggerRunning(){    if (IsMetroNubInstalled())        return CallIsDebuggerRunningProc(gMetroNubEntry->isDebuggerRunning);    else        return false;}/* ---------------------------------------------------------------------------        AmIBeingMWDebugged                                            [v1 API]   --------------------------------------------------------------------------- */Boolean AmIBeingMWDebugged(){    if (IsMetroNubInstalled())        return CallAmIBeingDebuggedProc(gMetroNubEntry->amIBeingDebugged);    else        return false;}extern bool WXDLLEXPORT wxIsDebuggerRunning(){    return IsMWDebuggerRunning() && AmIBeingMWDebugged();}#elseextern bool WXDLLEXPORT wxIsDebuggerRunning(){    return false;}#endif // defined(__WXMAC__) && !defined(__DARWIN__) && (__MWERKS__ >= 0x2400)#endif // wxUSE_GUI

⌨️ 快捷键说明

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