// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "prntdlgg.h"
#endif
#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"
#include "wx/dc.h"
- #include "wx/app.h"
- #include "wx/frame.h"
#include "wx/stattext.h"
#include "wx/statbox.h"
#include "wx/button.h"
#include "wx/textctrl.h"
#include "wx/radiobox.h"
#include "wx/filedlg.h"
- #include "wx/choice.h"
#include "wx/combobox.h"
#include "wx/intl.h"
#include "wx/sizer.h"
{
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
{
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);
}
if (m_paperTypeChoice)
{
- wxString val(m_paperTypeChoice->GetStringSelection());
- if (!val.IsNull() && val != wxT(""))
- m_printData.SetPaperId(wxThePrintPaperDatabase->ConvertNameToId(val));
+ int selectedItem = m_paperTypeChoice->GetSelection();
+ if (selectedItem != -1)
+ {
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(selectedItem);
+ if (paper != NULL)
+ m_printData.SetPaperId( paper->GetId());
+ }
}
return TRUE;
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;
for (size_t i = 0; i < n; i++)
{
- wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Item(i)->GetData();
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i);
choices[i] = paper->GetName();
}
{
}
+static inline wxString IntToString( long value )
+{
+ return wxString::Format(wxT("%ld"), value);
+}
+
bool wxGenericPageSetupDialog::TransferDataToWindow()
{
if (m_marginLeftText)
- m_marginLeftText->SetValue(IntToString((int) m_pageData.GetMarginTopLeft().x));
+ m_marginLeftText->SetValue(IntToString(m_pageData.GetMarginTopLeft().x));
if (m_marginTopText)
- m_marginTopText->SetValue(IntToString((int) m_pageData.GetMarginTopLeft().y));
+ m_marginTopText->SetValue(IntToString(m_pageData.GetMarginTopLeft().y));
if (m_marginRightText)
- m_marginRightText->SetValue(IntToString((int) m_pageData.GetMarginBottomRight().x));
+ m_marginRightText->SetValue(IntToString(m_pageData.GetMarginBottomRight().x));
if (m_marginBottomText)
- m_marginBottomText->SetValue(IntToString((int) m_pageData.GetMarginBottomRight().y));
+ m_marginBottomText->SetValue(IntToString(m_pageData.GetMarginBottomRight().y));
if (m_orientationRadioBox)
{
if (m_paperTypeChoice)
{
- wxString val(m_paperTypeChoice->GetStringSelection());
- if (!val.IsEmpty())
+ int selectedItem = m_paperTypeChoice->GetSelection();
+ if (selectedItem != -1)
{
- wxPrintPaperType* paper = wxThePrintPaperDatabase->FindPaperType(val);
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(selectedItem);
if ( paper )
{
m_pageData.SetPaperSize(wxSize(paper->GetWidth()/10, paper->GetHeight()/10));
for (size_t i = 0; i < n; i++)
{
- wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Item(i)->GetData();
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i);
choices[i] = paper->GetName();
}