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

📄 utils.cpp

📁 Wxpython Implemented on Windows CE, Source code
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    GetAvailableWindowPositioningBounds( GetMainDevice() , &r ) ;
    if ( x )
        *x = r.left ;
    if ( y )
        *y = r.top ;
    if ( width )
        *width = r.right - r.left ;
    if ( height )
        *height = r.bottom - r.top ;
#else
    BitMap screenBits;
    GetQDGlobalsScreenBits( &screenBits );

    if (x) *x = 0;
    if (y) *y = 0;

    if (width != NULL) {
        *width = screenBits.bounds.right - screenBits.bounds.left  ;
    }
    if (height != NULL) {
        *height = screenBits.bounds.bottom - screenBits.bounds.top ;
    }

    SInt16 mheight ;
#if TARGET_CARBON
    GetThemeMenuBarHeight( &mheight ) ;
#else
    mheight = LMGetMBarHeight() ;
#endif
    if (height != NULL) {
        *height -= mheight ;
    }
    if (y)
        *y = mheight ;
#endif
}

wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
{
    return wxGenericFindWindowAtPoint(pt);
}

#endif // wxUSE_GUI

#if wxUSE_BASE

wxString wxGetOsDescription()
{
#ifdef WXWIN_OS_DESCRIPTION
    // use configure generated description if available
    return wxString(wxT("MacOS (")) + wxT(WXWIN_OS_DESCRIPTION) + wxString(wxT(")"));
#else
    return wxT("MacOS") ; //TODO:define further
#endif
}

#ifndef __DARWIN__
wxChar *wxGetUserHome (const wxString& user)
{
    // TODO
    return NULL;
}

bool wxGetDiskSpace(const wxString& path, wxDiskspaceSize_t *pTotal, wxDiskspaceSize_t *pFree)
{
    if ( path.empty() )
        return false;

    wxString p = path ;
    if (p[0u] == ':' ) {
      p = wxGetCwd() + p ;
    }

    int pos = p.Find(':') ;
    if ( pos != wxNOT_FOUND ) {
      p = p.Mid(1,pos) ;
    }

    p = p + wxT(":") ;

    Str255 volumeName ;
    XVolumeParam pb ;

    wxMacStringToPascal( p  , volumeName ) ;
    OSErr err = XGetVolumeInfoNoName( volumeName , 0 , &pb ) ;
    if ( err == noErr ) {
      if ( pTotal ) {
        (*pTotal) = wxDiskspaceSize_t( pb.ioVTotalBytes ) ;
      }
      if ( pFree ) {
        (*pFree) = wxDiskspaceSize_t( pb.ioVFreeBytes ) ;
      }
    }

    return err == noErr ;
}
#endif // !__DARWIN__

//---------------------------------------------------------------------------
// wxMac Specific utility functions
//---------------------------------------------------------------------------

void wxMacStringToPascal( const wxString&from , StringPtr to )
{
    wxCharBuffer buf = from.mb_str( wxConvLocal ) ;
    int len = strlen(buf) ;

    if ( len > 255 )
        len = 255 ;
    to[0] = len ;
    memcpy( (char*) &to[1] , buf , len ) ;
}

wxString wxMacMakeStringFromPascal( ConstStringPtr from )
{
    return wxString( (char*) &from[1] , wxConvLocal , from[0] ) ;
}


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 :

⌨️ 快捷键说明

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