X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7beba2fc73283f5b750227459da57e66bcd475f5..5b9003ae3213f487fa3be74804b426a8ad0db323:/include/wx/fontenum.h diff --git a/include/wx/fontenum.h b/include/wx/fontenum.h index 5b82956ddd..6229a3db25 100644 --- a/include/wx/fontenum.h +++ b/include/wx/fontenum.h @@ -13,11 +13,8 @@ #ifndef _WX_FONTENUM_H_ #define _WX_FONTENUM_H_ -#ifdef __GNUG__ - #pragma interface "fontenum.h" -#endif - -#include "wx/font.h" +#include "wx/fontenc.h" +#include "wx/arrstr.h" // ---------------------------------------------------------------------------- // wxFontEnumerator enumerates all available fonts on the system or only the @@ -27,36 +24,65 @@ class WXDLLEXPORT wxFontEnumerator { public: + wxFontEnumerator() : m_Facenames(NULL), m_Encodings(NULL) { } + // 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 // all facenames - will result in OnFontEncoding() being called for each // available (facename, encoding) couple - virtual bool EnumerateEncodings(const wxString& facename = wxT("")); + 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& WXUNUSED(facename)) - { return FALSE; } + virtual bool OnFacename(const wxString& facename) + { + if (m_Facenames == NULL) m_Facenames = new wxArrayString; + m_Facenames -> Add(facename); + return true; + } // called by EnumerateEncodings virtual bool OnFontEncoding(const wxString& WXUNUSED(facename), - const wxString& WXUNUSED(encoding)) - { return FALSE; } + 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() { } + virtual ~wxFontEnumerator() + { + if (m_Facenames) delete m_Facenames; + if (m_Encodings) delete m_Encodings; + } + +private: + wxArrayString *m_Facenames, *m_Encodings; + + DECLARE_NO_COPY_CLASS(wxFontEnumerator) }; #endif // _WX_FONTENUM_H_