added support for <sub> and <sup> to wxHTML (based on patch #1263152)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2005-12-27 00:00:39 +00:00
parent 43056e6ed5
commit 3c115835b3
10 changed files with 154 additions and 13 deletions

View File

@@ -392,6 +392,42 @@ TAG_HANDLER_END(BLOCKQUOTE)
TAG_HANDLER_BEGIN(SUBSUP, "SUB,SUP")
TAG_HANDLER_PROC(tag)
{
bool issub = (tag.GetName() == wxT("SUB"));
wxHtmlScriptMode oldmode = m_WParser->GetScriptMode();
int oldbase = m_WParser->GetScriptBaseline();
int oldsize = m_WParser->GetFontSize();
wxHtmlContainerCell *cont = m_WParser->GetContainer();
wxHtmlCell *c = cont->GetLastChild();
m_WParser->SetScriptMode(issub ? wxHTML_SCRIPT_SUB : wxHTML_SCRIPT_SUP);
m_WParser->SetScriptBaseline(oldbase + c->GetScriptBaseline());
// select smaller font
m_WParser->SetFontSize(m_WParser->GetFontSize()-2);
cont->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
ParseInner(tag);
// restore font size
m_WParser->SetFontSize(oldsize);
m_WParser->GetContainer()->InsertCell(
new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
// restore base and alignment
m_WParser->SetScriptBaseline(oldbase);
m_WParser->SetScriptMode(oldmode);
return true;
}
TAG_HANDLER_END(SUBSUP)
// Tag handler for tags that we have to ignore, otherwise non-text data
// would show up as text:
TAG_HANDLER_BEGIN(DoNothing, "SCRIPT")
@@ -405,6 +441,8 @@ TAG_HANDLER_END(DoNothing)
TAGS_MODULE_BEGIN(Layout)
TAGS_MODULE_ADD(P)
@@ -414,6 +452,7 @@ TAGS_MODULE_BEGIN(Layout)
TAGS_MODULE_ADD(TITLE)
TAGS_MODULE_ADD(BODY)
TAGS_MODULE_ADD(BLOCKQUOTE)
TAGS_MODULE_ADD(SUBSUP)
TAGS_MODULE_ADD(DoNothing)
TAGS_MODULE_END(Layout)