Make wxHtmlPrintout::m_Renderer{,Hdr} objects instead of pointers

There is no need to allocate these objects on the heap and delete them
later when we can just make them members of wxHtmlPrintout object
itself.

No real changes.
This commit is contained in:
Vadim Zeitlin
2018-05-21 16:39:02 +02:00
parent 8401d3fec9
commit f1ea4afdbe
2 changed files with 29 additions and 38 deletions

View File

@@ -121,7 +121,6 @@ class WXDLLIMPEXP_HTML wxHtmlPrintout : public wxPrintout
{ {
public: public:
wxHtmlPrintout(const wxString& title = wxT("Printout")); wxHtmlPrintout(const wxString& title = wxT("Printout"));
virtual ~wxHtmlPrintout();
void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true); void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true);
// prepares the class for printing this html document. // prepares the class for printing this html document.
@@ -207,7 +206,7 @@ private:
wxString m_Headers[2], m_Footers[2]; wxString m_Headers[2], m_Footers[2];
int m_HeaderHeight, m_FooterHeight; int m_HeaderHeight, m_FooterHeight;
wxHtmlDCRenderer *m_Renderer, *m_RendererHdr; wxHtmlDCRenderer m_Renderer, m_RendererHdr;
float m_MarginTop, m_MarginBottom, m_MarginLeft, m_MarginRight, m_MarginSpace; float m_MarginTop, m_MarginBottom, m_MarginLeft, m_MarginRight, m_MarginSpace;
// list of HTML filters // list of HTML filters

View File

