]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/cmndata.cpp
link preventing typo fixed
[wxWidgets.git] / src / common / cmndata.cpp
index 523c9841b6fde5ec6c9fc0b8e117738354c817f6..de57dda478225b0e3bcbb3d0a2d1008333a8db88 100644 (file)
@@ -40,7 +40,7 @@
 #include "wx/log.h"
 
 // For compatibility
-#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__)) && wxUSE_POSTSCRIPT
+#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
     #define wxCOMPATIBILITY_WITH_PRINTSETUPDATA 1
 #endif
 
@@ -181,7 +181,7 @@ wxPrintData::wxPrintData()
     m_macPrintSettings = kPMNoPrintSettings;
 #else
        m_macPrintInfo = (THPrint) NewHandleClear( sizeof( TPrint ) ) ;
-       (**m_macPrintInfo).iPrVersion = 0;                                      // something invalid 
+       (**m_macPrintInfo).iPrVersion = 0;                                      // something invalid
 
        (**m_macPrintInfo).prInfo.iHRes = 72;
        (**m_macPrintInfo).prInfo.iVRes = 72;
@@ -190,8 +190,8 @@ wxPrintData::wxPrintData()
 
        Rect r2 = { -18, -36, 8*72 - 18, 11*72 - 36  } ;
        (**m_macPrintInfo).rPaper = r2;
-       (**m_macPrintInfo).prStl.iPageV = 11 * 120 ;                            // 11 inches in 120th of an inch 
-       (**m_macPrintInfo).prStl.iPageH = 8 * 120 ;                             // 8 inches in 120th of an inch 
+       (**m_macPrintInfo).prStl.iPageV = 11 * 120 ;                            // 11 inches in 120th of an inch
+       (**m_macPrintInfo).prStl.iPageH = 8 * 120 ;                             // 8 inches in 120th of an inch
 #endif
 #endif
     m_printOrientation = wxPORTRAIT;
@@ -259,7 +259,7 @@ wxPrintData::~wxPrintData()
     }
 #else
        wxASSERT( m_macPrintInfo ) ;
-       // we should perhaps delete 
+       // we should perhaps delete
 #endif
 #endif
 }
@@ -589,7 +589,11 @@ void wxPrintData::ConvertFromNative()
 #ifndef __WXWINE__
         //// Paper size
 
-        if (devMode->dmFields & DM_PAPERSIZE)
+        // We don't know size of user defined paper and some buggy drivers
+        // set both DM_PAPERSIZE and DM_PAPERWIDTH & DM_PAPERLENGTH. Since
+        // dmPaperSize >= DMPAPER_USER wouldn't be in wxWin's database, this
+        // code wouldn't set m_paperSize correctly.
+        if ((devMode->dmFields & DM_PAPERSIZE) && (devMode->dmPaperSize < DMPAPER_USER))
         {
             if (wxThePrintPaperDatabase)
             {
@@ -915,11 +919,11 @@ void wxPrintDialogData::ConvertToNative()
     m_printData.SetNativeDataDevNames((void*) NULL);
 
     pd->hDC = (HDC) NULL;
-    pd->nFromPage = (UINT)m_printFromPage;
-    pd->nToPage = (UINT)m_printToPage;
-    pd->nMinPage = (UINT)m_printMinPage;
-    pd->nMaxPage = (UINT)m_printMaxPage;
-    pd->nCopies = (UINT)m_printNoCopies;
+    pd->nFromPage = (WORD)m_printFromPage;
+    pd->nToPage = (WORD)m_printToPage;
+    pd->nMinPage = (WORD)m_printMinPage;
+    pd->nMaxPage = (WORD)m_printMaxPage;
+    pd->nCopies = (WORD)m_printNoCopies;
 
     pd->Flags = PD_RETURNDC ;
 
@@ -942,7 +946,7 @@ void wxPrintDialogData::ConvertToNative()
 
     if ( m_printAllPages )
         pd->Flags |= PD_ALLPAGES;
-    if ( m_printAllPages )
+    if ( m_printSelection )
         pd->Flags |= PD_SELECTION;
     if ( m_printCollate )
         pd->Flags |= PD_COLLATE;