// wxHtmlCell
//-----------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxHtmlCell, wxObject)
+
wxHtmlCell::wxHtmlCell() : wxObject()
{
m_Next = NULL;
// wxHtmlWordCell
//-----------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxHtmlWordCell, wxHtmlCell)
+
wxHtmlWordCell::wxHtmlWordCell(const wxString& word, wxDC& dc) : wxHtmlCell()
{
m_Word = word;
// wxHtmlContainerCell
//-----------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxHtmlContainerCell, wxHtmlCell)
wxHtmlContainerCell::wxHtmlContainerCell(wxHtmlContainerCell *parent) : wxHtmlCell()
{
m_Cells = m_LastCell = NULL;
m_Parent = parent;
+ m_MaxTotalWidth = 0;
if (m_Parent) m_Parent->InsertCell(this);
m_AlignHor = wxHTML_ALIGN_LEFT;
m_AlignVer = wxHTML_ALIGN_BOTTOM;
int ysizeup = 0, ysizedown = 0;
int MaxLineWidth = 0;
int xcnt = 0;
+ int curLineWidth = 0;
+ m_MaxTotalWidth = 0;
/*
// layout nonbreakable run of cells:
cell->SetPos(xpos, ybasicpos + cell->GetDescent());
xpos += cell->GetWidth();
+ if (!cell->IsTerminalCell())
+ {
+ // Container cell indicates new line
+ if (curLineWidth > m_MaxTotalWidth)
+ m_MaxTotalWidth = curLineWidth;
+
+ if (wxMax(cell->GetWidth(), cell->GetMaxTotalWidth()) > m_MaxTotalWidth)
+ m_MaxTotalWidth = cell->GetMaxTotalWidth();
+ curLineWidth = 0;
+ }
+ else
+ // Normal cell, add maximum cell width to line width
+ curLineWidth += cell->GetMaxTotalWidth();
+
cell = cell->GetNext();
xcnt++;
m_Height = m_MinHeight;
}
+ if (curLineWidth > m_MaxTotalWidth)
+ m_MaxTotalWidth = curLineWidth;
+
+ m_MaxTotalWidth += s_indent + ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight);
MaxLineWidth += s_indent + ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight);
if (m_Width < MaxLineWidth) m_Width = MaxLineWidth;
// wxHtmlColourCell
// --------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxHtmlColourCell, wxHtmlCell)
+
void wxHtmlColourCell::Draw(wxDC& dc,
int x, int y,
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
// wxHtmlFontCell
// ---------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxHtmlFontCell, wxHtmlCell)
+
void wxHtmlFontCell::Draw(wxDC& dc,
int WXUNUSED(x), int WXUNUSED(y),
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
// wxHtmlWidgetCell
// ---------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxHtmlWidgetCell, wxHtmlCell)
+
wxHtmlWidgetCell::wxHtmlWidgetCell(wxWindow *wnd, int w)
{
int sx, sy;