X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e765d7ee7309149e8be24e29466a2b2c8ff7b3ae..51fb8678192eaba41e4a446f092c0027d786bd05:/src/common/fontcmn.cpp?ds=sidebyside diff --git a/src/common/fontcmn.cpp b/src/common/fontcmn.cpp index 01587a796f..1bc3151fcb 100644 --- a/src/common/fontcmn.cpp +++ b/src/common/fontcmn.cpp @@ -491,6 +491,29 @@ bool wxFontBase::SetFaceName(const wxString& facename) return true; } +void wxFontBase::SetSymbolicSize(wxFontSymbolicSize size) +{ + SetSymbolicSizeRelativeTo(size, wxNORMAL_FONT->GetPointSize()); +} + +/* static */ +int wxFontBase::AdjustToSymbolicSize(wxFontSymbolicSize size, int base) +{ + // Using a fixed factor (1.2, from CSS2) is a bad idea as explained at + // http://www.w3.org/TR/CSS21/fonts.html#font-size-props so use the values + // from http://style.cleverchimp.com/font_size_intervals/altintervals.html + // instead. + static const float factors[] = { 0.60f, 0.75f, 0.89f, 1.f, 1.2f, 1.5f, 2.f }; + + wxCOMPILE_TIME_ASSERT + ( + WXSIZEOF(factors) == wxFONTSIZE_XX_LARGE - wxFONTSIZE_XX_SMALL + 1, + WrongFontSizeFactorsSize + ); + + return factors[size - wxFONTSIZE_XX_SMALL]*base; +} + wxFont& wxFont::MakeBold() { SetWeight(wxFONTWEIGHT_BOLD); @@ -513,7 +536,20 @@ wxFont& wxFont::MakeItalic() wxFont wxFont::Italic() const { wxFont font(*this); - font.SetStyle(wxFONTSTYLE_ITALIC); + font.MakeItalic(); + return font; +} + +wxFont& wxFont::MakeUnderlined() +{ + SetUnderlined(true); + return *this; +} + +wxFont wxFont::Underlined() const +{ + wxFont font(*this); + font.MakeUnderlined(); return font; } @@ -984,7 +1020,7 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) SetFamily(family); } // NB: the check on the facename is implemented in wxFontBase::SetFaceName - // and not in wxNativeFontInfo::SetFaceName thus we need to explicitely + // and not in wxNativeFontInfo::SetFaceName thus we need to explicitly // call here wxFontEnumerator::IsValidFacename else if ( #if wxUSE_FONTENUM @@ -1003,7 +1039,7 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) if ( !face.empty() ) { // NB: the check on the facename is implemented in wxFontBase::SetFaceName - // and not in wxNativeFontInfo::SetFaceName thus we need to explicitely + // and not in wxNativeFontInfo::SetFaceName thus we need to explicitly // call here wxFontEnumerator::IsValidFacename if ( #if wxUSE_FONTENUM