]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/dcprint.cpp
Fix for building under 10.4, where the BlendMode constants are not defined.
[wxWidgets.git] / src / osx / carbon / dcprint.cpp
index ccc58d99ffcf845534d3988aeffa3b732446948a..08033ff558103460d31c52be491443236f200f3b 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/mac/carbon/dcprint.cpp
+// Name:        src/osx/carbon/dcprint.cpp
 // Purpose:     wxPrinterDC class
 // Author:      Julian Smart
 // Modified by:
@@ -25,9 +25,9 @@
     #include "wx/math.h"
 #endif
 
-#include "wx/mac/uma.h"
-#include "wx/mac/private/print.h"
-#include "wx/mac/carbon/dcprint.h"
+#include "wx/osx/private.h"
+#include "wx/osx/private/print.h"
+#include "wx/osx/dcprint.h"
 #include "wx/graphics.h"
 
 IMPLEMENT_ABSTRACT_CLASS(wxPrinterDCImpl, wxGCDCImpl)
@@ -73,10 +73,10 @@ private :
 wxMacCarbonPrinterDC::wxMacCarbonPrinterDC( wxPrintData* data )
 {
     m_err = noErr ;
-    wxMacCarbonPrintData *native = (wxMacCarbonPrintData*) data->GetNativeData() ;
+    wxOSXPrintData *native = (wxOSXPrintData*) data->GetNativeData() ;
 
     PMRect rPage;
-    m_err = PMGetAdjustedPageRect(native->m_macPageFormat, &rPage);
+    m_err = PMGetAdjustedPageRect(native->GetPageFormat(), &rPage);
     if ( m_err != noErr )
         return;
 
@@ -85,14 +85,14 @@ wxMacCarbonPrinterDC::wxMacCarbonPrinterDC( wxPrintData* data )
 
     PMResolution res;
 
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
     if ( PMPrinterGetOutputResolution != NULL )
     {
         PMPrinter printer;
-        m_err = PMSessionGetCurrentPrinter(native->m_macPrintSession, &printer);
+        m_err = PMSessionGetCurrentPrinter(native->GetPrintSession(), &printer);
         if ( m_err == noErr )
         {
-            m_err = PMPrinterGetOutputResolution( printer, native->m_macPrintSettings, &res) ;
+            m_err = PMPrinterGetOutputResolution( printer, native->GetPrintSettings(), &res) ;
             if ( m_err == -9589 /* kPMKeyNotFound */ )
             {
                 m_err = noErr ;
@@ -103,11 +103,11 @@ wxMacCarbonPrinterDC::wxMacCarbonPrinterDC( wxPrintData* data )
     else
 #endif
     {
-#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 
-        m_err = PMGetResolution((PMPageFormat) (native->m_macPageFormat), &res);
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
+        m_err = PMGetResolution((PMPageFormat) (native->GetPageFormat()), &res);
 #endif
     }
-    
+
     m_ppi = wxSize(int(res.hRes), int(res.vRes));
 }
 
@@ -120,22 +120,27 @@ wxNativePrinterDC* wxNativePrinterDC::Create(wxPrintData* data)
     return new wxMacCarbonPrinterDC(data) ;
 }
 
-bool wxMacCarbonPrinterDC::StartDoc(  wxPrinterDC* dc , const wxString& WXUNUSED(message)  )
+bool wxMacCarbonPrinterDC::StartDoc(  wxPrinterDC* dc , const wxString& message  )
 {
     if ( m_err )
         return false ;
 
     wxPrinterDCImpl *impl = (wxPrinterDCImpl*) dc->GetImpl();
-    wxMacCarbonPrintData *native = (wxMacCarbonPrintData*) impl->GetPrintData().GetNativeData() ;
+    wxOSXPrintData *native = (wxOSXPrintData*) impl->GetPrintData().GetNativeData() ;
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+    if ( PMPrintSettingsSetJobName != NULL )
+        PMPrintSettingsSetJobName(native->GetPrintSettings(), wxCFStringRef(message));
+#endif
 
-    m_err = PMSessionBeginCGDocumentNoDialog(native->m_macPrintSession,
-              native->m_macPrintSettings,
-              native->m_macPageFormat);    
+    m_err = PMSessionBeginCGDocumentNoDialog(native->GetPrintSession(),
+              native->GetPrintSettings(),
+              native->GetPageFormat());
     if ( m_err != noErr )
         return false;
 
     PMRect rPage;
-    m_err = PMGetAdjustedPageRect(native->m_macPageFormat, &rPage);
+    m_err = PMGetAdjustedPageRect(native->GetPageFormat(), &rPage);
     if ( m_err != noErr )
         return false ;
 
@@ -143,14 +148,14 @@ bool wxMacCarbonPrinterDC::StartDoc(  wxPrinterDC* dc , const wxString& WXUNUSED
     m_maxY = wxCoord(rPage.bottom - rPage.top);
 
     PMResolution res;
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
     if ( PMPrinterGetOutputResolution != NULL )
     {
         PMPrinter printer;
-        m_err = PMSessionGetCurrentPrinter(native->m_macPrintSession, &printer);
+        m_err = PMSessionGetCurrentPrinter(native->GetPrintSession(), &printer);
         if ( m_err == noErr )
         {
-            m_err = PMPrinterGetOutputResolution( printer, native->m_macPrintSettings, &res) ;
+            m_err = PMPrinterGetOutputResolution( printer, native->GetPrintSettings(), &res) ;
             if ( m_err == -9589 /* kPMKeyNotFound */ )
             {
                 m_err = noErr ;
@@ -161,8 +166,8 @@ bool wxMacCarbonPrinterDC::StartDoc(  wxPrinterDC* dc , const wxString& WXUNUSED
     else
 #endif
     {
-#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 
-       m_err = PMGetResolution((PMPageFormat) (native->m_macPageFormat), &res);
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
+       m_err = PMGetResolution((PMPageFormat) (native->GetPageFormat()), &res);
 #endif
     }
 
@@ -176,9 +181,9 @@ void wxMacCarbonPrinterDC::EndDoc( wxPrinterDC* dc )
         return ;
 
     wxPrinterDCImpl *impl = (wxPrinterDCImpl*) dc->GetImpl();
-    wxMacCarbonPrintData *native = (wxMacCarbonPrintData*) impl->GetPrintData().GetNativeData() ;
+    wxOSXPrintData *native = (wxOSXPrintData*) impl->GetPrintData().GetNativeData() ;
 
-    m_err = PMSessionEndDocumentNoDialog(native->m_macPrintSession);
+    m_err = PMSessionEndDocumentNoDialog(native->GetPrintSession());
 }
 
 void wxMacCarbonPrinterDC::StartPage( wxPrinterDC* dc )
@@ -187,34 +192,34 @@ void wxMacCarbonPrinterDC::StartPage( wxPrinterDC* dc )
         return ;
 
     wxPrinterDCImpl *impl = (wxPrinterDCImpl*) dc->GetImpl();
-    wxMacCarbonPrintData *native = (wxMacCarbonPrintData*) impl->GetPrintData().GetNativeData() ;
+    wxOSXPrintData *native = (wxOSXPrintData*) impl->GetPrintData().GetNativeData() ;
 
-    m_err = PMSessionBeginPageNoDialog(native->m_macPrintSession,
-                 native->m_macPageFormat,
+    m_err = PMSessionBeginPageNoDialog(native->GetPrintSession(),
+                 native->GetPageFormat(),
                  nil);
 
     CGContextRef pageContext;
 
     if ( m_err == noErr )
     {
-        m_err = PMSessionGetCGGraphicsContext(native->m_macPrintSession,
+        m_err = PMSessionGetCGGraphicsContext(native->GetPrintSession(),
                                             &pageContext );
     }
 
     if ( m_err != noErr )
     {
-        PMSessionEndPageNoDialog(native->m_macPrintSession);
-        PMSessionEndDocumentNoDialog(native->m_macPrintSession);
+        PMSessionEndPageNoDialog(native->GetPrintSession());
+        PMSessionEndDocumentNoDialog(native->GetPrintSession());
     }
     else
     {
         PMRect rPage;
 
-        m_err = PMGetAdjustedPageRect(native->m_macPageFormat, &rPage);
+        m_err = PMGetAdjustedPageRect(native->GetPageFormat(), &rPage);
         if ( !m_err )
         {
             PMRect paperRect ;
-            PMGetAdjustedPaperRect( native->m_macPageFormat , &paperRect ) ;
+            PMGetAdjustedPaperRect( native->GetPageFormat() , &paperRect ) ;
             // make sure (0,0) is at the upper left of the printable area (wx conventions)
             // Core Graphics initially has the lower left of the paper as 0,0
             CGContextTranslateCTM( pageContext , (CGFloat) -paperRect.left , (CGFloat) paperRect.bottom ) ;
@@ -232,12 +237,12 @@ void wxMacCarbonPrinterDC::EndPage( wxPrinterDC* dc )
         return ;
 
     wxPrinterDCImpl *impl = (wxPrinterDCImpl*) dc->GetImpl();
-    wxMacCarbonPrintData *native = (wxMacCarbonPrintData*) impl->GetPrintData().GetNativeData() ;
+    wxOSXPrintData *native = (wxOSXPrintData*) impl->GetPrintData().GetNativeData() ;
 
-    m_err = PMSessionEndPageNoDialog(native->m_macPrintSession);
+    m_err = PMSessionEndPageNoDialog(native->GetPrintSession());
     if ( m_err != noErr )
     {
-        PMSessionEndDocumentNoDialog(native->m_macPrintSession);
+        PMSessionEndDocumentNoDialog(native->GetPrintSession());
     }
     // the cg context we got when starting the page isn't valid anymore, so replace it
     impl->SetGraphicsContext( wxGraphicsContext::Create() );
@@ -251,7 +256,7 @@ void wxMacCarbonPrinterDC::GetSize( int *w , int *h) const
         *h = m_maxY ;
 }
 
-wxSize wxMacCarbonPrinterDC::GetPPI() const 
+wxSize wxMacCarbonPrinterDC::GetPPI() const
 {
      return m_ppi ;
 };
@@ -281,7 +286,7 @@ wxPrinterDCImpl::wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& printda
         {
             wxSize sz = GetPPI();
             m_mm_to_pix_x = mm2inches * sz.x;
-            m_mm_to_pix_y = mm2inches * sz.y;        
+            m_mm_to_pix_y = mm2inches * sz.y;
         }
         // we need at least a measuring context because people start measuring before a page
         // gets printed at all
@@ -339,15 +344,15 @@ void wxPrinterDCImpl::EndDoc(void)
     }
 }
 
-wxRect wxPrinterDCImpl::GetPaperRect()
+wxRect wxPrinterDCImpl::GetPaperRect() const
 {
     wxCoord w, h;
     GetOwner()->GetSize(&w, &h);
     wxRect pageRect(0, 0, w, h);
-    wxMacCarbonPrintData *native = (wxMacCarbonPrintData*) m_printData.GetNativeData() ;
+    wxOSXPrintData *native = (wxOSXPrintData*) m_printData.GetNativeData() ;
     OSStatus err = noErr ;
     PMRect rPaper;
-    err = PMGetAdjustedPaperRect(native->m_macPageFormat, &rPaper);
+    err = PMGetAdjustedPaperRect(native->GetPageFormat(), &rPaper);
     if ( err != noErr )
         return pageRect;
     return wxRect(wxCoord(rPaper.left), wxCoord(rPaper.top),