#include "wx/font.h" // for wxFont and wxFontEncoding
#if defined(__WXMSW__)
-#include <windows.h>
-#include "wx/msw/winundef.h"
+ #include <windows.h>
+ #include "wx/msw/winundef.h"
#endif
// ----------------------------------------------------------------------------
// functions, the user code can only get the objects of this type from
// somewhere and pass it somewhere else (possibly save them somewhere using
// ToString() and restore them using FromString())
+//
+// NB: it is a POD currently for max efficiency but if it continues to grow
+// further it might make sense to make it a real class with virtual methods
struct WXDLLEXPORT wxNativeFontInfo
{
-#if defined(__WXGTK__)
+#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;
- int family;
- int style;
- int weight;
+ 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)
bool FromString(const wxString& s);
wxString ToString() const;
+
+ // we also want to present the native font descriptions to the user in some
+ // human-readable form (it is not platform independent neither, but can
+ // hopefully be understood by the user)
+ bool FromUserString(const wxString& s);
+ wxString ToUserString() const;
};
// ----------------------------------------------------------------------------