+public:
+#if wxUSE_PANGO
+ PangoFontDescription *description;
+#elif defined(_WX_X_FONTLIKE)
+ // the members can't be accessed directly as we only parse the
+ // xFontName on demand
+private:
+ // the components of the XLFD
+ wxString fontElements[wxXLFD_MAX];
+
+ // the full XLFD
+ wxString xFontName;
+
+ // true until SetXFontName() is called
+ bool m_isDefault;
+
+ // return true if we have already initialized fontElements
+ inline bool HasElements() const;
+
+public:
+ // init the elements from an XLFD, return true if ok
+ bool FromXFontName(const wxString& xFontName);
+
+ // return false if we were never initialized with a valid XLFD
+ bool IsDefault() const { return m_isDefault; }
+
+ // return the XLFD (using the fontElements if necessary)
+ wxString GetXFontName() const;
+
+ // get the given XFLD component
+ wxString GetXFontComponent(wxXLFDField field) const;
+
+ // change the font component
+ void SetXFontComponent(wxXLFDField field, const wxString& value);
+
+ // set the XFLD
+ void SetXFontName(const wxString& xFontName);
+#elif defined(__WXMSW__)
+ wxNativeFontInfo(const LOGFONT& lf_) : lf(lf_) { }
+
+ LOGFONT lf;
+#elif defined(__WXPM__)
+ // OS/2 native structures that define a font
+ FATTRS fa;
+ FONTMETRICS fm;
+ FACENAMEDESC fn;
+#elif defined(__WXOSX__)
+public:
+ wxNativeFontInfo(const wxNativeFontInfo& info) { Init(info); }
+ wxNativeFontInfo( int size,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
+ bool underlined,
+ const wxString& faceName,
+ wxFontEncoding encoding)
+ { Init(size,family,style,weight,underlined,faceName,encoding); }
+
+ ~wxNativeFontInfo() { Free(); }
+
+ wxNativeFontInfo& operator=(const wxNativeFontInfo& info)
+ {
+ if (this != &info)
+ {
+ Free();
+ Init(info);
+ }
+ return *this;
+ }