]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/printmac.cpp
Font (possible) fix
[wxWidgets.git] / src / mac / carbon / printmac.cpp
index bfccc761a58385483eab41db4a487109df2e8a4a..f6ad66c279772da5a1e034952eedd8e0dd0bb6d2 100644 (file)
@@ -9,10 +9,6 @@
 // Licence:       wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "printwin.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -262,8 +258,19 @@ void wxMacCarbonPrintData::TransferTo( wxPrintDialogData* data )
     UInt32 from , to ;
     PMGetFirstPage( m_macPrintSettings , &from ) ;
     PMGetLastPage( m_macPrintSettings , &to ) ;
-    data->SetFromPage( from ) ;
-    data->SetToPage( to ) ;
+    if ( to >= 0x7FFFFFFF ) //  due to an OS Bug we don't get back kPMPrintAllPages
+    {
+        data->SetAllPages( true ) ;
+        // This means all pages, more or less
+        data->SetFromPage(1);
+        data->SetToPage(32000);
+    }
+    else
+    {
+        data->SetFromPage( from ) ;
+        data->SetToPage( to ) ;
+        data->SetAllPages( false );
+    }
 }
 
 void wxMacCarbonPrintData::TransferFrom( wxPrintDialogData* data )
@@ -272,10 +279,14 @@ void wxMacCarbonPrintData::TransferFrom( wxPrintDialogData* data )
     PMSetCopies( m_macPrintSettings , data->GetNoCopies() , false ) ;
     PMSetFirstPage( m_macPrintSettings , data->GetFromPage() , false ) ;
 
-    int toPage = data->GetToPage();
-    if (toPage < 1)
-        toPage = data->GetFromPage();
-    PMSetLastPage( m_macPrintSettings , toPage , false ) ;
+    if (data->GetAllPages() || data->GetFromPage() == 0)
+    {
+       PMSetLastPage( m_macPrintSettings , (UInt32) kPMPrintAllPages, true ) ;
+       }
+       else
+       {
+       PMSetLastPage( m_macPrintSettings , (UInt32) data->GetToPage() , false ) ;
+       }
 }
 
 /*
@@ -538,7 +549,7 @@ void wxMacPrintPreview::DetermineScaling(void)
     // m_previewScale = (float)((float)screenWidth/(float)printerWidth);
     // m_previewScale = m_previewScale * (float)((float)screenXRes/(float)printerXRes);
     
-    m_previewScale = 1 ;
+    m_previewScale = 1 ; 
 }
 
 #endif