X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/10207b728dcc7e3dbb8acaf70cfb2d0cecbc78b2..e7300ec6d9ebbd1cfa2fcf12c0ce6e5aee85a152:/src/common/cmndata.cpp diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 7d997f1bde..2fe0f2ff51 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -40,7 +40,7 @@ #include "wx/log.h" // For compatibility -#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT +#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXX11__)|| defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT #define wxCOMPATIBILITY_WITH_PRINTSETUPDATA 1 #endif @@ -83,7 +83,17 @@ #ifdef __WXMAC__ #include "wx/mac/uma.h" - + +#if defined(TARGET_CARBON) && !defined(__DARWIN__) +# if PM_USE_SESSION_APIS +# include +# endif +# include +#endif + +#ifndef __DARWIN__ + #include "Printing.h" +#endif #define mm2pt 2.83464566929 #define pt2mm 0.352777777778 #endif // Mac @@ -119,7 +129,7 @@ wxColourData::~wxColourData() { } -void wxColourData::SetCustomColour(int i, wxColour& colour) +void wxColourData::SetCustomColour(int i, const wxColour& colour) { if (i > 15 || i < 0) return; @@ -186,44 +196,46 @@ wxPrintData::wxPrintData() 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) ; + err = ::UMAPrOpen(&macPrintSession) ; + if ( err == noErr ) + { + err = PMCreatePageFormat((PMPageFormat *)&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((PMPrintSession)macPrintSession, + (PMPageFormat)m_macPageFormat); + } + + err = PMCreatePrintSettings((PMPrintSettings *)&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((PMPrintSession)macPrintSession, + (PMPrintSettings)m_macPrintSettings); + } + } + ::UMAPrClose(&macPrintSession) ; #endif #else - m_macPrintInfo = (THPrint) NewHandleClear( sizeof( TPrint ) ); - (**m_macPrintInfo).iPrVersion = 0; // something invalid + m_macPrintSettings = (THPrint) NewHandleClear( sizeof( TPrint ) ); + (**(THPrint)m_macPrintSettings).iPrVersion = 0; // something invalid - (**m_macPrintInfo).prInfo.iHRes = 72; - (**m_macPrintInfo).prInfo.iVRes = 72; + (**(THPrint)m_macPrintSettings).prInfo.iHRes = 72; + (**(THPrint)m_macPrintSettings).prInfo.iVRes = 72; Rect r1 = { 0, 0, 8*72 - 2 * 18, 11*72 - 2 * 36 }; - (**m_macPrintInfo).prInfo.rPage = r1;// must have its top left & (0,0) + (**(THPrint)m_macPrintSettings).prInfo.rPage = r1;// must have its top left & (0,0) Rect r2 = { -18, -36, 8*72 - 18, 11*72 - 36 }; - (**m_macPrintInfo).rPaper = r2; - (**m_macPrintInfo).prStl.iPageV = 11 * 120 ; // 11 inches in 120th of an inch - (**m_macPrintInfo).prStl.iPageH = 8 * 120 ; // 8 inches in 120th of an inch + (**(THPrint)m_macPrintSettings).rPaper = r2; + (**(THPrint)m_macPrintSettings).prStl.iPageV = 11 * 120 ; // 11 inches in 120th of an inch + (**(THPrint)m_macPrintSettings).prStl.iPageH = 8 * 120 ; // 8 inches in 120th of an inch #endif #endif m_printOrientation = wxPORTRAIT; @@ -261,7 +273,7 @@ wxPrintData::wxPrintData(const wxPrintData& printData) m_macPageFormat = kPMNoPageFormat; m_macPrintSettings = kPMNoPrintSettings; #else - m_macPrintInfo = NULL; + m_macPrintSettings = NULL; #endif #endif (*this) = printData; @@ -299,7 +311,7 @@ wxPrintData::~wxPrintData() } #else - wxASSERT( m_macPrintInfo ); + wxASSERT( m_macPrintSettings ); // we should perhaps delete #endif #endif @@ -768,7 +780,7 @@ void wxPrintData::ConvertToNative() { #if TARGET_CARBON #else - (**m_macPrintInfo).prJob.iCopies = m_printNoCopies; + (**(THPrint)m_macPrintSettings).prJob.iCopies = m_printNoCopies; #endif } @@ -776,7 +788,7 @@ void wxPrintData::ConvertFromNative() { #if TARGET_CARBON #else - m_printNoCopies = (**m_macPrintInfo).prJob.iCopies; + m_printNoCopies = (**(THPrint)m_macPrintSettings).prJob.iCopies; #endif } #endif @@ -786,8 +798,8 @@ void wxPrintData::operator=(const wxPrintData& data) #ifdef __WXMAC__ #if TARGET_CARBON #else - m_macPrintInfo = data.m_macPrintInfo; - HandToHand( (Handle*) &m_macPrintInfo ); + m_macPrintSettings = data.m_macPrintSettings; + HandToHand( (Handle*) &m_macPrintSettings ); #endif #endif m_printNoCopies = data.m_printNoCopies; @@ -1088,8 +1100,8 @@ void wxPrintDialogData::ConvertToNative() { #if TARGET_CARBON #else - (**m_printData.m_macPrintInfo).prJob.iFstPage = m_printFromPage; - (**m_printData.m_macPrintInfo).prJob.iLstPage = m_printToPage; + (**(THPrint)m_printData.m_macPrintSettings).prJob.iFstPage = m_printFromPage; + (**(THPrint)m_printData.m_macPrintSettings).prJob.iLstPage = m_printToPage; m_printData.ConvertToNative(); #endif } @@ -1099,8 +1111,8 @@ void wxPrintDialogData::ConvertFromNative() #if TARGET_CARBON #else m_printData.ConvertFromNative(); - m_printFromPage = (**m_printData.m_macPrintInfo).prJob.iFstPage; - m_printToPage = (**m_printData.m_macPrintInfo).prJob.iLstPage; + m_printFromPage = (**(THPrint)m_printData.m_macPrintSettings).prJob.iFstPage; + m_printToPage = (**(THPrint)m_printData.m_macPrintSettings).prJob.iLstPage; #endif } #endif @@ -1413,16 +1425,16 @@ void wxPageSetupDialogData::ConvertToNative() // on mac the paper rect has a negative top left corner, because the page rect (printable area) is at 0,0 #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 ); + (**(THPrint)m_printData.m_macPrintSettings).rPaper.left = int( ((double) m_minMarginTopLeft.x)*mm2pt ); + (**(THPrint)m_printData.m_macPrintSettings).rPaper.top = int( ((double) m_minMarginTopLeft.y)*mm2pt ); - (**m_printData.m_macPrintInfo).rPaper.right = int( ((double) m_paperSize.x - m_minMarginTopLeft.x)*mm2pt ); - (**m_printData.m_macPrintInfo).rPaper.bottom = int( ((double) m_paperSize.y - m_minMarginTopLeft.y)*mm2pt ); + (**(THPrint)m_printData.m_macPrintSettings).rPaper.right = int( ((double) m_paperSize.x - m_minMarginTopLeft.x)*mm2pt ); + (**(THPrint)m_printData.m_macPrintSettings).rPaper.bottom = int( ((double) m_paperSize.y - m_minMarginTopLeft.y)*mm2pt ); - (**m_printData.m_macPrintInfo).prInfo.rPage.left = 0; - (**m_printData.m_macPrintInfo).prInfo.rPage.top = 0; - (**m_printData.m_macPrintInfo).prInfo.rPage.right = int( ((double) m_paperSize.x - m_minMarginTopLeft.x - m_minMarginBottomRight.x)*mm2pt ); - (**m_printData.m_macPrintInfo).prInfo.rPage.bottom = int( ((double) m_paperSize.y - m_minMarginTopLeft.y - m_minMarginBottomRight.y)*mm2pt ); + (**(THPrint)m_printData.m_macPrintSettings).prInfo.rPage.left = 0; + (**(THPrint)m_printData.m_macPrintSettings).prInfo.rPage.top = 0; + (**(THPrint)m_printData.m_macPrintSettings).prInfo.rPage.right = int( ((double) m_paperSize.x - m_minMarginTopLeft.x - m_minMarginBottomRight.x)*mm2pt ); + (**(THPrint)m_printData.m_macPrintSettings).prInfo.rPage.bottom = int( ((double) m_paperSize.y - m_minMarginTopLeft.y - m_minMarginBottomRight.y)*mm2pt ); #endif } @@ -1432,14 +1444,14 @@ void wxPageSetupDialogData::ConvertFromNative() #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; + m_paperSize.x = ((double) (**(THPrint)m_printData.m_macPrintSettings).rPaper.right - (**(THPrint)m_printData.m_macPrintSettings).rPaper.left ) * pt2mm; + m_paperSize.y = ((double) (**(THPrint)m_printData.m_macPrintSettings).rPaper.bottom - (**(THPrint)m_printData.m_macPrintSettings).rPaper.top ) * pt2mm; - m_minMarginTopLeft.x = ((double) -(**m_printData.m_macPrintInfo).rPaper.left ) * pt2mm; - m_minMarginTopLeft.y = ((double) -(**m_printData.m_macPrintInfo).rPaper.top ) * pt2mm; + m_minMarginTopLeft.x = ((double) -(**(THPrint)m_printData.m_macPrintSettings).rPaper.left ) * pt2mm; + m_minMarginTopLeft.y = ((double) -(**(THPrint)m_printData.m_macPrintSettings).rPaper.top ) * pt2mm; - m_minMarginBottomRight.x = ((double) (**m_printData.m_macPrintInfo).rPaper.right - (**m_printData.m_macPrintInfo).prInfo.rPage.right ) * pt2mm; - m_minMarginBottomRight.y = ((double)(**m_printData.m_macPrintInfo).rPaper.bottom - (**m_printData.m_macPrintInfo).prInfo.rPage.bottom ) * pt2mm; + m_minMarginBottomRight.x = ((double) (**(THPrint)m_printData.m_macPrintSettings).rPaper.right - (**(THPrint)m_printData.m_macPrintSettings).prInfo.rPage.right ) * pt2mm; + m_minMarginBottomRight.y = ((double)(**(THPrint)m_printData.m_macPrintSettings).rPaper.bottom - (**(THPrint)m_printData.m_macPrintSettings).prInfo.rPage.bottom ) * pt2mm; #endif // adjust minimal values //TODO add custom fields in dialog for margins @@ -1500,12 +1512,9 @@ void wxPageSetupDialogData::CalculatePaperSizeFromId() wxSize sz = wxThePrintPaperDatabase->GetSize(m_printData.GetPaperId()); - if (sz.x != 0) - { - // sz is in 10ths of a mm, so multiply by 10. - m_paperSize.x = sz.x * 10; - m_paperSize.y = sz.y * 10; - } + // sz is in 10ths of a mm, while paper size is in mm + m_paperSize.x = sz.x / 10; + m_paperSize.y = sz.y / 10; } #endif // wxUSE_PRINTING_ARCHITECTURE