// 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__) || (defined(__WXUNIVERSAL__) && 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"
2, choices,
1, wxRA_VERTICAL);
m_rangeRadioBox->SetSelection(1);
-
+
mainsizer->Add( m_rangeRadioBox, 0, wxLEFT|wxTOP|wxRIGHT, 10 );
}
{
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;
wxThePrintPaperDatabase->CreateDatabase();
}
*/
- int n = wxThePrintPaperDatabase->Number();
- wxString *choices = new wxString [n];
- int sel = 0;
- int i;
- for (i = 0; i < n; i++)
+ size_t n = wxThePrintPaperDatabase->GetCount();
+ wxString *choices = new wxString [n];
+ size_t sel = 0;
+
+ for (size_t i = 0; i < n; i++)
{
- wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Nth(i)->Data();
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i);
choices[i] = paper->GetName();
if (m_printData.GetPaperId() == paper->GetId())
sel = i;
int width = 250;
- wxComboBox *choice = new wxComboBox(this, wxPRINTID_PAPERSIZE,
- _("Paper Size"),
- wxPoint(*x, *y), wxSize(width, -1), n,
- choices);
+ wxComboBox *choice = new wxComboBox( this,
+ wxPRINTID_PAPERSIZE,
+ _("Paper Size"),
+ wxPoint(*x, *y),
+ wxSize(width, -1),
+ n, choices );
// SetFont(thisFont);
TransferDataToWindow();
}
-wxGenericPageSetupDialog::wxGenericPageSetupDialog(wxWindow *parent, wxPageSetupData* data):
-wxDialog(parent, -1, _("Page Setup"), wxPoint(0, 0), wxSize(600, 600), wxDIALOG_MODAL|wxDEFAULT_DIALOG_STYLE|wxTAB_TRAVERSAL)
+wxGenericPageSetupDialog::wxGenericPageSetupDialog( wxWindow *parent,
+ wxPageSetupData* data)
+ : wxDialog( parent,
+ -1,
+ _("Page Setup"),
+ wxPoint(0, 0),
+ wxSize(600, 600),
+ wxDIALOG_MODAL|wxDEFAULT_DIALOG_STYLE|wxTAB_TRAVERSAL )
{
if (data)
m_pageData = *data;
-
+
int textWidth = 80;
-
+
wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL );
-
+
// 1) top
wxStaticBoxSizer *topsizer = new wxStaticBoxSizer(
new wxStaticBox(this,wxPRINTID_STATIC, _("Paper size")), wxHORIZONTAL );
-
- int n = wxThePrintPaperDatabase->Number();
- wxString *choices = new wxString [n];
- int i;
- for (i = 0; i < n; i++)
+
+ size_t n = wxThePrintPaperDatabase->GetCount();
+ wxString *choices = new wxString [n];
+
+ for (size_t i = 0; i < n; i++)
{
- wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Nth(i)->Data();
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i);
choices[i] = paper->GetName();
}
- m_paperTypeChoice = new wxComboBox(this, wxPRINTID_PAPERSIZE, _("Paper Size"),
- wxDefaultPosition, wxSize(300, -1), n, choices);
+ m_paperTypeChoice = new wxComboBox( this,
+ wxPRINTID_PAPERSIZE,
+ _("Paper Size"),
+ wxDefaultPosition,
+ wxSize(300, -1),
+ n, choices );
topsizer->Add( m_paperTypeChoice, 1, wxEXPAND|wxALL, 5 );
// m_paperTypeChoice->SetSelection(sel);
{
}
+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));
}
*/
- int n = wxThePrintPaperDatabase->Number();
- wxString *choices = new wxString [n];
- int i;
- for (i = 0; i < n; i++)
+ size_t n = wxThePrintPaperDatabase->GetCount();
+ wxString *choices = new wxString [n];
+
+ for (size_t i = 0; i < n; i++)
{
- wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Nth(i)->Data();
+ wxPrintPaperType *paper = wxThePrintPaperDatabase->Item(i);
choices[i] = paper->GetName();
}
(void) new wxStaticText(this, wxPRINTID_STATIC, _("Paper size"), wxPoint(*x, *y));
*y += 25;
- wxComboBox *choice = new wxComboBox(this, wxPRINTID_PAPERSIZE,
- _("Paper Size"),
- wxPoint(*x, *y), wxSize(300, -1), n,
- choices);
+ wxComboBox *choice = new wxComboBox( this,
+ wxPRINTID_PAPERSIZE,
+ _("Paper Size"),
+ wxPoint(*x, *y),
+ wxSize(300, -1),
+ n, choices );
*y += 35;
delete[] choices;