]> git.saurik.com Git - wxWidgets.git/commitdiff
render <TH> contents in bold, as all the browsers do
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 24 Feb 2009 18:10:43 +0000 (18:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 24 Feb 2009 18:10:43 +0000 (18:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
samples/html/test/tables.htm
src/html/m_tables.cpp

index 0982ebe9874432b3526a525f49ea1f242ccbb5da..e69e2b7d26f98b43d2a4a8ea192c02dc89def167 100644 (file)
@@ -480,6 +480,7 @@ All (GUI):
 - Moved yield functions to wxEventLoopBase and implemented for wxMSW and wxGTK
   a selective wxEventLoopBase::YieldFor() function.
   Added also wxEventLoopBase::IsYielding to help cure re-entrancy problems with Yield().
+- Render <th> element contents in bold in wxHTML.
 
 wxGTK:
 
index 98f34ff4a55f23edd08984776db37ea7cc9ab6e9..791a88720bd6ea61686d51a50e325031a8e0ebda 100644 (file)
@@ -15,6 +15,10 @@ tests page...</H3>
 <BR>Click <a href="test.htm">here</a> to go to original testing page...
 <BR>&nbsp;
 <CENTER><TABLE CELLSPACING=5 BORDER COLS=2 WIDTH="40%" NOSAVE >
+<TR>
+<TH>First header</TH>
+<TH>Second</TH>
+</TR>
 <TR ALIGN=CENTER NOSAVE>
 <TD WIDTH="40%" NOSAVE>Top left
 <BR>(two lines expression)
@@ -67,7 +71,7 @@ gjg jg gjhfg fg gjh gjf jgf jgj f gjfgj kfajg&nbsp;</TD>
 </TR>
 </TABLE>
 
-<P>This is "default" table - with no sizes givev:
+<P>This is "default" table - with no sizes given:
 <BR>&nbsp;
 <TABLE BORDER COLS=4 WIDTH="100%" NOSAVE >
 <TR NOSAVE>
index ffca46df3c3a916cd476db2f380cd4bf899c38f8..b111abed671f25409ba24918ca653718dd61d994 100644 (file)
@@ -747,28 +747,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 wxDUMMY_INITIALIZE(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