X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3d3d3bf6cd84e44521a1617df5e38ed02c6fee2..7379599933e8db2dc319bd5240b4992687db4e46:/src/mac/carbon/printdlg.cpp?ds=sidebyside diff --git a/src/mac/carbon/printdlg.cpp b/src/mac/carbon/printdlg.cpp index 8f59b0d2e3..1b18c1d49b 100644 --- a/src/mac/carbon/printdlg.cpp +++ b/src/mac/carbon/printdlg.cpp @@ -18,6 +18,9 @@ #include "wx/dcprint.h" #include "wx/msgdlg.h" #include "wx/mac/uma.h" +#ifndef __DARWIN__ + #include "Printing.h" +#endif #if defined(TARGET_CARBON) && !defined(__DARWIN__) # if PM_USE_SESSION_APIS @@ -68,8 +71,10 @@ bool wxPrintDialog::Create(wxWindow *p, wxPrintDialogData* data) wxPrintDialog::~wxPrintDialog() { - if (m_destroyDC && m_printerDC) + if (m_destroyDC && m_printerDC) { delete m_printerDC; + m_printerDC = NULL; + } } int wxPrintDialog::ShowModal() @@ -99,11 +104,8 @@ int wxPrintDialog::ShowModal() ::UMAPrClose(NULL) ; #else #if PM_USE_SESSION_APIS - PMPrintSession macPrintSession = kPMNoReference; Boolean accepted; - err = ::UMAPrOpen(&macPrintSession) ; - if ( err == noErr ) { m_printDialogData.ConvertToNative() ; @@ -118,13 +120,13 @@ int wxPrintDialog::ShowModal() if ((err == noErr) && (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) { - err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, + err = PMSessionDefaultPageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat); } } else { - err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, + err = PMSessionValidatePageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, kPMDontWantBoolean); } @@ -140,13 +142,13 @@ int wxPrintDialog::ShowModal() if ((err == noErr) && (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings)) { - err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession, + err = PMSessionDefaultPrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings); } } else { - err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession, + err = PMSessionValidatePrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, kPMDontWantBoolean); } @@ -160,7 +162,7 @@ int wxPrintDialog::ShowModal() // Display the Print dialog. if (err == noErr) { - err = PMSessionPrintDialog((PMPrintSession)macPrintSession, + err = PMSessionPrintDialog((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession, (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, &accepted); @@ -181,7 +183,6 @@ int wxPrintDialog::ShowModal() wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; dialog.ShowModal(); } - ::UMAPrClose(&macPrintSession) ; #else #pragma warning "TODO: Printing for carbon without session apis" #endif @@ -251,11 +252,8 @@ int wxPageSetupDialog::ShowModal() ::UMAPrClose(NULL) ; #else #if PM_USE_SESSION_APIS - PMPrintSession macPrintSession = kPMNoReference; Boolean accepted; - err = ::UMAPrOpen(&macPrintSession) ; - if ( err == noErr ) { m_pageSetupData.ConvertToNative() ; @@ -270,13 +268,13 @@ int wxPageSetupDialog::ShowModal() if ((err == noErr) && (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) { - err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, + err = PMSessionDefaultPageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat); } } else { - err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, + err = PMSessionValidatePageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, kPMDontWantBoolean); } @@ -284,7 +282,7 @@ int wxPageSetupDialog::ShowModal() // Display the Page Setup dialog. if (err == noErr) { - err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession, + err = PMSessionPageSetupDialog((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession, (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, &accepted); if ((err == noErr) && !accepted) @@ -307,7 +305,6 @@ int wxPageSetupDialog::ShowModal() wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; dialog.ShowModal(); } - ::UMAPrClose(&macPrintSession) ; #else #pragma warning "TODO: Printing for carbon without session apis" #endif