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:
@@ -95,6 +95,7 @@ All:
|
|||||||
wxMSW:
|
wxMSW:
|
||||||
|
|
||||||
- Fixed version script problems when using configure with cygwin/mingw32.
|
- Fixed version script problems when using configure with cygwin/mingw32.
|
||||||
|
- Use system default paper size for printing instead of A4
|
||||||
|
|
||||||
2.7.2
|
2.7.2
|
||||||
-----
|
-----
|
||||||
|
@@ -82,9 +82,9 @@ bool MyApp::OnInit(void)
|
|||||||
m_testFont.Create(10, wxSWISS, wxNORMAL, wxNORMAL);
|
m_testFont.Create(10, wxSWISS, wxNORMAL, wxNORMAL);
|
||||||
|
|
||||||
g_printData = new wxPrintData;
|
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_LETTER); // for Americans
|
||||||
g_printData->SetPaperId(wxPAPER_A4); // for everyone else
|
// g_printData->SetPaperId(wxPAPER_A4); // for everyone else
|
||||||
|
|
||||||
g_pageSetupData = new wxPageSetupDialogData;
|
g_pageSetupData = new wxPageSetupDialogData;
|
||||||
// copy over initial paper size from print record
|
// copy over initial paper size from print record
|
||||||
|
@@ -161,8 +161,11 @@ wxPrintData::wxPrintData()
|
|||||||
m_colour = true;
|
m_colour = true;
|
||||||
m_duplexMode = wxDUPLEX_SIMPLEX;
|
m_duplexMode = wxDUPLEX_SIMPLEX;
|
||||||
m_printQuality = wxPRINT_QUALITY_HIGH;
|
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_privData = NULL;
|
||||||
m_privDataLen = 0;
|
m_privDataLen = 0;
|
||||||
|
@@ -444,38 +444,40 @@ bool wxWindowsPrintNativeData::TransferFrom( const wxPrintData &data )
|
|||||||
devMode->dmFields |= DM_COLOR;
|
devMode->dmFields |= DM_COLOR;
|
||||||
|
|
||||||
//// Paper size
|
//// 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
|
paperType = wxThePrintPaperDatabase->FindPaperType(paperId);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
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() );
|
// Fall back on specifying the paper size explicitly
|
||||||
if (paper)
|
if(m_customWindowsPaperId != 0)
|
||||||
{
|
devMode->dmPaperSize = m_customWindowsPaperId;
|
||||||
devMode->dmPaperSize = (short)paper->GetPlatformId();
|
|
||||||
devMode->dmFields |= DM_PAPERSIZE;
|
|
||||||
}
|
|
||||||
else
|
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->dmPaperSize = DMPAPER_USER;
|
||||||
devMode->dmFields |= DM_PAPERWIDTH;
|
devMode->dmPaperWidth = (short)(paperSize.x * 10);
|
||||||
devMode->dmFields |= DM_PAPERLENGTH;
|
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
|
//// Duplex
|
||||||
|
Reference in New Issue
Block a user