wxDCImpl* wxNativePrintFactory::CreatePrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data )
{
-#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXUNIVERSAL__)
+#if defined(__WXGTK__) || defined(__WXMOTIF__) || ( defined(__WXUNIVERSAL__) && !defined(__WXMAC__) )
return new wxPostScriptDCImpl( owner, data );
#else
return new wxPrinterDCImpl( owner, data );
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
return new wxWindowsPrintNativeData;
#elif defined(__WXMAC__)
- return new wxMacCarbonPrintData;
+ return wxOSXCreatePrintData();
#else
return new wxPostScriptPrintNativeData;
#endif
wxPrinterBase::wxPrinterBase(wxPrintDialogData *data)
{
- m_currentPrintout = (wxPrintout *) NULL;
- sm_abortWindow = (wxWindow *) NULL;
+ m_currentPrintout = NULL;
+ sm_abortWindow = NULL;
sm_abortIt = false;
if (data)
m_printDialogData = (*data);
sm_lastError = wxPRINTER_NO_ERROR;
}
-wxWindow *wxPrinterBase::sm_abortWindow = (wxWindow *) NULL;
+wxWindow *wxPrinterBase::sm_abortWindow = NULL;
bool wxPrinterBase::sm_abortIt = false;
wxPrinterError wxPrinterBase::sm_lastError = wxPRINTER_NO_ERROR;
wxPrinterBase::sm_abortIt = true;
wxPrinterBase::sm_abortWindow->Show(false);
wxPrinterBase::sm_abortWindow->Close(true);
- wxPrinterBase::sm_abortWindow = (wxWindow *) NULL;
+ wxPrinterBase::sm_abortWindow->Destroy();
+ wxPrinterBase::sm_abortWindow = NULL;
}
//----------------------------------------------------------------------------
wxPrintout::wxPrintout(const wxString& title)
{
m_printoutTitle = title ;
- m_printoutDC = (wxDC *) NULL;
+ m_printoutDC = NULL;
m_pageWidthMM = 0;
m_pageHeightMM = 0;
m_pageWidthPixels = 0;
wxPanel(parent, wxID_ANY, pos, size, style, name)
{
m_printPreview = preview;
- m_closeButton = (wxButton *) NULL;
- m_nextPageButton = (wxButton *) NULL;
- m_previousPageButton = (wxButton *) NULL;
- m_printButton = (wxButton *) NULL;
- m_zoomControl = (wxChoice *) NULL;
+ m_closeButton = NULL;
+ m_nextPageButton = NULL;
+ m_previousPageButton = NULL;
+ m_printButton = NULL;
+ m_zoomControl = NULL;
m_buttonFlags = buttons;
}
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;
}
}
- 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);
-
InvalidatePreviewBitmap();
+ wxMessageBox(_("Sorry, not enough memory to create a preview."), _("Print Preview Failure"), wxOK);
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)