X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c1bfc5da0e4a79803c87747371bcccb377899e0..0b7e6e7da208b6a95fb23cb50286a09dc90d96d2:/src/html/htmlcell.cpp diff --git a/src/html/htmlcell.cpp b/src/html/htmlcell.cpp index 845a709c1f..0ca4bb2524 100644 --- a/src/html/htmlcell.cpp +++ b/src/html/htmlcell.cpp @@ -85,7 +85,38 @@ bool wxHtmlCell::AdjustPagebreak(int *pagebreak) const void wxHtmlCell::SetLink(const wxHtmlLinkInfo& link) { if (m_Link) delete m_Link; - m_Link = new wxHtmlLinkInfo(link); + m_Link = NULL; + if (link.GetHref() != wxEmptyString) + m_Link = new wxHtmlLinkInfo(link); +} + + + +void wxHtmlCell::Layout(int w) +{ + SetPos(0, 0); + if (m_Next) m_Next -> Layout(w); +} + + +void wxHtmlCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) +{ + if (m_Next) m_Next -> Draw(dc, x, y, view_y1, view_y2); +} + + + +void wxHtmlCell::DrawInvisible(wxDC& dc, int x, int y) +{ + if (m_Next) m_Next -> DrawInvisible(dc, x, y); +} + + + +const wxHtmlCell* wxHtmlCell::Find(int condition, const void* param) const +{ + if (m_Next) return m_Next -> Find(condition, param); + else return NULL; } @@ -246,6 +277,11 @@ wxHtmlContainerCell::wxHtmlContainerCell(wxHtmlContainerCell *parent) : wxHtmlCe m_LastLayout = -1; } +wxHtmlContainerCell::~wxHtmlContainerCell() +{ + if (m_Cells) delete m_Cells; +} + void wxHtmlContainerCell::SetIndent(int i, int what, int units) @@ -403,12 +439,14 @@ void wxHtmlContainerCell::Layout(int w) int counter = 0; int step = (s_width - xpos); if (step < 0) step = 0; - while (line != cell) { + xcnt--; + if (xcnt > 0) while (line != cell) { line -> SetPos(line -> GetPosX() + s_indent + (counter++ * step / xcnt), ypos + line -> GetPosY()); line = line -> GetNext(); } + xcnt++; } ypos += ysizedown;