IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject)
#ifdef __WXMAC__
+ #include "wx/mac/uma.h"
+
#define mm2pt 2.83464566929
#define pt2mm 0.352777777778
#endif // Mac
#if TARGET_CARBON
m_macPageFormat = kPMNoPageFormat;
m_macPrintSettings = kPMNoPrintSettings;
+
+ #if PM_USE_SESSION_APIS
+ PMPrintSession macPrintSession = kPMNoReference;
+ OSStatus err;
+
+ err = ::UMAPrOpen(&macPrintSession) ;
+ if ( err == noErr )
+ {
+ err = PMCreatePageFormat(&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_macPageFormat != kPMNoPageFormat))
+ {
+ err = PMSessionDefaultPageFormat(macPrintSession, m_macPageFormat);
+ }
+
+ err = PMCreatePrintSettings(&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_macPrintSettings != kPMNoPrintSettings))
+ {
+ err = PMSessionDefaultPrintSettings(macPrintSession, m_macPrintSettings);
+ }
+ }
+ ::UMAPrClose(&macPrintSession) ;
+ #endif
#else
m_macPrintInfo = (THPrint) NewHandleClear( sizeof( TPrint ) );
(**m_macPrintInfo).iPrVersion = 0; // something invalid
m_devNames = (void*) NULL;
#elif defined( __WXMAC__ )
#if TARGET_CARBON
- m_macPageFormat = kPMNoPageFormat;
+ m_macPageFormat = kPMNoPageFormat;
m_macPrintSettings = kPMNoPrintSettings;
#else
m_macPrintInfo = NULL;
#if TARGET_CARBON
if (m_macPageFormat != kPMNoPageFormat)
{
+ #if PM_USE_SESSION_APIS
+ (void)PMRelease(m_macPageFormat);
+ #else
(void)PMDisposePageFormat(m_macPageFormat);
+ #endif
m_macPageFormat = kPMNoPageFormat;
}
if (m_macPrintSettings != kPMNoPrintSettings)
{
+ #if PM_USE_SESSION_APIS
+ (void)PMRelease(m_macPrintSettings);
+ #else
(void)PMDisposePrintSettings(m_macPrintSettings);
+ #endif
m_macPrintSettings = kPMNoPrintSettings;
}
+
#else
wxASSERT( m_macPrintInfo );
// we should perhaps delete
#ifdef __WXMAC__
void wxPrintData::ConvertToNative()
{
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
(**m_macPrintInfo).prJob.iCopies = m_printNoCopies;
#endif
void wxPrintData::ConvertFromNative()
{
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
m_printNoCopies = (**m_macPrintInfo).prJob.iCopies;
#endif
void wxPrintData::operator=(const wxPrintData& data)
{
#ifdef __WXMAC__
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
m_macPrintInfo = data.m_macPrintInfo;
HandToHand( (Handle*) &m_macPrintInfo );
#ifdef __WXMAC__
void wxPrintDialogData::ConvertToNative()
{
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
(**m_printData.m_macPrintInfo).prJob.iFstPage = m_printFromPage;
(**m_printData.m_macPrintInfo).prJob.iLstPage = m_printToPage;
void wxPrintDialogData::ConvertFromNative()
{
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
m_printData.ConvertFromNative();
m_printFromPage = (**m_printData.m_macPrintInfo).prJob.iFstPage;
{
m_printData.ConvertToNative();
// on mac the paper rect has a negative top left corner, because the page rect (printable area) is at 0,0
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
(**m_printData.m_macPrintInfo).rPaper.left = int( ((double) m_minMarginTopLeft.x)*mm2pt );
(**m_printData.m_macPrintInfo).rPaper.top = int( ((double) m_minMarginTopLeft.y)*mm2pt );
{
m_printData.ConvertFromNative ();
-#ifdef TARGET_CARBON
+#if TARGET_CARBON
#else
m_paperSize.x = ((double) (**m_printData.m_macPrintInfo).rPaper.right - (**m_printData.m_macPrintInfo).rPaper.left ) * pt2mm;
m_paperSize.y = ((double) (**m_printData.m_macPrintInfo).rPaper.bottom - (**m_printData.m_macPrintInfo).rPaper.top ) * pt2mm;