Fix wxFontList::FindOrCreateFont() for pixel and fractional point sizes

wxFontList::FindOrCreateFont() worked properly only for integral point sizes.

Make it work also when a pixel size or fractional point size is used.
This commit is contained in:
PB 2023-01-13 21:41:55 +01:00
parent a5403241dc
commit 87b80995a4
3 changed files with 66 additions and 29 deletions

View file

@ -640,7 +640,12 @@ public:
wxFontWeight weight,
bool underline = false,
const wxString& face = wxEmptyString,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
{ return FindOrCreateFont(wxFontInfo(pointSize)
.Family(family)
.Style(style).Weight(weight).Underlined(underline)
.FaceName(face).Encoding(encoding));
}
wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants")
wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight,
@ -650,11 +655,7 @@ public:
{ return FindOrCreateFont(pointSize, (wxFontFamily)family, (wxFontStyle)style,
(wxFontWeight)weight, underline, face, encoding); }
wxFont *FindOrCreateFont(const wxFontInfo& fontInfo)
{ return FindOrCreateFont(fontInfo.GetPointSize(), fontInfo.GetFamily(),
fontInfo.GetStyle(), fontInfo.GetWeight(),
fontInfo.IsUnderlined(), fontInfo.GetFaceName(),
fontInfo.GetEncoding()); }
wxFont *FindOrCreateFont(const wxFontInfo& fontInfo);
};
extern WXDLLIMPEXP_DATA_CORE(wxFontList*) wxTheFontList;