X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e34dcad290e5129f0e5818fcc89868dd28729b75..6be0b53f3d08680cf2e719e05d9756f3442c166c:/src/generic/prntdlgg.cpp?ds=sidebyside diff --git a/src/generic/prntdlgg.cpp b/src/generic/prntdlgg.cpp index 38dd0fdfee..19d2d2800c 100644 --- a/src/generic/prntdlgg.cpp +++ b/src/generic/prntdlgg.cpp @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "prntdlgg.h" #endif @@ -28,7 +28,7 @@ #pragma hdrstop #endif -#if wxUSE_PRINTING_ARCHITECTURE +#if wxUSE_PRINTING_ARCHITECTURE && (!defined(__WXMSW__) || wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW) #ifndef WX_PRECOMP #include "wx/utils.h" @@ -252,6 +252,11 @@ void wxGenericPrintDialog::OnOK(wxCommandEvent& WXUNUSED(event)) { TransferDataFromWindow(); + // An empty 'to' field signals printing just the + // 'from' page. + if (m_printDialogData.GetToPage() < 1) + m_printDialogData.SetToPage(m_printDialogData.GetFromPage()); + // There are some interactions between the global setup data // and the standard print dialog. The global printing 'mode' // is determined by whether the user checks Print to file @@ -311,12 +316,12 @@ bool wxGenericPrintDialog::TransferDataToWindow() { m_fromText->Enable(TRUE); m_toText->Enable(TRUE); - m_fromText->SetValue( - wxString::Format(_T("%d"), m_printDialogData.GetFromPage())); - m_toText->SetValue( - wxString::Format(_T("%d"), m_printDialogData.GetToPage())); + if (m_printDialogData.GetFromPage() > 0) + m_fromText->SetValue(wxString::Format(_T("%d"), m_printDialogData.GetFromPage())); + if (m_printDialogData.GetToPage() > 0) + m_toText->SetValue(wxString::Format(_T("%d"), m_printDialogData.GetToPage())); if(m_rangeRadioBox) - if (m_printDialogData.GetAllPages()) + if (m_printDialogData.GetAllPages() || m_printDialogData.GetFromPage() == 0) m_rangeRadioBox->SetSelection(0); else m_rangeRadioBox->SetSelection(1); @@ -503,7 +508,7 @@ bool wxGenericPrintSetupDialog::TransferDataFromWindow() int selectedItem = m_paperTypeChoice->GetSelection(); if (selectedItem != -1) { - wxPrintPaperType *paper = (wxPrintPaperType*)wxThePrintPaperDatabase->Item(selectedItem)->GetData(); + wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(selectedItem); if (paper != NULL) m_printData.SetPaperId( paper->GetId()); } @@ -527,7 +532,7 @@ wxComboBox *wxGenericPrintSetupDialog::CreatePaperTypeChoice(int *x, int *y) for (size_t i = 0; i < n; i++) { - wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Item(i)->GetData(); + wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i); choices[i] = paper->GetName(); if (m_printData.GetPaperId() == paper->GetId()) sel = i; @@ -611,7 +616,7 @@ wxGenericPageSetupDialog::wxGenericPageSetupDialog( wxWindow *parent, for (size_t i = 0; i < n; i++) { - wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Item(i)->GetData(); + wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i); choices[i] = paper->GetName(); } @@ -774,7 +779,7 @@ bool wxGenericPageSetupDialog::TransferDataFromWindow() int selectedItem = m_paperTypeChoice->GetSelection(); if (selectedItem != -1) { - wxPrintPaperType *paper = (wxPrintPaperType*)wxThePrintPaperDatabase->Item(selectedItem)->GetData(); + wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(selectedItem); if ( paper ) { m_pageData.SetPaperSize(wxSize(paper->GetWidth()/10, paper->GetHeight()/10)); @@ -801,7 +806,7 @@ wxComboBox *wxGenericPageSetupDialog::CreatePaperTypeChoice(int *x, int *y) for (size_t i = 0; i < n; i++) { - wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Item(i)->GetData(); + wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i); choices[i] = paper->GetName(); }