X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/36f210c81e5f8cdc65b80e57aad0c11bf2d08e63..89352653828ae50feab93f5e0fce628ea840927e:/include/wx/fontenum.h diff --git a/include/wx/fontenum.h b/include/wx/fontenum.h index 97352c7f77..29127061a8 100644 --- a/include/wx/fontenum.h +++ b/include/wx/fontenum.h @@ -1,9 +1,9 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: fontenum.h +// Name: wx/fontenum.h // Purpose: wxFontEnumerator class for getting available fonts // Author: Julian Smart, Vadim Zeitlin -// Modified by: extended to enumerate more than just font families and work ot -// only on Windows (VZ) +// Modified by: extended to enumerate more than just font facenames and works +// not only on Windows now (VZ) // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart, Vadim Zeitlin @@ -13,9 +13,12 @@ #ifndef _WX_FONTENUM_H_ #define _WX_FONTENUM_H_ -#ifdef __GNUG__ - #pragma interface "fontenum.h" -#endif +#include "wx/defs.h" + +#if wxUSE_FONTENUM + +#include "wx/fontenc.h" +#include "wx/arrstr.h" // ---------------------------------------------------------------------------- // wxFontEnumerator enumerates all available fonts on the system or only the @@ -25,36 +28,62 @@ class WXDLLEXPORT wxFontEnumerator { public: - // start enumerating font families (either all of them or those which - // support the given encoding) - will result in OnFontFamily() being - // called for each available font family (until they are exhausted or - // OnFontFamily returns FALSE) - virtual bool EnumerateFamilies + wxFontEnumerator() {} + + // virtual dtor for the base class + virtual ~wxFontEnumerator() {} + + // start enumerating font facenames (either all of them or those which + // support the given encoding) - will result in OnFacename() being + // called for each available facename (until they are exhausted or + // OnFacename returns false) + virtual bool EnumerateFacenames ( wxFontEncoding encoding = wxFONTENCODING_SYSTEM, // all - bool fixedWidthOnly = FALSE + bool fixedWidthOnly = false ); - // enumerate the different encodings either for given font family or for - // all font families - will result in OnFontEncoding() being called for - // each available (family, encoding) couple - virtual bool EnumerateEncodings(const wxString& family = wxT("")); + // enumerate the different encodings either for given font facename or for + // all facenames - will result in OnFontEncoding() being called for each + // available (facename, encoding) couple + virtual bool EnumerateEncodings(const wxString& facename = wxEmptyString); // callbacks which are called after one of EnumerateXXX() functions from - // above is invoked - all of them may return FALSE to stop enumeration or - // TRUE to continue with it + // above is invoked - all of them may return false to stop enumeration or + // true to continue with it - // called by EnumerateFamilies - virtual bool OnFontFamily(const wxString& WXUNUSED(family)) - { return FALSE; } + // called by EnumerateFacenames + virtual bool OnFacename(const wxString& WXUNUSED(facename)) + { return true; } // called by EnumerateEncodings - virtual bool OnFontEncoding(const wxString& WXUNUSED(family), + virtual bool OnFontEncoding(const wxString& WXUNUSED(facename), const wxString& WXUNUSED(encoding)) - { return FALSE; } + { return true; } - // virtual dtor for the base class - virtual ~wxFontEnumerator() { } + + + // convenience function that returns array of facenames. + static wxArrayString + GetFacenames(wxFontEncoding encoding = wxFONTENCODING_SYSTEM, // all + bool fixedWidthOnly = false); + + // convenience function that returns array of all available encodings. + static wxArrayString GetEncodings(const wxString& facename = wxEmptyString); + + // convenience function that returns true if the given face name exist + // in the user's system + static bool IsValidFacename(const wxString &str); + +private: +#ifdef wxHAS_UTF8_FONTS + // helper for ports that only use UTF-8 encoding natively + bool EnumerateEncodingsUTF8(const wxString& facename); +#endif + + DECLARE_NO_COPY_CLASS(wxFontEnumerator) }; +#endif // wxUSE_FONTENUM + #endif // _WX_FONTENUM_H_