X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/11c7d5b6d1cb54d5ffdc11d8ff092b41e225bfb6..bdb310a72026e7781cda51fd3fc353cbec9151ed:/src/msw/font.cpp diff --git a/src/msw/font.cpp b/src/msw/font.cpp index 33c95ced7f..472b616884 100644 --- a/src/msw/font.cpp +++ b/src/msw/font.cpp @@ -39,13 +39,14 @@ #include "wx/msw/private.h" -#if !USE_SHARED_LIBRARIES - IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) +IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) - #if wxUSE_PORTABLE_FONTS_IN_MSW - IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject) - #endif -#endif +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// the default font size in points +static const int wxDEFAULT_FONT_SIZE = 12; // ---------------------------------------------------------------------------- // wxFontRefData - the internal description of the font @@ -58,7 +59,7 @@ friend class WXDLLEXPORT wxFont; public: wxFontRefData() { - Init(12, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE, + Init(wxDEFAULT_FONT_SIZE, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE, "", wxFONTENCODING_DEFAULT); } @@ -149,7 +150,7 @@ wxFontRefData::~wxFontRefData() { if ( !::DeleteObject((HFONT) m_hFont) ) { - wxLogLastError("DeleteObject(font)"); + wxLogLastError(wxT("DeleteObject(font)")); } } } @@ -176,6 +177,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); @@ -200,17 +207,16 @@ bool wxFont::RealizeResource() { // VZ: the old code returned FALSE in this case, but it doesn't seem // to make sense because the font _was_ created - wxLogDebug(wxT("Calling wxFont::RealizeResource() twice")); - return TRUE; } LOGFONT lf; wxFillLogFont(&lf, this); M_FONTDATA->m_hFont = (WXHFONT)::CreateFontIndirect(&lf); + M_FONTDATA->m_faceName = lf.lfFaceName; if ( !M_FONTDATA->m_hFont ) { - wxLogLastError("CreateFont"); + wxLogLastError(wxT("CreateFont")); return FALSE; } @@ -224,7 +230,7 @@ bool wxFont::FreeResource(bool force) { if ( !::DeleteObject((HFONT) M_FONTDATA->m_hFont) ) { - wxLogLastError("DeleteObject(font)"); + wxLogLastError(wxT("DeleteObject(font)")); } M_FONTDATA->m_hFont = 0; @@ -235,6 +241,11 @@ bool wxFont::FreeResource(bool force) } WXHANDLE wxFont::GetResourceHandle() +{ + return GetHFONT(); +} + +WXHFONT wxFont::GetHFONT() const { if ( !M_FONTDATA ) return 0;