X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..32e806fe7f0ca4ccee9924f4ded0a8be05de2b89:/include/wx/fontenum.h diff --git a/include/wx/fontenum.h b/include/wx/fontenum.h index 797da7438c..051ee572c1 100644 --- a/include/wx/fontenum.h +++ b/include/wx/fontenum.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// 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 facenames and works @@ -7,15 +7,15 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart, Vadim Zeitlin -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FONTENUM_H_ #define _WX_FONTENUM_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "fontenum.h" -#endif +#include "wx/defs.h" + +#if wxUSE_FONTENUM #include "wx/fontenc.h" #include "wx/arrstr.h" @@ -25,19 +25,22 @@ // fonts with given attributes // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFontEnumerator +class WXDLLIMPEXP_CORE wxFontEnumerator { public: - wxFontEnumerator() : m_Facenames(NULL), m_Encodings(NULL) { } + 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) + // 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 facename or for @@ -46,47 +49,41 @@ public: 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 EnumerateFacenames - virtual bool OnFacename(const wxString& facename) - { - if (m_Facenames == NULL) m_Facenames = new wxArrayString; - m_Facenames -> Add(facename); - return TRUE; - } + virtual bool OnFacename(const wxString& WXUNUSED(facename)) + { return true; } // called by EnumerateEncodings virtual bool OnFontEncoding(const wxString& WXUNUSED(facename), - const wxString& encoding) - { - if (m_Encodings == NULL) m_Encodings = new wxArrayString; - m_Encodings -> Add(encoding); - return TRUE; - } - - // convenience function that returns array of facenames. Cannot be called - // before EnumerateFacenames. - wxArrayString *GetFacenames() - { return m_Facenames; } - - // convenience function that returns array of encodings. - // Cannot be called before EnumerateEncodings. - wxArrayString *GetEncodings() - { return m_Encodings; } - - // virtual dtor for the base class - virtual ~wxFontEnumerator() - { - if (m_Facenames) delete m_Facenames; - if (m_Encodings) delete m_Encodings; - } - + const wxString& WXUNUSED(encoding)) + { return true; } + + + + // 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: - wxArrayString *m_Facenames, *m_Encodings; +#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) + wxDECLARE_NO_COPY_CLASS(wxFontEnumerator); }; +#endif // wxUSE_FONTENUM + #endif // _WX_FONTENUM_H_