add more methods to wxNativeFontInfo: To/FromUserString and all the

accessor methods and implemented some of them


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2001-12-21 21:39:45 +00:00
parent 7993e67c75
commit ab5fe83396
7 changed files with 399 additions and 98 deletions

View File

@@ -27,8 +27,8 @@
#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
// ----------------------------------------------------------------------------
@@ -40,10 +40,23 @@
// 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
@@ -51,19 +64,50 @@ struct WXDLLEXPORT wxNativeFontInfo
// This is a generic implementation that should work on all ports
// without specific support by the port.
//
#define wNO_NATIVE_FONTINFO
int pointSize;
int family;
int style;
int weight;
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: note that there is no
// GetFamily() because in general it is impossible to get the family for an
// arbitrary native font
int GetPointSize() const;
wxFontStyle GetStyle() const;
wxFontWeight GetWeight() const;
bool GetUnderlined() const;
wxString GetFaceName() 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 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;
};
// ----------------------------------------------------------------------------