#include "wx/defs.h"
#if wxUSE_HTML && wxUSE_STREAMS
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WXPRECOMP
-#include "wx/wx.h"
#endif
TAG_HANDLER_PROC(tag)
{
- if (m_WParser->GetContainer()->GetFirstCell() != NULL)
- {
+ if (m_WParser->GetContainer()->GetFirstCell() != NULL)
+ {
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
{
int al = m_WParser->GetContainer()->GetAlignHor();
wxHtmlContainerCell *c;
-
+
m_WParser->CloseContainer();
c = m_WParser->OpenContainer();
c->SetAlignHor(al);
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();
}
{
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());
}
ParseInner(tag);
m_WParser->SetAlign(old);
- if (c->GetFirstCell() != NULL)
- {
+ if (c->GetFirstCell() != NULL)
+ {
m_WParser->CloseContainer();
m_WParser->OpenContainer();
}
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;
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;
}
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();
+// 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)
TAGS_MODULE_ADD(TITLE)
TAGS_MODULE_ADD(BODY)
TAGS_MODULE_ADD(BLOCKQUOTE)
+ TAGS_MODULE_ADD(DoNothing)
TAGS_MODULE_END(Layout)