@@ -193,8 +193,6 @@ wxList wxHtmlPrintout::m_Filters;
wxHtmlPrintout::wxHtmlPrintout(const wxString& title) : wxPrintout(title) wxHtmlPrintout::wxHtmlPrintout(const wxString& title) : wxPrintout(title)
{ {
m_Renderer = new wxHtmlDCRenderer;
m_RendererHdr = new wxHtmlDCRenderer;
m_NumPages = INT_MAX; m_NumPages = INT_MAX;
m_Document = m_BasePath = wxEmptyString; m_BasePathIsDir = true; m_Document = m_BasePath = wxEmptyString; m_BasePathIsDir = true;
m_Headers[0] = m_Headers[1] = wxEmptyString; m_Headers[0] = m_Headers[1] = wxEmptyString;
@@ -206,12 +204,6 @@ wxHtmlPrintout::wxHtmlPrintout(const wxString& title) : wxPrintout(title)
wxHtmlPrintout::~wxHtmlPrintout()
{
delete m_Renderer;
delete m_RendererHdr;
}
void wxHtmlPrintout::CleanUpStatics() void wxHtmlPrintout::CleanUpStatics()
{ {
WX_CLEAR_LIST(wxList, m_Filters); WX_CLEAR_LIST(wxList, m_Filters);
@@ -315,34 +307,34 @@ void wxHtmlPrintout::OnPreparePrinting()
/* prepare headers/footers renderer: */ /* prepare headers/footers renderer: */
m_RendererHdr->SetDC(GetDC(), m_RendererHdr.SetDC(GetDC(),
(double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / TYPICAL_SCREEN_DPI,
(double)ppiPrinterY / (double)ppiScreenY); (double)ppiPrinterY / (double)ppiScreenY);
m_RendererHdr->SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginRight)), m_RendererHdr.SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginRight)),
(int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom))); (int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom)));
if (!m_Headers[0].empty()) if (!m_Headers[0].empty())
{ {
m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[0], 1)); m_RendererHdr.SetHtmlText(TranslateHeader(m_Headers[0], 1));
m_HeaderHeight = m_RendererHdr->GetTotalHeight(); m_HeaderHeight = m_RendererHdr.GetTotalHeight();
} }
else if (!m_Headers[1].empty()) else if (!m_Headers[1].empty())
{ {
m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[1], 1)); m_RendererHdr.SetHtmlText(TranslateHeader(m_Headers[1], 1));
m_HeaderHeight = m_RendererHdr->GetTotalHeight(); m_HeaderHeight = m_RendererHdr.GetTotalHeight();
} }
if (!m_Footers[0].empty()) if (!m_Footers[0].empty())
{ {
m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[0], 1)); m_RendererHdr.SetHtmlText(TranslateHeader(m_Footers[0], 1));
m_FooterHeight = m_RendererHdr->GetTotalHeight(); m_FooterHeight = m_RendererHdr.GetTotalHeight();
} }
else if (!m_Footers[1].empty()) else if (!m_Footers[1].empty())
{ {
m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[1], 1)); m_RendererHdr.SetHtmlText(TranslateHeader(m_Footers[1], 1));
m_FooterHeight = m_RendererHdr->GetTotalHeight(); m_FooterHeight = m_RendererHdr.GetTotalHeight();
} }
/* prepare main renderer: */ /* prepare main renderer: */
m_Renderer->SetDC(GetDC(), m_Renderer.SetDC(GetDC(),
(double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / TYPICAL_SCREEN_DPI,
(double)ppiPrinterY / (double)ppiScreenY); (double)ppiPrinterY / (double)ppiScreenY);
@@ -353,12 +345,12 @@ void wxHtmlPrintout::OnPreparePrinting()
if ( m_FooterHeight ) if ( m_FooterHeight )
printAreaH -= int(m_FooterHeight + m_MarginSpace * ppmm_v); printAreaH -= int(m_FooterHeight + m_MarginSpace * ppmm_v);
m_Renderer->SetSize(printAreaW, printAreaH); m_Renderer.SetSize(printAreaW, printAreaH);
m_Renderer->SetHtmlText(m_Document, m_BasePath, m_BasePathIsDir); m_Renderer.SetHtmlText(m_Document, m_BasePath, m_BasePathIsDir);
if ( CheckFit(wxSize(printAreaW, printAreaH), if ( CheckFit(wxSize(printAreaW, printAreaH),
wxSize(m_Renderer->GetTotalWidth(), wxSize(m_Renderer.GetTotalWidth(),
m_Renderer->GetTotalHeight())) || IsPreview() ) m_Renderer.GetTotalHeight())) || IsPreview() )
{ {
// do paginate the document // do paginate the document
CountPages(); CountPages();
@@ -496,12 +488,12 @@ void wxHtmlPrintout::CountPages()
m_PageBreaks.Add( 0); m_PageBreaks.Add( 0);
do do
{ {
pos = m_Renderer->Render((int)( ppmm_h * m_MarginLeft), pos = m_Renderer.Render((int)( ppmm_h * m_MarginLeft),
(int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight), (int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
m_PageBreaks, m_PageBreaks,
pos, true, INT_MAX); pos, true, INT_MAX);
m_PageBreaks.Add( pos); m_PageBreaks.Add( pos);
} while (pos < m_Renderer->GetTotalHeight()); } while (pos < m_Renderer.GetTotalHeight());
} }
@@ -529,29 +521,29 @@ void wxHtmlPrintout::RenderPage(wxDC *dc, int page)
dc->SetUserScale((double)dc_w / (double)pageWidth, dc->SetUserScale((double)dc_w / (double)pageWidth,
(double)dc_h / (double)pageHeight); (double)dc_h / (double)pageHeight);
m_Renderer->SetDC(dc, m_Renderer.SetDC(dc,
(double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / TYPICAL_SCREEN_DPI,
(double)ppiPrinterY / (double)ppiScreenY); (double)ppiPrinterY / (double)ppiScreenY);
dc->SetBackgroundMode(wxTRANSPARENT); dc->SetBackgroundMode(wxTRANSPARENT);
m_Renderer->Render((int) (ppmm_h * m_MarginLeft), m_Renderer.Render((int) (ppmm_h * m_MarginLeft),
(int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight), m_PageBreaks, (int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight), m_PageBreaks,
m_PageBreaks[page-1], false, m_PageBreaks[page]-m_PageBreaks[page-1]); m_PageBreaks[page-1], false, m_PageBreaks[page]-m_PageBreaks[page-1]);
m_RendererHdr->SetDC(dc, m_RendererHdr.SetDC(dc,
(double)ppiPrinterY / TYPICAL_SCREEN_DPI, (double)ppiPrinterY / TYPICAL_SCREEN_DPI,
(double)ppiPrinterY / (double)ppiScreenY); (double)ppiPrinterY / (double)ppiScreenY);
if (!m_Headers[page % 2].empty()) if (!m_Headers[page % 2].empty())
{ {
m_RendererHdr->SetHtmlText(TranslateHeader(m_Headers[page % 2], page)); m_RendererHdr.SetHtmlText(TranslateHeader(m_Headers[page % 2], page));
m_RendererHdr->Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * m_MarginTop), m_PageBreaks); m_RendererHdr.Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * m_MarginTop), m_PageBreaks);
} }
if (!m_Footers[page % 2].empty()) if (!m_Footers[page % 2].empty())
{ {
m_RendererHdr->SetHtmlText(TranslateHeader(m_Footers[page % 2], page)); m_RendererHdr.SetHtmlText(TranslateHeader(m_Footers[page % 2], page));
m_RendererHdr->Render((int) (ppmm_h * m_MarginLeft), (int) (pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight), m_PageBreaks); m_RendererHdr.Render((int) (ppmm_h * m_MarginLeft), (int) (pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight), m_PageBreaks);
} }
} }
@@ -604,16 +596,16 @@ void wxHtmlPrintout::SetMargins(const wxPageSetupDialogData& pageSetupData)
void wxHtmlPrintout::SetFonts(const wxString& normal_face, const wxString& fixed_face, void wxHtmlPrintout::SetFonts(const wxString& normal_face, const wxString& fixed_face,
const int *sizes) const int *sizes)
{ {
m_Renderer->SetFonts(normal_face, fixed_face, sizes); m_Renderer.SetFonts(normal_face, fixed_face, sizes);
m_RendererHdr->SetFonts(normal_face, fixed_face, sizes); m_RendererHdr.SetFonts(normal_face, fixed_face, sizes);
} }
void wxHtmlPrintout::SetStandardFonts(int size, void wxHtmlPrintout::SetStandardFonts(int size,
const wxString& normal_face, const wxString& normal_face,
const wxString& fixed_face) const wxString& fixed_face)
{ {
m_Renderer->SetStandardFonts(size, normal_face, fixed_face); m_Renderer.SetStandardFonts(size, normal_face, fixed_face);
m_RendererHdr->SetStandardFonts(size, normal_face, fixed_face); m_RendererHdr.SetStandardFonts(size, normal_face, fixed_face);
} }