]> git.saurik.com Git - wxWidgets.git/commitdiff
support for the AllPages attribute, proper round trip and fixes
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 1 Sep 2005 05:52:20 +0000 (05:52 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 1 Sep 2005 05:52:20 +0000 (05:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35397 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/printmac.cpp

index 859b67e79d41fe8de83d6d60356bb7179d724545..87c3b1bd594e71043226266df9655b29b5257e29 100644 (file)
@@ -262,8 +262,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,14 +283,13 @@ void wxMacCarbonPrintData::TransferFrom( wxPrintDialogData* data )
     PMSetCopies( m_macPrintSettings , data->GetNoCopies() , false ) ;
     PMSetFirstPage( m_macPrintSettings , data->GetFromPage() , false ) ;
 
-    int toPage = data->GetToPage();
-    if (toPage < 1)
+    if (data->GetAllPages() || data->GetFromPage() == 0)
     {
-       PMSetLastPage( m_macPrintSettings , kPMPrintAllPages, true ) ;
+       PMSetLastPage( m_macPrintSettings , (UInt32) kPMPrintAllPages, true ) ;
        }
        else
        {
-       PMSetLastPage( m_macPrintSettings , toPage , false ) ;
+       PMSetLastPage( m_macPrintSettings , (UInt32) data->GetToPage() , false ) ;
        }
 }
 
@@ -543,7 +553,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