X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55ad60c94cf61eca9692530f5df414cfe226381b..5bf3b6fe48580853044132c381d3548535ca7ad1:/src/html/m_tables.cpp diff --git a/src/html/m_tables.cpp b/src/html/m_tables.cpp index 8540af13f2..7377a36fef 100644 --- a/src/html/m_tables.cpp +++ b/src/html/m_tables.cpp @@ -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