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

📄 fontenum.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
///////////////////////////////////////////////////////////////////////////////// Name:        src/mac/carbon/fontenum.cpp// Purpose:     wxFontEnumerator class for MacOS// Author:      Stefan Csomor// Modified by:// Created:     04/01/98// RCS-ID:      $Id: fontenum.cpp,v 1.21 2006/10/14 15:57:39 SC Exp $// Copyright:   (c) Stefan Csomor// Licence:     wxWindows licence///////////////////////////////////////////////////////////////////////////////// For compilers that support precompilation, includes "wx.h".#include "wx/wxprec.h"#if wxUSE_FONTMAP#include "wx/fontenum.h"#ifndef WX_PRECOMP    #include "wx/font.h"    #include "wx/intl.h"#endif#include "wx/fontutil.h"#include "wx/fontmap.h"#include "wx/encinfo.h"#include "wx/mac/private.h"// ----------------------------------------------------------------------------// wxFontEnumerator// ----------------------------------------------------------------------------bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,                                          bool fixedWidthOnly){    //    // From Apple's QA 1471 http://developer.apple.com/qa/qa2006/qa1471.html    //        ATSFontFamilyIterator theFontFamilyIterator = NULL;    ATSFontFamilyRef theATSFontFamilyRef = 0;    OSStatus status = noErr;        wxArrayString fontFamilies ;        // Create the iterator    status = ATSFontFamilyIteratorCreate(kATSFontContextLocal, nil,nil,                                         kATSOptionFlagsUnRestrictedScope,                                         &theFontFamilyIterator );        wxUint32 macEncoding = wxMacGetSystemEncFromFontEnc(encoding) ;        while (status == noErr)    {        // Get the next font in the iteration.        status = ATSFontFamilyIteratorNext( theFontFamilyIterator, &theATSFontFamilyRef );        if(status == noErr)        { #ifndef __LP64__            // TODO CS : Find replacement            // added CS : avoid showing fonts that won't be displayable            FMFontStyle intrinsicStyle = 0 ;            FMFont fontInstance ;            FMFontFamily fmFamily = FMGetFontFamilyFromATSFontFamilyRef( theATSFontFamilyRef );            status = FMGetFontFromFontFamilyInstance( fmFamily , 0 , &fontInstance , &intrinsicStyle);            if ( status != noErr )            {                status = noErr;                continue ;            }#endif            if ( encoding != wxFONTENCODING_SYSTEM )            {                TextEncoding fontFamiliyEncoding = ATSFontFamilyGetEncoding(theATSFontFamilyRef) ;                if ( fontFamiliyEncoding != macEncoding )                    continue ;            }                        // TODO: determine fixed widths ...            CFStringRef theName = NULL;            ATSFontFamilyGetName(theATSFontFamilyRef, kATSOptionFlagsDefault, &theName);            wxMacCFStringHolder cfName(theName) ;            fontFamilies.Add(cfName.AsString(wxLocale::GetSystemEncoding()));        }        else if (status == kATSIterationScopeModified) // Make sure the font database hasn誸 changed.        {            // reset the iterator            status = ATSFontFamilyIteratorReset (kATSFontContextLocal, nil, nil,                                                 kATSOptionFlagsUnRestrictedScope,                                                 &theFontFamilyIterator);            fontFamilies.Clear() ;        }    }    ATSFontFamilyIteratorRelease(&theFontFamilyIterator);        for ( size_t i = 0 ; i < fontFamilies.Count() ; ++i )    {        if ( OnFacename( fontFamilies[i] ) == false )            break ;    }        return true;}bool wxFontEnumerator::EnumerateEncodings(const wxString& family){    wxFAIL_MSG(wxT("wxFontEnumerator::EnumerateEncodings() not yet implemented"));    return true;}#endif // wxUSE_FONTMAP

⌨️ 快捷键说明

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