]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/m_tables.cpp
applied patch 1737156 to wxAuiManager
[wxWidgets.git] / src / html / m_tables.cpp
index ef6fad6759c1abe32c8a98f148bbc36a9e43334b..0209b50dede9c86fee90b85113e9d3428212c815 100644 (file)
@@ -1,25 +1,22 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        m_tables.cpp
+// Name:        src/html/m_tables.cpp
 // Purpose:     wxHtml module for tables
 // Author:      Vaclav Slavik
 // RCS-ID:      $Id$
 // Copyright:   (c) 1999 Vaclav Slavik
-// Licence:     wxWidgets Licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation
-#endif
-
 #include "wx/wxprec.h"
 
-#include "wx/defs.h"
-#if wxUSE_HTML && wxUSE_STREAMS
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
-#ifndef WXPRECOMP
+#if wxUSE_HTML && wxUSE_STREAMS
+
+#ifndef WX_PRECOMP
+    #include "wx/wxcrtvararg.h"
 #endif
 
 #include "wx/html/forcelnk.h"
@@ -102,7 +99,10 @@ private:
 
 public:
     wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& tag, double pixel_scale = 1.0);
-    ~wxHtmlTableCell();
+    virtual ~wxHtmlTableCell();
+
+    virtual void RemoveExtraSpacing(bool top, bool bottom);
+
     virtual void Layout(int w);
 
     void AddRow(const wxHtmlTag& tag);
@@ -137,7 +137,11 @@ wxHtmlTableCell::wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& t
 
     /* scan params: */
     if (tag.HasParam(wxT("BGCOLOR")))
+    {
         tag.GetParamAsColour(wxT("BGCOLOR"), &m_tBkg);
+        if (m_tBkg.Ok())
+            SetBackgroundColour(m_tBkg);
+    }
     if (tag.HasParam(wxT("VALIGN")))
         m_tValign = tag.GetParam(wxT("VALIGN"));
     else
@@ -167,6 +171,15 @@ wxHtmlTableCell::~wxHtmlTableCell()
 }
 
 
+void wxHtmlTableCell::RemoveExtraSpacing(bool WXUNUSED(top),
+                                         bool WXUNUSED(bottom))
+{
+    // Don't remove any spacing in the table -- it's always desirable,
+    // because it's part of table's definition.
+    // (If wxHtmlContainerCell::RemoveExtraSpacing() was applied to tables,
+    // then upper left cell of a table would be positioned above other cells
+    // if the table was the first element on the page.)
+}
 
 void wxHtmlTableCell::ReallocCols(int cols)
 {
@@ -267,7 +280,7 @@ void wxHtmlTableCell::AddCell(wxHtmlContainerCell *cell, const wxHtmlTag& tag)
         {
             wxString wd = tag.GetParam(wxT("WIDTH"));
 
-            if (wd[wd.Length()-1] == wxT('%'))
+            if (wd[wd.length()-1] == wxT('%'))
             {
                 wxSscanf(wd.c_str(), wxT("%i%%"), &m_ColsInfo[c].width);
                 m_ColsInfo[c].units = wxHTML_UNITS_PERCENT;
@@ -350,7 +363,7 @@ void wxHtmlTableCell::AddCell(wxHtmlContainerCell *cell, const wxHtmlTag& tag)
 
 void wxHtmlTableCell::ComputeMinMaxWidths()
 {
-    if (m_NumCols == 0 || m_ColsInfo[0].minWidth != -1) return;
+    if (m_NumCols == 0 || m_ColsInfo[0].minWidth != wxDefaultCoord) return;
 
     m_MaxTotalWidth = 0;
     int percentage = 0;
@@ -672,7 +685,7 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
                 {
                     wxString wd = tag.GetParam(wxT("WIDTH"));
 
-                    if (wd[wd.Length()-1] == wxT('%'))
+                    if (wd[wd.length()-1] == wxT('%'))
                     {
                         int width = 0;
                         wxSscanf(wd.c_str(), wxT("%i%%"), &width);
@@ -700,7 +713,7 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
             m_WParser->CloseContainer();
 
             m_Table = oldt;
-            return TRUE;
+            return true;
         }
 
 
@@ -744,7 +757,7 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
                 m_WParser->OpenContainer();
             }
         }
-        return FALSE;
+        return false;
     }
 
 TAG_HANDLER_END(TABLE)