X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f68e16c5fcf53c411742c8338a290addc5fb4b62..daa3509726f9590cecc85f37ef882670667f0650:/src/html/m_span.cpp?ds=inline diff --git a/src/html/m_span.cpp b/src/html/m_span.cpp index 6df438311f..025593e19e 100644 --- a/src/html/m_span.cpp +++ b/src/html/m_span.cpp @@ -36,6 +36,9 @@ TAG_HANDLER_BEGIN(SPAN, "SPAN" ) wxColour oldclr = m_WParser->GetActualColor(); int oldsize = m_WParser->GetFontSize(); int oldbold = m_WParser->GetFontBold(); + int olditalic = m_WParser->GetFontItalic(); + int oldunderlined = m_WParser->GetFontUnderlined(); + wxString oldfontface = m_WParser->GetFontFace(); // Load any style parameters wxHtmlStyleParams styleParams(tag); @@ -92,22 +95,60 @@ TAG_HANDLER_BEGIN(SPAN, "SPAN" ) } } - ParseInner(tag); + str = styleParams.GetParam(wxS("font-style")); + if ( !str.empty() ) + { + // "oblique" and "italic" are more or less the same. + // "inherit" (using the parent font) is not supported. + if ( str == wxS("oblique") || str == wxS("italic") ) + { + m_WParser->SetFontItalic(true); + m_WParser->GetContainer()->InsertCell( + new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + } + else if ( str == wxS("normal") ) + { + m_WParser->SetFontItalic(false); + m_WParser->GetContainer()->InsertCell( + new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + } + } - if (oldbold != m_WParser->GetFontBold()) + str = styleParams.GetParam(wxS("text-decoration")); + if ( !str.empty() ) { - m_WParser->SetFontBold(oldbold); - m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + // Only underline is supported. + if ( str == wxS("underline") ) + { + m_WParser->SetFontUnderlined(true); + m_WParser->GetContainer()->InsertCell( + new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + } } - if (oldsize != m_WParser->GetFontSize()) + + str = styleParams.GetParam(wxS("font-family")); + if ( !str.empty() ) { - m_WParser->SetFontSize(oldsize); - m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + m_WParser->SetFontFace(str); + m_WParser->GetContainer()->InsertCell( + new wxHtmlFontCell(m_WParser->CreateCurrentFont())); } + + ParseInner(tag); + + m_WParser->SetFontSize(oldsize); + m_WParser->SetFontBold(oldbold); + m_WParser->SetFontUnderlined(oldunderlined); + m_WParser->SetFontFace(oldfontface); + m_WParser->SetFontItalic(olditalic); + m_WParser->GetContainer()->InsertCell( + new wxHtmlFontCell(m_WParser->CreateCurrentFont())); + if (oldclr != m_WParser->GetActualColor()) { m_WParser->SetActualColor(oldclr); - m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr)); + m_WParser->GetContainer()->InsertCell( + new wxHtmlColourCell(oldclr)); } return true;