X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..52b9ca21ac6c53d841028542771c839590a63db1:/src/msw/font.cpp diff --git a/src/msw/font.cpp b/src/msw/font.cpp index 071d8b0bd9..4fcafbeb96 100644 --- a/src/msw/font.cpp +++ b/src/msw/font.cpp @@ -29,18 +29,27 @@ #endif #ifndef WX_PRECOMP - #include #include "wx/setup.h" #include "wx/list.h" #include "wx/utils.h" #include "wx/app.h" #include "wx/font.h" + #include "wx/log.h" #endif // WX_PRECOMP +#include "wx/fontutil.h" + #include "wx/msw/private.h" IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// the default font size in points +static const int wxDEFAULT_FONT_SIZE = 12; + // ---------------------------------------------------------------------------- // wxFontRefData - the internal description of the font // ---------------------------------------------------------------------------- @@ -52,7 +61,7 @@ friend class WXDLLEXPORT wxFont; public: wxFontRefData() { - Init(12, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE, + Init(wxDEFAULT_FONT_SIZE, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE, "", wxFONTENCODING_DEFAULT); } @@ -158,6 +167,19 @@ void wxFont::Init() wxTheFontList->Append(this); } +bool wxFont::Create(const wxNativeFontInfo& info) +{ + return Create(info.pointSize, info.family, info.style, info.weight, + info.underlined, info.faceName, info.encoding); +} + +wxFont::wxFont(const wxString& fontdesc) +{ + wxNativeFontInfo info; + if ( info.FromString(fontdesc) ) + (void)Create(info); +} + /* Constructor for a font. Note that the real construction is done * in wxDC::SetFont, when information is available about scaling etc. */ @@ -170,6 +192,12 @@ bool wxFont::Create(int pointSize, wxFontEncoding encoding) { UnRef(); + + // wxDEFAULT is a valid value for the font size too so we must treat it + // specially here (otherwise the size would be 70 == wxDEFAULT value) + if ( pointSize == wxDEFAULT ) + pointSize = wxDEFAULT_FONT_SIZE; + m_refData = new wxFontRefData(pointSize, family, style, weight, underlined, faceName, encoding);