- wxString facename; // may be empty meaning "any"
-
-#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMAC__)
- wxNativeEncodingInfo() { charset = 0; /* ANSI_CHARSET */ }
-
- int charset;
-#elif defined(_WX_X_FONTLIKE)
- wxString xregistry,
- xencoding;
-#else
- #error "Unsupported toolkit"
-#endif
-
- // this struct is saved in config by wxFontMapper, so it should know to
- // serialise itself (implemented in platform-specific code)
+#if defined(__WXGTK__) || defined(__WXMOTIF__)
+ // the components of the XLFD
+ wxString fontElements[14];
+
+ // the full XLFD
+ wxString xFontName;
+
+ // init the elements from an XLFD, return TRUE if ok
+ bool FromXFontName(const wxString& xFontName);
+
+ // generate an XLFD using the fontElements
+ wxString GetXFontName() const;
+#elif defined(__WXMSW__)
+ LOGFONT lf;
+#else // other platforms
+ //
+ // This is a generic implementation that should work on all ports
+ // without specific support by the port.
+ //
+ #define wxNO_NATIVE_FONTINFO
+
+ int pointSize;
+ wxFontFamily family;
+ wxFontStyle style;
+ wxFontWeight weight;
+ bool underlined;
+ wxString faceName;
+ wxFontEncoding encoding;
+#endif // platforms
+
+ // default ctor (default copy ctor is ok)
+ wxNativeFontInfo() { Init(); }
+
+ // reset to the default state
+ void Init();
+
+ // accessors and modifiers for the font elements
+ int GetPointSize() const;
+ wxFontStyle GetStyle() const;
+ wxFontWeight GetWeight() const;
+ bool GetUnderlined() const;
+ wxString GetFaceName() const;
+ wxFontFamily GetFamily() const;
+ wxFontEncoding GetEncoding() const;
+
+ void SetPointSize(int pointsize);
+ void SetStyle(wxFontStyle style);
+ void SetWeight(wxFontWeight weight);
+ void SetUnderlined(bool underlined);
+ void SetFaceName(wxString facename);
+ void SetFamily(wxFontFamily family);
+ void SetEncoding(wxFontEncoding encoding);
+
+ // it is important to be able to serialize wxNativeFontInfo objects to be
+ // able to store them (in config file, for example)