X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c44a49b85215955e41efbb4c51c998367cb18896..062dfc9a96dc9e796c53544f41ff92dc47f26e82:/src/html/winpars.cpp diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp index 7f3fc64e50..916c43a989 100644 --- a/src/html/winpars.cpp +++ b/src/html/winpars.cpp @@ -559,6 +559,31 @@ void wxHtmlWinParser::SetDC(wxDC *dc, double pixel_scale, double font_scale) m_FontScale = font_scale; } +void wxHtmlWinParser::SetFontPointSize(int pt) +{ + if (pt <= m_FontsSizes[0]) + m_FontSize = 1; + else if (pt >= m_FontsSizes[6]) + m_FontSize = 7; + else + { + // Find the font closest to the given value with a simple linear search + // (binary search is not worth it here for so small number of elements) + for ( int n = 0; n < 6; n++ ) + { + if ( (pt > m_FontsSizes[n]) && (pt <= m_FontsSizes[n + 1]) ) + { + // In this range, find out which entry it is closest to + if ( (pt - m_FontsSizes[n]) < (m_FontsSizes[n + 1] - pt) ) + m_FontSize = n; + else + m_FontSize = n + 1; + + break; + } + } + } +} wxFont* wxHtmlWinParser::CreateCurrentFont() { @@ -581,8 +606,7 @@ wxFont* wxHtmlWinParser::CreateCurrentFont() #endif )) { - delete *fontptr; - *fontptr = NULL; + wxDELETE(*fontptr); } if (*fontptr == NULL) @@ -644,11 +668,7 @@ void wxHtmlWinParser::SetInputEncoding(wxFontEncoding enc) m_nbsp = 0; m_InputEnc = m_OutputEnc = wxFONTENCODING_DEFAULT; - if (m_EncConv) - { - delete m_EncConv; - m_EncConv = NULL; - } + wxDELETE(m_EncConv); if (enc == wxFONTENCODING_DEFAULT) return; @@ -713,8 +733,7 @@ void wxHtmlWinParser::SetInputEncoding(wxFontEncoding enc) wxLogError(_("Failed to display HTML document in %s encoding"), wxFontMapper::GetEncodingName(enc).c_str()); m_InputEnc = m_OutputEnc = wxFONTENCODING_DEFAULT; - delete m_EncConv; - m_EncConv = NULL; + wxDELETE(m_EncConv); } } #endif