// Author: Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) 1999 Vaclav Slavik
-// Licence: wxWindows Licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation
#endif
FORCE_LINK_ME(m_layout)
-
-#include <stdlib.h> // bsearch()
+#ifdef __WXWINCE__
+ #include "wx/msw/wince/missing.h" // for bsearch()
+#else
+ #include <stdlib.h> // bsearch()
+#endif
//-----------------------------------------------------------------------------
// wxHtmlPageBreakCell
// array wxHtmlPrintout::m_PageBreaks of pagebreaks already set, and
// set a new one only if it's not in that array.
-class WXDLLEXPORT wxHtmlPageBreakCell : public wxHtmlCell
+class wxHtmlPageBreakCell : public wxHtmlCell
{
public:
wxHtmlPageBreakCell() {}
void Draw(wxDC& WXUNUSED(dc),
int WXUNUSED(x), int WXUNUSED(y),
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
- wxHtmlRenderingState& WXUNUSED(state)) {}
+ wxHtmlRenderingInfo& WXUNUSED(info)) {}
private:
DECLARE_NO_COPY_CLASS(wxHtmlPageBreakCell)
};
// Comparison routine for bsearch into an int* array of pagebreaks.
-static int integer_compare(void const* i0, void const* i1)
+extern "C" int wxCMPFUNC_CONV wxInteger_compare(void const* i0, void const* i1)
{
return *(int*)i0 - *(int*)i1;
}
// zero plus one element for each page.
int* where = (int*) bsearch(&total_height, known_pagebreaks,
1 + number_of_pages, sizeof(int),
- integer_compare);
+ wxInteger_compare);
// Add a pagebreak only if there isn't one already set here.
if(NULL != where)
{
}
TAG_HANDLER_BEGIN(P, "P")
+ TAG_HANDLER_CONSTR(P) { }
TAG_HANDLER_PROC(tag)
{
- if (m_WParser->GetContainer()->GetFirstCell() != NULL)
+ if (m_WParser->GetContainer()->GetFirstChild() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
TAG_HANDLER_BEGIN(BR, "BR")
+ TAG_HANDLER_CONSTR(BR) { }
TAG_HANDLER_PROC(tag)
{
TAG_HANDLER_BEGIN(CENTER, "CENTER")
+ TAG_HANDLER_CONSTR(CENTER) { }
TAG_HANDLER_PROC(tag)
{
wxHtmlContainerCell *c = m_WParser->GetContainer();
m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
- if (c->GetFirstCell() != NULL)
+ if (c->GetFirstChild() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
ParseInner(tag);
m_WParser->SetAlign(old);
- if (c->GetFirstCell() != NULL)
+ if (c->GetFirstChild() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
TAG_HANDLER_BEGIN(DIV, "DIV")
+ TAG_HANDLER_CONSTR(DIV) { }
TAG_HANDLER_PROC(tag)
{
{
int old = m_WParser->GetAlign();
wxHtmlContainerCell *c = m_WParser->GetContainer();
- if (c->GetFirstCell() != NULL)
+ if (c->GetFirstChild() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
ParseInner(tag);
m_WParser->SetAlign(old);
- if (c->GetFirstCell() != NULL)
+ if (c->GetFirstChild() != NULL)
{
m_WParser->CloseContainer();
m_WParser->OpenContainer();
else
c->SetAlignHor(old);
- return TRUE;
+ return true;
}
else
{
- return FALSE;
+ // Same as BR
+ int al = m_WParser->GetContainer()->GetAlignHor();
+ wxHtmlContainerCell *c;
+
+ m_WParser->CloseContainer();
+ c = m_WParser->OpenContainer();
+ c->SetAlignHor(al);
+ c->SetAlign(tag);
+ c->SetMinHeight(m_WParser->GetCharHeight());
+ return false;
}
}
TAG_HANDLER_BEGIN(TITLE, "TITLE")
+ TAG_HANDLER_CONSTR(TITLE) { }
TAG_HANDLER_PROC(tag)
{
wxHtmlWindow *wfr = (wxHtmlWindow*)(m_WParser->GetWindow());
if (wfr)
{
- const wxString& src = *m_WParser->GetSource();
- wfr->OnSetTitle(src.Mid(tag.GetBeginPos(),
- tag.GetEndPos1()-tag.GetBeginPos()));
+ wxString title = m_WParser->GetSource()->Mid(
+ tag.GetBeginPos(),
+ tag.GetEndPos1()-tag.GetBeginPos());
+#if !wxUSE_UNICODE
+ wxCSConv conv(m_WParser->GetInputEncoding());
+ title = wxString(title.wc_str(conv), wxConvLocal);
+#endif
+ title = m_WParser->GetEntitiesParser()->Parse(title);
+ wfr->OnSetTitle(title);
}
}
return TRUE;
TAG_HANDLER_BEGIN(BODY, "BODY")
+ TAG_HANDLER_CONSTR(BODY) { }
TAG_HANDLER_PROC(tag)
{
TAG_HANDLER_BEGIN(BLOCKQUOTE, "BLOCKQUOTE")
+ TAG_HANDLER_CONSTR(BLOCKQUOTE) { }
TAG_HANDLER_PROC(tag)
{
// 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)
+ TAG_HANDLER_CONSTR(DoNothing) { }
+
+ TAG_HANDLER_PROC(WXUNUSED(tag))
{
return true;
}