X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/76a5e5d21ee1a6230d777ce0209b2df4c6075f0f..5a9819026e56a43892e3f291215022a9df33a52f:/src/mac/printdlg.cpp?ds=sidebyside diff --git a/src/mac/printdlg.cpp b/src/mac/printdlg.cpp index 38c128ac21..adb620e76f 100644 --- a/src/mac/printdlg.cpp +++ b/src/mac/printdlg.cpp @@ -18,6 +18,16 @@ #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 +# include +# endif +# include +#endif // Use generic page setup dialog: use your own native one if one exists. @@ -72,11 +82,11 @@ int wxPrintDialog::ShowModal() wxString message ; #if !TARGET_CARBON - err = ::UMAPrOpen() ; + err = ::UMAPrOpen(NULL) ; if ( err == noErr ) { m_printDialogData.ConvertToNative() ; - if ( ::PrJobDialog( (THPrint) m_printDialogData.GetPrintData().m_macPrintInfo ) ) + if ( ::PrJobDialog( (THPrint) m_printDialogData.GetPrintData().m_macPrintSettings ) ) { m_printDialogData.ConvertFromNative() ; result = wxID_OK ; @@ -89,92 +99,92 @@ int wxPrintDialog::ShowModal() wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; dialog.ShowModal(); } - ::UMAPrClose() ; + ::UMAPrClose(NULL) ; #else #if PM_USE_SESSION_APIS PMPrintSession macPrintSession = kPMNoReference; Boolean accepted; - err = ::UMAPrOpen(&macPrintSession) ; - if ( err == noErr ) - { - m_printDialogData.ConvertToNative() ; - - // Set up a valid PageFormat object. - if (m_printDialogData.GetPrintData().m_macPageFormat == kPMNoPageFormat) - { - err = PMCreatePageFormat(&m_printDialogData.GetPrintData().m_macPageFormat); - - // Note that PMPageFormat is not session-specific, but calling - // PMSessionDefaultPageFormat assigns values specific to the printer - // associated with the current printing session. - if ((err == noErr) && - (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) - { - err = PMSessionDefaultPageFormat(macPrintSession, - m_printDialogData.GetPrintData().m_macPageFormat); - } - } - else - { - err = PMSessionValidatePageFormat(macPrintSession, - m_printDialogData.GetPrintData().m_macPageFormat, - kPMDontWantBoolean); - } + err = ::UMAPrOpen(&macPrintSession) ; + if ( err == noErr ) + { + m_printDialogData.ConvertToNative() ; + + // Set up a valid PageFormat object. + if (m_printDialogData.GetPrintData().m_macPageFormat == kPMNoPageFormat) + { + err = PMCreatePageFormat((PMPageFormat *)&m_printDialogData.GetPrintData().m_macPageFormat); + + // Note that PMPageFormat is not session-specific, but calling + // PMSessionDefaultPageFormat assigns values specific to the printer + // associated with the current printing session. + if ((err == noErr) && + (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) + { + err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, + (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat); + } + } + else + { + err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, + (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, + kPMDontWantBoolean); + } - // Set up a valid PrintSettings object. - if (m_printDialogData.GetPrintData().m_macPrintSettings == kPMNoPrintSettings) - { - err = PMCreatePrintSettings(&m_printDialogData.GetPrintData().m_macPrintSettings); - - // Note that PMPrintSettings is not session-specific, but calling - // PMSessionDefaultPrintSettings assigns values specific to the printer - // associated with the current printing session. - if ((err == noErr) && - (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings)) - { - err = PMSessionDefaultPrintSettings(macPrintSession, - m_printDialogData.GetPrintData().m_macPrintSettings); - } - } - else - { - err = PMSessionValidatePrintSettings(macPrintSession, - m_printDialogData.GetPrintData().m_macPrintSettings, - kPMDontWantBoolean); - } - // Set a valid page range before displaying the Print dialog - if (err == noErr) - { - // err = PMSetPageRange(m_printDialogData.GetPrintData().m_macPrintSettings, - // minPage, maxPage); - } - - // Display the Print dialog. - if (err == noErr) - { - err = PMSessionPrintDialog(macPrintSession, - m_printDialogData.GetPrintData().m_macPrintSettings, - m_printDialogData.GetPrintData().m_macPageFormat, - &accepted); - if ((err == noErr) && !accepted) - { - err = kPMCancel; // user clicked Cancel button - } - } - if ( err == noErr ) - { - m_printDialogData.ConvertFromNative() ; - result = wxID_OK ; - } - } - if ((err != noErr) && (err != kPMCancel)) - { - message.Printf( "Print Error %d", err ) ; - wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; - dialog.ShowModal(); - } - ::UMAPrClose(&macPrintSession) ; + // Set up a valid PrintSettings object. + if (m_printDialogData.GetPrintData().m_macPrintSettings == kPMNoPrintSettings) + { + err = PMCreatePrintSettings((PMPrintSettings *)&m_printDialogData.GetPrintData().m_macPrintSettings); + + // Note that PMPrintSettings is not session-specific, but calling + // PMSessionDefaultPrintSettings assigns values specific to the printer + // associated with the current printing session. + if ((err == noErr) && + (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings)) + { + err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession, + (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings); + } + } + else + { + err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession, + (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, + kPMDontWantBoolean); + } + // Set a valid page range before displaying the Print dialog + if (err == noErr) + { + // err = PMSetPageRange(m_printDialogData.GetPrintData().m_macPrintSettings, + // minPage, maxPage); + } + + // Display the Print dialog. + if (err == noErr) + { + err = PMSessionPrintDialog((PMPrintSession)macPrintSession, + (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings, + (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat, + &accepted); + if ((err == noErr) && !accepted) + { + err = kPMCancel; // user clicked Cancel button + } + } + if ( err == noErr ) + { + m_printDialogData.ConvertFromNative() ; + result = wxID_OK ; + } + } + if ((err != noErr) && (err != kPMCancel)) + { + message.Printf( "Print Error %d", err ) ; + wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; + dialog.ShowModal(); + } + ::UMAPrClose(&macPrintSession) ; #else #pragma warning "TODO: Printing for carbon without session apis" #endif @@ -224,11 +234,11 @@ int wxPageSetupDialog::ShowModal() wxString message ; #if !TARGET_CARBON - err = ::UMAPrOpen() ; + err = ::UMAPrOpen(NULL) ; if ( err == noErr ) { m_pageSetupData.ConvertToNative() ; - if ( ::PrStlDialog( (THPrint) m_pageSetupData.GetPrintData().m_macPrintInfo ) ) + if ( ::PrStlDialog( (THPrint) m_pageSetupData.GetPrintData().m_macPrintSettings ) ) { m_pageSetupData.ConvertFromNative() ; result = wxID_OK ; @@ -241,66 +251,66 @@ int wxPageSetupDialog::ShowModal() wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; dialog.ShowModal(); } - ::UMAPrClose() ; + ::UMAPrClose(NULL) ; #else #if PM_USE_SESSION_APIS PMPrintSession macPrintSession = kPMNoReference; Boolean accepted; - err = ::UMAPrOpen(&macPrintSession) ; - if ( err == noErr ) - { - m_pageSetupData.ConvertToNative() ; - - // Set up a valid PageFormat object. - if (m_pageSetupData.GetPrintData().m_macPageFormat == kPMNoPageFormat) - { - err = PMCreatePageFormat(&m_pageSetupData.GetPrintData().m_macPageFormat); - - // Note that PMPageFormat is not session-specific, but calling - // PMSessionDefaultPageFormat assigns values specific to the printer - // associated with the current printing session. - if ((err == noErr) && - (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) - { - err = PMSessionDefaultPageFormat(macPrintSession, - m_pageSetupData.GetPrintData().m_macPageFormat); - } - } - else - { - err = PMSessionValidatePageFormat(macPrintSession, - m_pageSetupData.GetPrintData().m_macPageFormat, - kPMDontWantBoolean); - } - - // Display the Page Setup dialog. - if (err == noErr) - { - err = PMSessionPageSetupDialog(macPrintSession, - m_pageSetupData.GetPrintData().m_macPageFormat, - &accepted); - if ((err == noErr) && !accepted) - { - err = kPMCancel; // user clicked Cancel button - } - } - - // If the user did not cancel, flatten and save the PageFormat object - // with our document. - if (err == noErr) { - // err = FlattenAndSavePageFormat(m_pageSetupData.GetPrintData().m_macPageFormat); - m_pageSetupData.ConvertFromNative() ; - result = wxID_OK ; - } - } - if ((err != noErr) && (err != kPMCancel)) - { - message.Printf( "Print Error %d", err ) ; - wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; - dialog.ShowModal(); - } - ::UMAPrClose(&macPrintSession) ; + err = ::UMAPrOpen(&macPrintSession) ; + if ( err == noErr ) + { + m_pageSetupData.ConvertToNative() ; + + // Set up a valid PageFormat object. + if (m_pageSetupData.GetPrintData().m_macPageFormat == kPMNoPageFormat) + { + err = PMCreatePageFormat((PMPageFormat *)&m_pageSetupData.GetPrintData().m_macPageFormat); + + // Note that PMPageFormat is not session-specific, but calling + // PMSessionDefaultPageFormat assigns values specific to the printer + // associated with the current printing session. + if ((err == noErr) && + (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat)) + { + err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession, + (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat); + } + } + else + { + err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession, + (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, + kPMDontWantBoolean); + } + + // Display the Page Setup dialog. + if (err == noErr) + { + err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession, + (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat, + &accepted); + if ((err == noErr) && !accepted) + { + err = kPMCancel; // user clicked Cancel button + } + } + + // If the user did not cancel, flatten and save the PageFormat object + // with our document. + if (err == noErr) { + // err = FlattenAndSavePageFormat(m_pageSetupData.GetPrintData().m_macPageFormat); + m_pageSetupData.ConvertFromNative() ; + result = wxID_OK ; + } + } + if ((err != noErr) && (err != kPMCancel)) + { + message.Printf( "Print Error %d", err ) ; + wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; + dialog.ShowModal(); + } + ::UMAPrClose(&macPrintSession) ; #else #pragma warning "TODO: Printing for carbon without session apis" #endif