X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8bd72d9065d076d720a57fdd319f967ecf4e5652..578dc95029e761a59911b7c1bc09f59384d64ddf:/src/html/m_layout.cpp diff --git a/src/html/m_layout.cpp b/src/html/m_layout.cpp index c8fe7096be..e042da6e6a 100644 --- a/src/html/m_layout.cpp +++ b/src/html/m_layout.cpp @@ -15,12 +15,11 @@ #include "wx/defs.h" #if wxUSE_HTML && wxUSE_STREAMS -#ifdef __BORDLANDC__ +#ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WXPRECOMP -#include "wx/wx.h" #endif @@ -37,7 +36,7 @@ TAG_HANDLER_BEGIN(P, "P") TAG_HANDLER_PROC(tag) { if (m_WParser->GetContainer()->GetFirstCell() != NULL) - { + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -78,7 +77,7 @@ TAG_HANDLER_BEGIN(CENTER, "CENTER") m_WParser->SetAlign(wxHTML_ALIGN_CENTER); if (c->GetFirstCell() != NULL) - { + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -86,12 +85,12 @@ TAG_HANDLER_BEGIN(CENTER, "CENTER") c->SetAlignHor(wxHTML_ALIGN_CENTER); if (tag.HasEnding()) - { + { ParseInner(tag); m_WParser->SetAlign(old); if (c->GetFirstCell() != NULL) - { + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -114,7 +113,7 @@ TAG_HANDLER_BEGIN(DIV, "DIV") int old = m_WParser->GetAlign(); wxHtmlContainerCell *c = m_WParser->GetContainer(); if (c->GetFirstCell() != NULL) - { + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); c = m_WParser->GetContainer(); @@ -122,7 +121,7 @@ TAG_HANDLER_BEGIN(DIV, "DIV") m_WParser->SetAlign(c->GetAlignHor()); } else - { + { c->SetAlign(tag); m_WParser->SetAlign(c->GetAlignHor()); } @@ -131,7 +130,7 @@ TAG_HANDLER_BEGIN(DIV, "DIV") m_WParser->SetAlign(old); if (c->GetFirstCell() != NULL) - { + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -151,15 +150,13 @@ TAG_HANDLER_BEGIN(TITLE, "TITLE") TAG_HANDLER_PROC(tag) { if (m_WParser->GetWindow()) - { + { wxHtmlWindow *wfr = (wxHtmlWindow*)(m_WParser->GetWindow()); if (wfr) - { - wxString title = ""; - wxString *src = m_WParser->GetSource(); - - for (int i = tag.GetBeginPos(); i < tag.GetEndPos1(); i++) title += (*src)[(unsigned int) i]; - wfr->OnSetTitle(title); + { + const wxString& src = *m_WParser->GetSource(); + wfr->OnSetTitle(src.Mid(tag.GetBeginPos(), + tag.GetEndPos1()-tag.GetBeginPos())); } } return TRUE; @@ -177,7 +174,7 @@ TAG_HANDLER_BEGIN(BODY, "BODY") wxColour clr; if (tag.GetParamAsColour(wxT("TEXT"), &clr)) - { + { m_WParser->SetActualColor(clr); m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr)); } @@ -186,7 +183,7 @@ TAG_HANDLER_BEGIN(BODY, "BODY") m_WParser->SetLinkColor(clr); if (tag.GetParamAsColour(wxT("BGCOLOR"), &clr)) - { + { m_WParser->GetContainer()->InsertCell( new wxHtmlColourCell(clr, wxHTML_CLR_BACKGROUND)); if (m_WParser->GetWindow() != NULL) @@ -208,12 +205,12 @@ TAG_HANDLER_BEGIN(BLOCKQUOTE, "BLOCKQUOTE") m_WParser->CloseContainer(); c = m_WParser->OpenContainer(); - if (c->GetAlignHor() == wxHTML_ALIGN_RIGHT) + if (c->GetAlignHor() == wxHTML_ALIGN_RIGHT) c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_RIGHT); else c->SetIndent(5 * m_WParser->GetCharWidth(), wxHTML_INDENT_LEFT); - c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP); + c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP); m_WParser->OpenContainer(); ParseInner(tag); c = m_WParser->CloseContainer(); @@ -227,6 +224,14 @@ TAG_HANDLER_END(BLOCKQUOTE) +// Tag handler for tags that we have to ignore, otherwise non-text data +// would show up as text: +TAG_HANDLER_BEGIN(DoNothing, "SCRIPT") + TAG_HANDLER_PROC(tag) + { + return true; + } +TAG_HANDLER_END(DoNothing) @@ -239,6 +244,7 @@ TAGS_MODULE_BEGIN(Layout) TAGS_MODULE_ADD(TITLE) TAGS_MODULE_ADD(BODY) TAGS_MODULE_ADD(BLOCKQUOTE) + TAGS_MODULE_ADD(DoNothing) TAGS_MODULE_END(Layout)