X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4f9297b0eead20a0bfee71df18e0d8f0cbc402fb..adac097759c089b3d47f48c7756ace4f0b8df879:/src/html/m_layout.cpp diff --git a/src/html/m_layout.cpp b/src/html/m_layout.cpp index c026d8cabb..e828f01e1d 100644 --- a/src/html/m_layout.cpp +++ b/src/html/m_layout.cpp @@ -20,7 +20,6 @@ #endif #ifndef WXPRECOMP -#include "wx/wx.h" #endif @@ -36,8 +35,8 @@ TAG_HANDLER_BEGIN(P, "P") TAG_HANDLER_PROC(tag) { - if (m_WParser->GetContainer()->GetFirstCell() != NULL) - { + if (m_WParser->GetContainer()->GetFirstCell() != NULL) + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -56,7 +55,7 @@ TAG_HANDLER_BEGIN(BR, "BR") { int al = m_WParser->GetContainer()->GetAlignHor(); wxHtmlContainerCell *c; - + m_WParser->CloseContainer(); c = m_WParser->OpenContainer(); c->SetAlignHor(al); @@ -77,21 +76,21 @@ TAG_HANDLER_BEGIN(CENTER, "CENTER") wxHtmlContainerCell *c = m_WParser->GetContainer(); m_WParser->SetAlign(wxHTML_ALIGN_CENTER); - if (c->GetFirstCell() != NULL) - { + if (c->GetFirstCell() != NULL) + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } else c->SetAlignHor(wxHTML_ALIGN_CENTER); - if (tag.HasEnding()) - { + if (tag.HasEnding()) + { ParseInner(tag); m_WParser->SetAlign(old); - if (c->GetFirstCell() != NULL) - { + if (c->GetFirstCell() != NULL) + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -113,16 +112,16 @@ TAG_HANDLER_BEGIN(DIV, "DIV") { int old = m_WParser->GetAlign(); wxHtmlContainerCell *c = m_WParser->GetContainer(); - if (c->GetFirstCell() != NULL) - { + if (c->GetFirstCell() != NULL) + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); c = m_WParser->GetContainer(); c->SetAlign(tag); m_WParser->SetAlign(c->GetAlignHor()); } - else - { + else + { c->SetAlign(tag); m_WParser->SetAlign(c->GetAlignHor()); } @@ -130,8 +129,8 @@ TAG_HANDLER_BEGIN(DIV, "DIV") ParseInner(tag); m_WParser->SetAlign(old); - if (c->GetFirstCell() != NULL) - { + if (c->GetFirstCell() != NULL) + { m_WParser->CloseContainer(); m_WParser->OpenContainer(); } @@ -150,16 +149,14 @@ TAG_HANDLER_BEGIN(TITLE, "TITLE") TAG_HANDLER_PROC(tag) { - if (m_WParser->GetWindow()) - { + 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); + if (wfr) + { + const wxString& src = *m_WParser->GetSource(); + wfr->OnSetTitle(src.Mid(tag.GetBeginPos(), + tag.GetEndPos1()-tag.GetBeginPos())); } } return TRUE; @@ -174,37 +171,23 @@ TAG_HANDLER_BEGIN(BODY, "BODY") TAG_HANDLER_PROC(tag) { - unsigned long tmp; wxColour clr; - if (tag.HasParam(wxT("TEXT"))) - { - if (tag.ScanParam(wxT("TEXT"), wxT("#%lX"), &tmp) == 1) - { - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser->SetActualColor(clr); - m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr)); - } - } - - if (tag.HasParam(wxT("LINK"))) - { - if (tag.ScanParam(wxT("LINK"), wxT("#%lX"), &tmp) == 1) - { - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser->SetLinkColor(clr); - } + if (tag.GetParamAsColour(wxT("TEXT"), &clr)) + { + m_WParser->SetActualColor(clr); + m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr)); } - if (tag.HasParam(wxT("BGCOLOR"))) - { - if (tag.ScanParam(wxT("BGCOLOR"), wxT("#%lX"), &tmp) == 1) - { - clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF)); - m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr, wxHTML_CLR_BACKGROUND)); - if (m_WParser->GetWindow() != NULL) - m_WParser->GetWindow()->SetBackgroundColour(clr); - } + if (tag.GetParamAsColour(wxT("LINK"), &clr)) + 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) + m_WParser->GetWindow()->SetBackgroundColour(clr); } return FALSE; } @@ -218,16 +201,16 @@ TAG_HANDLER_BEGIN(BLOCKQUOTE, "BLOCKQUOTE") TAG_HANDLER_PROC(tag) { wxHtmlContainerCell *c; - + 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();