]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 1583316 ] set media source for printing
authorJulian Smart <julian@anthemion.co.uk>
Sun, 29 Oct 2006 17:29:40 +0000 (17:29 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 29 Oct 2006 17:29:40 +0000 (17:29 +0000)
by d2walter

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42627 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cmndata.h
src/common/cmndata.cpp
src/msw/printdlg.cpp

index a1a063ec272e078b6b7fcba12581e186b81387b8..9ae7f96a68503a5cc6535d7a3a72ada09193c71a 100644 (file)
@@ -166,6 +166,7 @@ enum wxPrintBin
     wxPRINTBIN_USER
 };
 
+const int wxPRINTMEDIA_DEFAULT = 0;
 
 class WXDLLEXPORT wxPrintData: public wxObject
 {
@@ -191,6 +192,7 @@ public:
     wxPrintQuality GetQuality() const { return m_printQuality; }
     wxPrintBin GetBin() const { return m_bin; }
     wxPrintMode GetPrintMode() const { return m_printMode; }
+    int GetMedia() const { return m_media; }
 
     void SetNoCopies(int v) { m_printNoCopies = v; }
     void SetCollate(bool flag) { m_printCollate = flag; }
@@ -203,6 +205,7 @@ public:
     void SetPaperSize(const wxSize& sz) { m_paperSize = sz; }
     void SetQuality(wxPrintQuality quality) { m_printQuality = quality; }
     void SetBin(wxPrintBin bin) { m_bin = bin; }
+    void SetMedia(int media) { m_media = media; }
     void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; }
 
     wxString GetFilename() const { return m_filename; }
@@ -246,6 +249,7 @@ public:
 
 private:
     wxPrintBin      m_bin;
+    int             m_media;
     wxPrintMode     m_printMode;
 
     int             m_printNoCopies;
index a60068a9eef89dc77e365aa42d797ef32be8037b..2ab2f2a670fb30e17f6fe27e251692025d23fce5 100644 (file)
@@ -150,6 +150,7 @@ wxFontDialogBase::~wxFontDialogBase()
 wxPrintData::wxPrintData()
 {
     m_bin = wxPRINTBIN_DEFAULT;
+    m_media = wxPRINTMEDIA_DEFAULT;
     m_printMode = wxPRINT_MODE_PRINTER;
     m_printOrientation = wxPORTRAIT;
     m_printNoCopies = 1;
@@ -224,6 +225,7 @@ void wxPrintData::operator=(const wxPrintData& data)
     m_paperId = data.m_paperId;
     m_paperSize = data.m_paperSize;
     m_bin = data.m_bin;
+    m_media = data.m_media;
     m_printMode = data.m_printMode;
     m_filename = data.m_filename;
 
index 363e9302c6e00c4f0bece4290cefa0b77eabeeaa..e692c3104b0aa7c8f8cbeb2194f232b1515d568d 100644 (file)
@@ -198,7 +198,11 @@ bool wxWindowsPrintNativeData::TransferTo( wxPrintData &data )
         } else {
             data.SetBin(wxPRINTBIN_DEFAULT);
         }
-
+        if (devMode->dmFields & DM_MEDIATYPE)
+        {
+            wxASSERT(devMode->dmMediaType != wxPRINTMEDIA_DEFAULT);
+            data.SetMedia(devMode->dmMediaType);
+        }
         //// Printer name
         if (devMode->dmDeviceName[0] != 0)
             // This syntax fixes a crash when using VS 7.1
@@ -547,7 +551,11 @@ bool wxWindowsPrintNativeData::TransferFrom( const wxPrintData &data )
 
             devMode->dmFields |= DM_DEFAULTSOURCE;
         }
-
+        if (data.GetMedia() != wxPRINTMEDIA_DEFAULT)
+        {
+            devMode->dmMediaType = data.GetMedia();
+            devMode->dmFields |= DM_MEDIATYPE;
+        }
         GlobalUnlock(hDevMode);
     }