📄 utils.cpp
字号:
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_BASEwxString 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 : enc = wxFONTENCODING_CP949; break ; case kTextEncodingDOSChineseTrad : enc = wxFONTENCODING_CP950; break ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -