1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: fontenum.h 3 // Purpose: wxFontEnumerator class for getting available fonts 4 // Author: Julian Smart, Vadim Zeitlin 5 // Modified by: extended to enumerate more than just font facenames and works 6 // not only on Windows now (VZ) 7 // Created: 04/01/98 8 // RCS-ID: $Id: fontenum.h,v 1.1 2006/12/02 15:58:24 scara Exp $ 9 // Copyright: (c) Julian Smart, Vadim Zeitlin 10 // Licence: wxWindows licence 11 ///////////////////////////////////////////////////////////////////////////// 12 13 #ifndef _WX_FONTENUM_H_ 14 #define _WX_FONTENUM_H_ 15 16 #if defined(__GNUG__) && !defined(__APPLE__) 17 #pragma interface "fontenum.h" 18 #endif 19 20 #include "wx/font.h" 21 22 // ---------------------------------------------------------------------------- 23 // wxFontEnumerator enumerates all available fonts on the system or only the 24 // fonts with given attributes 25 // ---------------------------------------------------------------------------- 26 27 class WXDLLEXPORT wxFontEnumerator 28 { 29 public: wxFontEnumerator()30 wxFontEnumerator() : m_Facenames(NULL), m_Encodings(NULL) { } 31 32 // start enumerating font facenames (either all of them or those which 33 // support the given encoding) - will result in OnFacename() being 34 // called for each available facename (until they are exhausted or 35 // OnFacename returns FALSE) 36 virtual bool EnumerateFacenames 37 ( 38 wxFontEncoding encoding = wxFONTENCODING_SYSTEM, // all 39 bool fixedWidthOnly = FALSE 40 ); 41 42 // enumerate the different encodings either for given font facename or for 43 // all facenames - will result in OnFontEncoding() being called for each 44 // available (facename, encoding) couple 45 virtual bool EnumerateEncodings(const wxString& facename = wxT("")); 46 47 // callbacks which are called after one of EnumerateXXX() functions from 48 // above is invoked - all of them may return FALSE to stop enumeration or 49 // TRUE to continue with it 50 51 // called by EnumerateFacenames OnFacename(const wxString & facename)52 virtual bool OnFacename(const wxString& facename) 53 { 54 if (m_Facenames == NULL) m_Facenames = new wxArrayString; 55 m_Facenames -> Add(facename); 56 return TRUE; 57 } 58 59 // called by EnumerateEncodings OnFontEncoding(const wxString & WXUNUSED (facename),const wxString & encoding)60 virtual bool OnFontEncoding(const wxString& WXUNUSED(facename), 61 const wxString& encoding) 62 { 63 if (m_Encodings == NULL) m_Encodings = new wxArrayString; 64 m_Encodings -> Add(encoding); 65 return TRUE; 66 } 67 68 // convenience function that returns array of facenames. Cannot be called 69 // before EnumerateFacenames. GetFacenames()70 wxArrayString *GetFacenames() 71 { return m_Facenames; } 72 73 // convenience function that returns array of encodings. 74 // Cannot be called before EnumerateEncodings. GetEncodings()75 wxArrayString *GetEncodings() 76 { return m_Encodings; } 77 78 // virtual dtor for the base class ~wxFontEnumerator()79 virtual ~wxFontEnumerator() 80 { 81 if (m_Facenames) delete m_Facenames; 82 if (m_Encodings) delete m_Encodings; 83 } 84 85 private: 86 wxArrayString *m_Facenames, *m_Encodings; 87 }; 88 89 #endif // _WX_FONTENUM_H_ 90