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:
|
private:
|
||||||
void Init(wxPrintout *printout, wxPrintout *printoutForPrinting);
|
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_NO_COPY_CLASS(wxPrintPreviewBase)
|
||||||
DECLARE_CLASS(wxPrintPreviewBase)
|
DECLARE_CLASS(wxPrintPreviewBase)
|
||||||
};
|
};
|
||||||
|
@@ -1469,6 +1469,47 @@ void wxPrintPreviewBase::AdjustScrollbars(wxPreviewCanvas *canvas)
|
|||||||
canvas->SetScrollbars(10, 10, scrollUnitsX, scrollUnitsY, 0, 0, true);
|
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)
|
bool wxPrintPreviewBase::RenderPage(int pageNum)
|
||||||
{
|
{
|
||||||
wxBusyCursor busy;
|
wxBusyCursor busy;
|
||||||
@@ -1497,44 +1538,15 @@ bool wxPrintPreviewBase::RenderPage(int pageNum)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMemoryDC memoryDC;
|
if ( !RenderPageIntoBitmap(*m_previewBitmap, pageNum) )
|
||||||
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()))
|
|
||||||
{
|
{
|
||||||
wxMessageBox(_("Could not start document preview."), _("Print Preview Failure"), wxOK);
|
wxMessageBox(_("Could not start document preview."), _("Print Preview Failure"), wxOK);
|
||||||
|
|
||||||
memoryDC.SelectObject(wxNullBitmap);
|
|
||||||
|
|
||||||
delete m_previewBitmap;
|
delete m_previewBitmap;
|
||||||
m_previewBitmap = NULL;
|
m_previewBitmap = NULL;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_previewPrintout->OnPrintPage(pageNum);
|
|
||||||
m_previewPrintout->OnEndDocument();
|
|
||||||
m_previewPrintout->OnEndPrinting();
|
|
||||||
|
|
||||||
m_previewPrintout->SetDC(NULL);
|
|
||||||
|
|
||||||
memoryDC.SelectObject(wxNullBitmap);
|
|
||||||
|
|
||||||
#if wxUSE_STATUSBAR
|
#if wxUSE_STATUSBAR
|
||||||
wxString status;
|
wxString status;
|
||||||
if (m_maxPage != 0)
|
if (m_maxPage != 0)
|
||||||
|
Reference in New Issue
Block a user