X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a83f860948059b0273b5cc6d9e43fadad3ebfca..f40377bedc00313caf5af175c9dcb00fe4846ba3:/src/common/fontcmn.cpp diff --git a/src/common/fontcmn.cpp b/src/common/fontcmn.cpp index 4010d6b7bc..27154e9953 100644 --- a/src/common/fontcmn.cpp +++ b/src/common/fontcmn.cpp @@ -214,7 +214,7 @@ void wxFontBase::SetPixelSize( const wxSize& pixelSize ) // NOTE: this algorithm for adjusting the font size is used by all // implementations of wxFont except under wxMSW and wxGTK where // native support to font creation using pixel-size is provided. - + int largestGood = 0; int smallestBad = 0; @@ -284,6 +284,8 @@ void wxFontBase::DoSetNativeFontInfo(const wxNativeFontInfo& info) wxString wxFontBase::GetNativeFontInfoDesc() const { + wxCHECK_MSG( IsOk(), wxEmptyString, wxT("invalid font") ); + wxString fontDesc; const wxNativeFontInfo *fontInfo = GetNativeFontInfo(); if ( fontInfo ) @@ -301,6 +303,8 @@ wxString wxFontBase::GetNativeFontInfoDesc() const wxString wxFontBase::GetNativeFontInfoUserDesc() const { + wxCHECK_MSG( IsOk(), wxEmptyString, wxT("invalid font") ); + wxString fontDesc; const wxNativeFontInfo *fontInfo = GetNativeFontInfo(); if ( fontInfo ) @@ -363,6 +367,20 @@ bool wxFontBase::operator==(const wxFont& font) const ); } +wxFontFamily wxFontBase::GetFamily() const +{ + wxCHECK_MSG( IsOk(), wxFONTFAMILY_UNKNOWN, wxS("invalid font") ); + + // Don't return wxFONTFAMILY_UNKNOWN from here because it prevents the code + // like wxFont(size, wxNORMAL_FONT->GetFamily(), ...) from working (see + // #12330). This is really just a hack but it allows to keep compatibility + // and doesn't really have any bad drawbacks so do this until someone comes + // up with a better idea. + const wxFontFamily family = DoGetFamily(); + + return family == wxFONTFAMILY_UNKNOWN ? wxFONTFAMILY_DEFAULT : family; +} + wxString wxFontBase::GetFamilyString() const { wxCHECK_MSG( IsOk(), "wxFONTFAMILY_DEFAULT", "invalid font" ); @@ -804,7 +822,7 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) token.Trim(true).Trim(false).MakeLower(); if (insideQuotes) { - if (token.StartsWith("'") || + if (token.StartsWith("'") || token.EndsWith("'")) { insideQuotes = false; @@ -910,7 +928,7 @@ bool wxNativeFontInfo::FromUserString(const wxString& s) family = wxFONTFAMILY_TELETYPE; else return false; - + SetFamily(family); } // NB: the check on the facename is implemented in wxFontBase::SetFaceName