]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/m_tables.cpp
bitmap and image updates
[wxWidgets.git] / src / html / m_tables.cpp
index af88b562d977b7b6079c4670c5e063cda646f658..4850c1b0075c29e7a911690bb2656ceddb81d8f2 100644 (file)
@@ -169,19 +169,21 @@ void wxHtmlTableCell::ReallocCols(int cols)
 void wxHtmlTableCell::ReallocRows(int rows)
 {
     m_CellInfo = (cellStruct**) realloc(m_CellInfo, sizeof(cellStruct*) * rows);
-    if (m_NumCols != 0) {
-        int x = rows - 1;
-        m_CellInfo[x] = (cellStruct*) malloc(sizeof(cellStruct) * m_NumCols);
-        for (int i = 0; i < m_NumCols; i++)
-            m_CellInfo[x][i].flag = cellFree;
+    for (int row = m_NumRows; row < rows ; row++) 
+    {
+        if (m_NumCols == 0) 
+            m_CellInfo[row] = NULL;
+        else 
+        {
+            m_CellInfo[row] = (cellStruct*) malloc(sizeof(cellStruct) * m_NumCols);
+            for (int col = 0; col < m_NumCols; col++)
+                m_CellInfo[row][col].flag = cellFree;
+        }
     }
-    else
-        m_CellInfo[rows - 1] = NULL;
     m_NumRows = rows;
 }
 
 
-
 void wxHtmlTableCell::AddRow(const wxHtmlTag& tag)
 {
     if (m_ActualRow + 1 > m_NumRows - 1)
@@ -358,6 +360,7 @@ void wxHtmlTableCell::Layout(int w)
                 fullwid = 0;
                 for (int i = actcol; i < m_CellInfo[actrow][actcol].colspan + actcol; i++)
                     fullwid += m_ColsInfo[i].pixwidth;
+                fullwid += (m_CellInfo[actrow][actcol].colspan - 1) * m_Spacing;
                 actcell -> SetMinHeight(m_CellInfo[actrow][actcol].minheight, m_CellInfo[actrow][actcol].valign);
                 actcell -> Layout(fullwid);
 
@@ -376,11 +379,12 @@ void wxHtmlTableCell::Layout(int w)
                 if (m_CellInfo[actrow][actcol].flag != cellUsed) continue;
                 actcell = m_CellInfo[actrow][actcol].cont;
                 actcell -> SetMinHeight(
-                                 ypos[actrow + m_CellInfo[actrow][actcol].rowspan] - ypos[actrow] - m_CellInfo[actrow][actcol].rowspan * m_Spacing,
+                                 ypos[actrow + m_CellInfo[actrow][actcol].rowspan] - ypos[actrow] -  m_Spacing,
                                  m_CellInfo[actrow][actcol].valign);
                 fullwid = 0;
                 for (int i = actcol; i < m_CellInfo[actrow][actcol].colspan + actcol; i++)
                     fullwid += m_ColsInfo[i].pixwidth;
+                fullwid += (m_CellInfo[actrow][actcol].colspan - 1) * m_Spacing;
                 actcell -> Layout(fullwid);
                 actcell -> SetPos(m_ColsInfo[actcol].leftpos, ypos[actrow]);
             }