X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/72e7876ba5ad16a1b03bb2449ea7886ec648854a..f1d93f0beeec9d88f8a225aa35a9ccc163dcdb15:/src/mac/dcprint.cpp diff --git a/src/mac/dcprint.cpp b/src/mac/dcprint.cpp index 2b0bf64c50..257c74206b 100644 --- a/src/mac/dcprint.cpp +++ b/src/mac/dcprint.cpp @@ -25,6 +25,7 @@ #include "wx/dcprint.h" #include "math.h" +#include "wx/mac/uma.h" #if !USE_SHARED_LIBRARY @@ -35,23 +36,25 @@ GrafPtr macPrintFormerPort = NULL ; wxPrinterDC::wxPrinterDC(const wxPrintData& printdata) { +#if !TARGET_CARBON OSErr err ; wxString message ; m_printData = printdata ; m_printData.ConvertToNative() ; - ::PrOpen() ; + ::UMAPrOpen() ; err = PrError() ; if ( err ) { message.Printf( "Print Error %d", err ) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; - PrClose() ; + UMAPrClose() ; } if ( ::PrValidate( m_printData.m_macPrintInfo ) ) { + ::PrStlDialog( m_printData.m_macPrintInfo ) ; // the driver has changed in the mean time, should we pop up a page setup dialog ? } err = PrError() ; @@ -59,20 +62,31 @@ wxPrinterDC::wxPrinterDC(const wxPrintData& printdata) { message.Printf( "Print Error %d", err ) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; - PrClose() ; + UMAPrClose() ; } ::GetPort( &macPrintFormerPort ) ; m_macPrintPort = ::PrOpenDoc( m_printData.m_macPrintInfo , NULL , NULL ) ; + err = PrError() ; + if ( err ) + { + message.Printf( "Print Error %d", err ) ; + wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; + UMAPrClose() ; + } // sets current port m_macPort = (GrafPtr ) m_macPrintPort ; m_ok = TRUE ; m_minY = m_minX = 0 ; m_maxX = (**m_printData.m_macPrintInfo).rPaper.right - (**m_printData.m_macPrintInfo).rPaper.left ; m_maxY = (**m_printData.m_macPrintInfo).rPaper.bottom - (**m_printData.m_macPrintInfo).rPaper.top ; +#else +#pragma warning "TODO:printing support for carbon" +#endif } wxPrinterDC::~wxPrinterDC(void) { +#if !TARGET_CARBON if ( m_ok ) { OSErr err ; @@ -93,11 +107,16 @@ wxPrinterDC::~wxPrinterDC(void) { message.Printf( "Print Error %d", err ) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; - PrClose() ; + UMAPrClose() ; } - ::PrClose() ; - ::SetPort( macPrintFormerPort ) ; + ::UMAPrClose() ; +// ::SetPort( macPrintFormerPort ) ; + ::SetPort( LMGetWMgrPort() ) ; + m_macPortHelper.Clear() ; } +#else +#pragma warning "TODO:printing support for carbon" +#endif } bool wxPrinterDC::StartDoc( const wxString& WXUNUSED(message) ) @@ -111,13 +130,30 @@ void wxPrinterDC::EndDoc(void) void wxPrinterDC::StartPage(void) { +#if !TARGET_CARBON if ( !m_ok ) return ; + + m_logicalFunction = wxCOPY; +// m_textAlignment = wxALIGN_TOP_LEFT; + m_backgroundMode = wxTRANSPARENT; + + m_textForegroundColour = *wxBLACK; + m_textBackgroundColour = *wxWHITE; + m_pen = *wxBLACK_PEN; + m_font = *wxNORMAL_FONT; + m_brush = *wxTRANSPARENT_BRUSH; + m_backgroundBrush = *wxWHITE_BRUSH; + + m_macFontInstalled = false ; + m_macBrushInstalled = false ; + m_macPenInstalled = false ; + OSErr err ; wxString message ; - PrOpenPage( m_macPrintPort , NULL ) ; + PrOpenPage( m_macPrintPort , NULL ) ; SetOrigin( - (**m_printData.m_macPrintInfo).rPaper.left , - (**m_printData.m_macPrintInfo).rPaper.top ) ; Rect clip = { -32000 , -32000 , 32000 , 32000 } ; ::ClipRect( &clip ) ; @@ -128,14 +164,18 @@ void wxPrinterDC::StartPage(void) wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; ::PrClosePage( m_macPrintPort) ; ::PrCloseDoc( m_macPrintPort ) ; - ::PrClose() ; + ::UMAPrClose() ; ::SetPort( macPrintFormerPort ) ; m_ok = FALSE ; } +#else +#pragma warning "TODO:printing support for carbon" +#endif } void wxPrinterDC::EndPage(void) { +#if !TARGET_CARBON if ( !m_ok ) return ; @@ -149,8 +189,12 @@ void wxPrinterDC::EndPage(void) message.Printf( "Print Error %d", err ) ; wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ; ::PrCloseDoc( m_macPrintPort ) ; - ::PrClose() ; + ::UMAPrClose() ; ::SetPort( macPrintFormerPort ) ; m_ok = FALSE ; } +#else +#pragma warning "TODO:printing support for carbon" +#endif + }