Fix wxFont construction from default wxFontInfo in wxMSW.

Don't use -1 as the real point size.

Also update the font sample to allow testing such font.

Closes #16468.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2014-08-28 12:55:02 +00:00
parent ce9fa570f0
commit eaf46c3213
2 changed files with 11 additions and 2 deletions

View File

@ -111,6 +111,7 @@ public:
void OnStrikethrough(wxCommandEvent& event);
void OnwxPointerFont(wxCommandEvent& event);
void OnFontDefault(wxCommandEvent& event);
void OnwxSystemSettingsFont(wxCommandEvent& event);
void OnTestTextValue(wxCommandEvent& event);
@ -189,6 +190,7 @@ enum
Font_wxSMALL_FONT,
Font_wxITALIC_FONT,
Font_wxSWISS_FONT,
Font_wxFont_Default,
Font_Standard,
// wxSystemSettings::GetFont possible objects:
@ -243,6 +245,7 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(Font_wxSMALL_FONT, MyFrame::OnwxPointerFont)
EVT_MENU(Font_wxITALIC_FONT, MyFrame::OnwxPointerFont)
EVT_MENU(Font_wxSWISS_FONT, MyFrame::OnwxPointerFont)
EVT_MENU(Font_wxFont_Default, MyFrame::OnFontDefault)
EVT_MENU(Font_wxSYS_OEM_FIXED_FONT, MyFrame::OnwxSystemSettingsFont)
EVT_MENU(Font_wxSYS_ANSI_FIXED_FONT, MyFrame::OnwxSystemSettingsFont)
@ -360,6 +363,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
menuStdFonts->Append(Font_wxSMALL_FONT, wxT("wxSMALL_FONT"), wxT("Small font used by wxWidgets"));
menuStdFonts->Append(Font_wxITALIC_FONT, wxT("wxITALIC_FONT"), wxT("Italic font used by wxWidgets"));
menuStdFonts->Append(Font_wxSWISS_FONT, wxT("wxSWISS_FONT"), wxT("Swiss font used by wxWidgets"));
menuStdFonts->Append(Font_wxFont_Default, wxT("wxFont()"), wxT("wxFont constructed from default wxFontInfo"));
menuSelect->Append(Font_Standard, wxT("Standar&d fonts"), menuStdFonts);
wxMenu *menuSettingFonts = new wxMenu;
@ -780,6 +784,11 @@ void MyFrame::OnwxPointerFont(wxCommandEvent& event)
DoChangeFont(font);
}
void MyFrame::OnFontDefault(wxCommandEvent& WXUNUSED(event))
{
DoChangeFont(wxFont(wxFontInfo()));
}
void MyFrame::OnwxSystemSettingsFont(wxCommandEvent& event)
{
wxFont font;

View File

@ -360,7 +360,7 @@ void wxFontRefData::Init(int pointSize,
if ( m_sizeUsingPixels )
SetPixelSize(pixelSize);
else
SetPointSize(pointSize);
SetPointSize(pointSize == -1 ? wxNORMAL_FONT->GetPointSize() : pointSize);
SetStyle(style);
SetWeight(weight);
@ -841,7 +841,7 @@ bool wxFont::DoCreate(int pointSize,
// 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 == -1 )
if ( pointSize == wxDEFAULT )
{
pointSize = wxNORMAL_FONT->GetPointSize();
}