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:
@@ -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
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user