X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..658974ae667919850d1718af60591b40cb7a5954:/include/wx/fontutil.h diff --git a/include/wx/fontutil.h b/include/wx/fontutil.h index 7bb3859bcb..ad966ea606 100644 --- a/include/wx/fontutil.h +++ b/include/wx/fontutil.h @@ -27,8 +27,8 @@ #include "wx/font.h" // for wxFont and wxFontEncoding #if defined(__WXMSW__) -#include -#include "wx/msw/winundef.h" + #include + #include "wx/msw/winundef.h" #endif // ---------------------------------------------------------------------------- @@ -40,30 +40,79 @@ // 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; +#elif defined(__WXPM__) + // OS/2 native structures that define a font + FATTRS fa; + FONTMETRICS fm; + FACENAMEDESC fn; #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; }; // ----------------------------------------------------------------------------