added possibility to specify printer bin (patch 910272)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2004-09-17 22:20:10 +00:00
parent d79c8ea96f
commit 600902562d
4 changed files with 203 additions and 0 deletions

View File

@@ -171,6 +171,7 @@ wxPrintData::wxPrintData()
#elif defined( __WXMAC__ )
m_nativePrintData = wxNativePrintData::Create() ;
#endif
m_bin = wxPRINTBIN_DEFAULT;
m_printOrientation = wxPORTRAIT;
m_printNoCopies = 1;
m_printCollate = false;
@@ -479,6 +480,32 @@ void wxPrintData::ConvertToNative()
devMode->dmPrintQuality = quality;
devMode->dmFields |= DM_PRINTQUALITY;
if ( m_bin != wxPRINTBIN_DEFAULT )
{
switch ( m_bin )
{
case wxPRINTBIN_ONLYONE: devMode->dmDefaultSource = DMBIN_ONLYONE; break;
case wxPRINTBIN_LOWER: devMode->dmDefaultSource = DMBIN_LOWER; break;
case wxPRINTBIN_MIDDLE: devMode->dmDefaultSource = DMBIN_MIDDLE; break;
case wxPRINTBIN_MANUAL: devMode->dmDefaultSource = DMBIN_MANUAL; break;
case wxPRINTBIN_ENVELOPE: devMode->dmDefaultSource = DMBIN_ENVELOPE; break;
case wxPRINTBIN_ENVMANUAL: devMode->dmDefaultSource = DMBIN_ENVMANUAL; break;
case wxPRINTBIN_AUTO: devMode->dmDefaultSource = DMBIN_AUTO,; break;
case wxPRINTBIN_TRACTOR: devMode->dmDefaultSource = DMBIN_TRACTOR; break;
case wxPRINTBIN_SMALLFMT: devMode->dmDefaultSource = DMBIN_SMALLFMT; break;
case wxPRINTBIN_LARGEFMT: devMode->dmDefaultSource = DMBIN_LARGEFMT; break;
case wxPRINTBIN_LARGECAPACITY: devMode->dmDefaultSource = DMBIN_LARGECAPACITY; break;
case wxPRINTBIN_CASSETTE: devMode->dmDefaultSource = DMBIN_CASSETTE; break;
case wxPRINTBIN_FORMSOURCE: devMode->dmDefaultSource = DMBIN_FORMSOURCE; break;
default:
devMode->dmDefaultSource = DMBIN_USER + m_bin - wxPRINTBIN_USER;
break;
}
devMode->dmFields |= DM_DEFAULTSOURCE;
}
GlobalUnlock(hDevMode);
}
@@ -525,6 +552,11 @@ void wxPrintData::ConvertFromNative()
m_printNoCopies = devMode->dmCopies;
}
if (devMode->dmFields & DM_DEFAULTSOURCE)
{
m_bin = devMode->dmDefaultSource;
}
//// Printer name
if (devMode->dmDeviceName[0] != 0)
@@ -708,6 +740,7 @@ void wxPrintData::operator=(const wxPrintData& data)
m_printQuality = data.m_printQuality;
m_paperId = data.m_paperId;
m_paperSize = data.m_paperSize;
m_bin = data.m_bin;
#ifdef wxUSE_STREAMS
m_outputstream = data.m_outputstream;
#endif