don't set A4 paper size, use the system default instead
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
08893e7eae
commit
d5eaa19fdf
@ -95,6 +95,7 @@ All:
|
||||
wxMSW:
|
||||
|
||||
- Fixed version script problems when using configure with cygwin/mingw32.
|
||||
- Use system default paper size for printing instead of A4
|
||||
|
||||
2.7.2
|
||||
-----
|
||||
|
@ -82,9 +82,9 @@ bool MyApp::OnInit(void)
|
||||
m_testFont.Create(10, wxSWISS, wxNORMAL, wxNORMAL);
|
||||
|
||||
g_printData = new wxPrintData;
|
||||
// Set an initial paper size
|
||||
// You could set an initial paper size here
|
||||
// g_printData->SetPaperId(wxPAPER_LETTER); // for Americans
|
||||
g_printData->SetPaperId(wxPAPER_A4); // for everyone else
|
||||
// g_printData->SetPaperId(wxPAPER_A4); // for everyone else
|
||||
|
||||
g_pageSetupData = new wxPageSetupDialogData;
|
||||
// copy over initial paper size from print record
|
||||
|
@ -161,8 +161,11 @@ wxPrintData::wxPrintData()
|
||||
m_colour = true;
|
||||
m_duplexMode = wxDUPLEX_SIMPLEX;
|
||||
m_printQuality = wxPRINT_QUALITY_HIGH;
|
||||
m_paperId = wxPAPER_A4;
|
||||
m_paperSize = wxSize(210, 297);
|
||||
|
||||
// we intentionally don't initialize paper id and size at all, like this
|
||||
// the default system settings will be used for them
|
||||
m_paperId = wxPAPER_NONE;
|
||||
m_paperSize = wxDefaultSize;
|
||||
|
||||
m_privData = NULL;
|
||||
m_privDataLen = 0;
|
||||
|
@ -444,38 +444,40 @@ bool wxWindowsPrintNativeData::TransferFrom( const wxPrintData &data )
|
||||
devMode->dmFields |= DM_COLOR;
|
||||
|
||||
//// Paper size
|
||||
if (data.GetPaperId() == wxPAPER_NONE)
|
||||
|
||||
// Paper id has priority over paper size. If id is specified, then size
|
||||
// is ignored (as it can be filled in even for standard paper sizes)
|
||||
|
||||
wxPrintPaperType *paperType = NULL;
|
||||
|
||||
const wxPaperSize paperId = data.GetPaperId();
|
||||
if ( paperId != wxPAPER_NONE && wxThePrintPaperDatabase )
|
||||
{
|
||||
// DEVMODE is in tenths of a milimeter
|
||||
devMode->dmPaperWidth = (short)(data.GetPaperSize().x * 10);
|
||||
devMode->dmPaperLength = (short)(data.GetPaperSize().y * 10);
|
||||
if(m_customWindowsPaperId != 0)
|
||||
devMode->dmPaperSize = m_customWindowsPaperId;
|
||||
else
|
||||
devMode->dmPaperSize = DMPAPER_USER;
|
||||
devMode->dmFields |= DM_PAPERWIDTH;
|
||||
devMode->dmFields |= DM_PAPERLENGTH;
|
||||
paperType = wxThePrintPaperDatabase->FindPaperType(paperId);
|
||||
}
|
||||
else
|
||||
|
||||
if ( paperType )
|
||||
{
|
||||
if (wxThePrintPaperDatabase)
|
||||
devMode->dmPaperSize = (short)paperType->GetPlatformId();
|
||||
devMode->dmFields |= DM_PAPERSIZE;
|
||||
}
|
||||
else // custom (or no) paper size
|
||||
{
|
||||
const wxSize paperSize = data.GetPaperSize();
|
||||
if ( paperSize != wxDefaultSize )
|
||||
{
|
||||
wxPrintPaperType* paper = wxThePrintPaperDatabase->FindPaperType( data.GetPaperId() );
|
||||
if (paper)
|
||||
{
|
||||
devMode->dmPaperSize = (short)paper->GetPlatformId();
|
||||
devMode->dmFields |= DM_PAPERSIZE;
|
||||
}
|
||||
// Fall back on specifying the paper size explicitly
|
||||
if(m_customWindowsPaperId != 0)
|
||||
devMode->dmPaperSize = m_customWindowsPaperId;
|
||||
else
|
||||
{
|
||||
// Fall back on specifying the paper size explicitly
|
||||
devMode->dmPaperWidth = (short)(data.GetPaperSize().x * 10);
|
||||
devMode->dmPaperLength = (short)(data.GetPaperSize().y * 10);
|
||||
devMode->dmPaperSize = DMPAPER_USER;
|
||||
devMode->dmFields |= DM_PAPERWIDTH;
|
||||
devMode->dmFields |= DM_PAPERLENGTH;
|
||||
}
|
||||
devMode->dmPaperWidth = (short)(paperSize.x * 10);
|
||||
devMode->dmPaperLength = (short)(paperSize.y * 10);
|
||||
devMode->dmFields |= DM_PAPERWIDTH;
|
||||
devMode->dmFields |= DM_PAPERLENGTH;
|
||||
}
|
||||
//else: neither paper type nor size specified, don't fill DEVMODE
|
||||
// at all so that the system defaults are used
|
||||
}
|
||||
|
||||
//// Duplex
|
||||
|
Loading…
Reference in New Issue
Block a user