// only once, before first Layout().
void ComputeMinMaxWidths();
- DECLARE_NO_COPY_CLASS(wxHtmlTableCell)
+ wxDECLARE_NO_COPY_CLASS(wxHtmlTableCell);
};
{
wxHtmlTableCell *oldt = m_Table;
+ wxHtmlContainerCell *oldEnclosing = m_enclosingContainer;
m_enclosingContainer = c = m_WParser->OpenContainer();
m_Table = new wxHtmlTableCell(c, tag, m_WParser->GetPixelScale());
m_WParser->CloseContainer();
m_Table = oldt;
+ m_enclosingContainer = oldEnclosing;
return true; // ParseInner() called
}
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