]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/dcprint.cpp
added wxGetMultiChoice() (which refuses to work for some reason - will fix
[wxWidgets.git] / src / mac / dcprint.cpp
index 2b0bf64c5051766ae0808e7f7f7843493235f19a..257c74206b6a7707bae2d3479b742e1376374e50 100644 (file)
@@ -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
+
 }