]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/htmlcell.cpp
Put gridg.h back so that it gets installed
[wxWidgets.git] / src / html / htmlcell.cpp
index dd4e4502a76f37f468d0c079eeb5a3a25e8eb8ef..ac40ae3c7f4389f0eb401ed8b9d0cce5e96aea76 100644 (file)
@@ -46,6 +46,25 @@ void wxHtmlCell::OnMouseClick(wxWindow *parent, int x, int y,
 
 
 
+bool wxHtmlCell::AdjustPagebreak(int *pagebreak)
+{
+
+    if ((!m_CanLiveOnPagebreak) && 
+                m_PosY < *pagebreak && m_PosY + m_Height >= *pagebreak) {
+        *pagebreak = m_PosY;
+        if (m_Next != NULL) m_Next -> AdjustPagebreak(pagebreak);
+        return TRUE;
+    }
+    
+    else {
+        if (m_Next != NULL) return m_Next -> AdjustPagebreak(pagebreak);
+        else return FALSE;
+    }
+}
+
+
+
+
 //-----------------------------------------------------------------------------
 // wxHtmlWordCell
 //-----------------------------------------------------------------------------
@@ -59,6 +78,7 @@ wxHtmlWordCell::wxHtmlWordCell(const wxString& word, wxDC& dc) : wxHtmlCell()
     m_Word.Replace("&gt;", ">", TRUE);
     m_Word.Replace("&amp;", "&", TRUE);
     dc.GetTextExtent(m_Word, &m_Width, &m_Height, &m_Descent);
+    SetCanLiveOnPagebreak(FALSE);
 }
 
 
@@ -129,6 +149,24 @@ int wxHtmlContainerCell::GetIndentUnits(int ind) const
 
 
 
+bool wxHtmlContainerCell::AdjustPagebreak(int *pagebreak)
+{
+    if (!m_CanLiveOnPagebreak) 
+        return wxHtmlCell::AdjustPagebreak(pagebreak);
+    else {
+        wxHtmlCell *c = GetFirstCell();
+        bool rt = FALSE;
+
+        while (c) {
+            if (c -> AdjustPagebreak(pagebreak)) rt = TRUE;
+            c = c -> GetNext();
+        }
+        return rt;
+    }
+}
+
+
+
 void wxHtmlContainerCell::Layout(int w)
 {
     wxHtmlCell *cell = m_Cells, *line = m_Cells;