]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/m_tables.cpp
Fixed small alignment issues
[wxWidgets.git] / src / html / m_tables.cpp
index 8540af13f2510dc346fd61783aa39a397204fcfb..7377a36fef1a2e4fd76887f3c50ebed0f93d0633 100644 (file)
@@ -119,7 +119,7 @@ private:
     // only once, before first Layout().
     void ComputeMinMaxWidths();
 
-    DECLARE_NO_COPY_CLASS(wxHtmlTableCell)
+    wxDECLARE_NO_COPY_CLASS(wxHtmlTableCell);
 };
 
 
@@ -685,6 +685,7 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
         {
             wxHtmlTableCell *oldt = m_Table;
 
+            wxHtmlContainerCell *oldEnclosing = m_enclosingContainer;
             m_enclosingContainer = c = m_WParser->OpenContainer();
 
             m_Table = new wxHtmlTableCell(c, tag, m_WParser->GetPixelScale());
@@ -723,6 +724,7 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
             m_WParser->CloseContainer();
 
             m_Table = oldt;
+            m_enclosingContainer = oldEnclosing;
 
             return true; // ParseInner() called
         }
@@ -747,28 +749,46 @@ TAG_HANDLER_BEGIN(TABLE, "TABLE,TR,TD,TH")
 
                 m_WParser->OpenContainer();
 
-                if (tag.GetName() == wxT("TH")) /*header style*/
-                    m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
-                else
-                    m_WParser->SetAlign(wxHTML_ALIGN_LEFT);
+                const bool isHeader = tag.GetName() == wxT("TH");
 
                 wxString als;
-
-                als = m_rAlign;
                 if (tag.HasParam(wxT("ALIGN")))
                     als = tag.GetParam(wxT("ALIGN"));
+                else
+                    als = m_rAlign;
                 als.MakeUpper();
+
                 if (als == wxT("RIGHT"))
                     m_WParser->SetAlign(wxHTML_ALIGN_RIGHT);
                 else if (als == wxT("LEFT"))
                     m_WParser->SetAlign(wxHTML_ALIGN_LEFT);
                 else if (als == wxT("CENTER"))
                     m_WParser->SetAlign(wxHTML_ALIGN_CENTER);
+                else // use default alignment
+                    m_WParser->SetAlign(isHeader ? wxHTML_ALIGN_CENTER
+                                                 : wxHTML_ALIGN_LEFT);
 
                 m_WParser->OpenContainer();
 
+                // the header should be rendered in bold by default
+                int boldOld = 0;
+                if ( isHeader )
+                {
+                    boldOld = m_WParser->GetFontBold();
+                    m_WParser->SetFontBold(true);
+                    m_WParser->GetContainer()->InsertCell(
+                        new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
+                }
+
                 ParseInner(tag);
 
+                if ( isHeader )
+                {
+                    m_WParser->SetFontBold(boldOld);
+                    m_WParser->GetContainer()->InsertCell(
+                        new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
+                }
+
                 // set the current container back to the enclosing one so that
                 // text outside of <th> and <td> isn't included in any cell
                 // (this happens often enough in practice because it's common