split wxPrintPreviewBase::RenderPage() into helper methods in the same way its done on the trunk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@54404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -575,6 +575,10 @@ protected:
|
||||
private:
|
||||
void Init(wxPrintout *printout, wxPrintout *printoutForPrinting);
|
||||
|
||||
// helpers for RenderPage():
|
||||
bool RenderPageIntoDC(wxDC& dc, int pageNum);
|
||||
bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum);
|
||||
|
||||
DECLARE_NO_COPY_CLASS(wxPrintPreviewBase)
|
||||
DECLARE_CLASS(wxPrintPreviewBase)
|
||||
};
|
||||
|
@@ -1469,6 +1469,47 @@ void wxPrintPreviewBase::AdjustScrollbars(wxPreviewCanvas *canvas)
|
||||
canvas->SetScrollbars(10, 10, scrollUnitsX, scrollUnitsY, 0, 0, true);
|
||||
}
|
||||
|
||||
bool wxPrintPreviewBase::RenderPageIntoDC(wxDC& dc, int pageNum)
|
||||
{
|
||||
m_previewPrintout->SetDC(&dc);
|
||||
m_previewPrintout->SetPageSizePixels(m_pageWidth, m_pageHeight);
|
||||
|
||||
// Need to delay OnPreparePrinting() until here, so we have enough
|
||||
// information.
|
||||
if (!m_printingPrepared)
|
||||
{
|
||||
m_previewPrintout->OnPreparePrinting();
|
||||
int selFrom, selTo;
|
||||
m_previewPrintout->GetPageInfo(&m_minPage, &m_maxPage, &selFrom, &selTo);
|
||||
m_printingPrepared = true;
|
||||
}
|
||||
|
||||
m_previewPrintout->OnBeginPrinting();
|
||||
|
||||
if (!m_previewPrintout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage()))
|
||||
{
|
||||
wxMessageBox(_("Could not start document preview."), _("Print Preview Failure"), wxOK);
|
||||
return false;
|
||||
}
|
||||
|
||||
m_previewPrintout->OnPrintPage(pageNum);
|
||||
m_previewPrintout->OnEndDocument();
|
||||
m_previewPrintout->OnEndPrinting();
|
||||
|
||||
m_previewPrintout->SetDC(NULL);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool wxPrintPreviewBase::RenderPageIntoBitmap(wxBitmap& bmp, int pageNum)
|
||||
{
|
||||
wxMemoryDC memoryDC;
|
||||
memoryDC.SelectObject(bmp);
|
||||
memoryDC.Clear();
|
||||
|
||||
return RenderPageIntoDC(memoryDC, pageNum);
|
||||
}
|
||||
|
||||
bool wxPrintPreviewBase::RenderPage(int pageNum)
|
||||
{
|
||||
wxBusyCursor busy;
|
||||
@@ -1497,44 +1538,15 @@ bool wxPrintPreviewBase::RenderPage(int pageNum)
|
||||
}
|
||||
}
|
||||
|
||||
wxMemoryDC memoryDC;
|
||||
memoryDC.SelectObject(*m_previewBitmap);
|
||||
|
||||
memoryDC.Clear();
|
||||
|
||||
m_previewPrintout->SetDC(&memoryDC);
|
||||
m_previewPrintout->SetPageSizePixels(m_pageWidth, m_pageHeight);
|
||||
|
||||
// Need to delay OnPreparePrinting until here, so we have enough information.
|
||||
if (!m_printingPrepared)
|
||||
{
|
||||
m_previewPrintout->OnPreparePrinting();
|
||||
int selFrom, selTo;
|
||||
m_previewPrintout->GetPageInfo(&m_minPage, &m_maxPage, &selFrom, &selTo);
|
||||
m_printingPrepared = true;
|
||||
}
|
||||
|
||||
m_previewPrintout->OnBeginPrinting();
|
||||
|
||||
if (!m_previewPrintout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage()))
|
||||
if ( !RenderPageIntoBitmap(*m_previewBitmap, pageNum) )
|
||||
{
|
||||
wxMessageBox(_("Could not start document preview."), _("Print Preview Failure"), wxOK);
|
||||
|
||||
memoryDC.SelectObject(wxNullBitmap);
|
||||
|
||||
delete m_previewBitmap;
|
||||
m_previewBitmap = NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
m_previewPrintout->OnPrintPage(pageNum);
|
||||
m_previewPrintout->OnEndDocument();
|
||||
m_previewPrintout->OnEndPrinting();
|
||||
|
||||
m_previewPrintout->SetDC(NULL);
|
||||
|
||||
memoryDC.SelectObject(wxNullBitmap);
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
wxString status;
|
||||
if (m_maxPage != 0)
|
||||
|
Reference in New Issue
Block a user