render <TH> contents in bold, as all the browsers do

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-02-24 18:10:43 +00:00
parent 9130dfd784
commit f14217abb4
3 changed files with 30 additions and 7 deletions

View 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:

View 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>

View 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