// 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"
2, choices,
1, wxRA_VERTICAL);
m_rangeRadioBox->SetSelection(1);
-
+
mainsizer->Add( m_rangeRadioBox, 0, wxLEFT|wxTOP|wxRIGHT, 10 );
}
if (m_printDialogData.GetFromPage() != 0)
{
bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("From:") ), 0, wxCENTER|wxALL, 5 );
- m_fromText = new wxTextCtrl(this, wxPRINTID_FROM, "", wxDefaultPosition, wxSize(40, -1));
+ m_fromText = new wxTextCtrl(this, wxPRINTID_FROM, wxT(""), wxDefaultPosition, wxSize(40, -1));
bottomsizer->Add( m_fromText, 1, wxCENTER|wxRIGHT, 10 );
bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("To:") ), 0, wxCENTER|wxALL, 5);
- m_toText = new wxTextCtrl(this, wxPRINTID_TO, "", wxDefaultPosition, wxSize(40, -1));
+ m_toText = new wxTextCtrl(this, wxPRINTID_TO, wxT(""), wxDefaultPosition, wxSize(40, -1));
bottomsizer->Add( m_toText, 1, wxCENTER|wxRIGHT, 10 );
}
bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Copies:") ), 0, wxCENTER|wxALL, 5 );
- m_noCopiesText = new wxTextCtrl(this, wxPRINTID_COPIES, "", wxPoint(252, 130), wxSize(40, -1));
+ m_noCopiesText = new wxTextCtrl(this, wxPRINTID_COPIES, wxT(""), wxPoint(252, 130), wxSize(40, -1));
bottomsizer->Add( m_noCopiesText, 1, wxCENTER|wxRIGHT, 10 );
mainsizer->Add( bottomsizer, 0, wxTOP|wxLEFT|wxRIGHT, 12 );
{
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
wxFileName fname( m_printDialogData.GetPrintData().GetFilename() );
wxFileDialog dialog( this, _("PostScript file"),
- fname.GetPath(), fname.GetFullName(), wxT("*.ps"), wxOPEN | wxFILE_MUST_EXIST );
+ fname.GetPath(), fname.GetFullName(), wxT("*.ps"), wxOPEN | wxOVERWRITE_PROMPT );
if (dialog.ShowModal() != wxID_OK) return;
m_printDialogData.GetPrintData().SetFilename( dialog.GetPath() );
{
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);
(void) new wxStaticText(this, wxPRINTID_STATIC, _("Printer command:"), wxPoint(340, 30));
- m_printerCommandText = new wxTextCtrl(this, wxPRINTID_COMMAND, "", wxPoint(360, 55), wxSize(150, -1));
+ m_printerCommandText = new wxTextCtrl(this, wxPRINTID_COMMAND, wxT(""), wxPoint(360, 55), wxSize(150, -1));
(void) new wxStaticText(this, wxPRINTID_STATIC, _("Printer options:"), wxPoint(340, 110));
- m_printerOptionsText = new wxTextCtrl(this, wxPRINTID_OPTIONS, "", wxPoint(360, 135), wxSize(150, -1));
+ m_printerOptionsText = new wxTextCtrl(this, wxPRINTID_OPTIONS, wxT(""), wxPoint(360, 135), wxSize(150, -1));
wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(130, 200), wxSize(80, -1));
(void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(320, 200), wxSize(80, -1));
}
if (m_paperTypeChoice)
{
- wxString val(m_paperTypeChoice->GetStringSelection());
- if (!val.IsNull() && val != "")
- 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);
table->Add( column1, 0, wxALL | wxEXPAND, 5 );
wxBoxSizer *column2 = new wxBoxSizer( wxVERTICAL );
- m_marginLeftText = new wxTextCtrl(this, wxPRINTID_LEFTMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
- m_marginTopText = new wxTextCtrl(this, wxPRINTID_TOPMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
+ m_marginLeftText = new wxTextCtrl(this, wxPRINTID_LEFTMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
+ m_marginTopText = new wxTextCtrl(this, wxPRINTID_TOPMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
column2->Add( m_marginLeftText, 1, wxALL, 5 );
column2->Add( m_marginTopText, 1, wxALL, 5 );
table->Add( column2, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, 5 );
table->Add( column3, 0, wxALL | wxEXPAND, 5 );
wxBoxSizer *column4 = new wxBoxSizer( wxVERTICAL );
- m_marginRightText = new wxTextCtrl(this, wxPRINTID_RIGHTMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
- m_marginBottomText = new wxTextCtrl(this, wxPRINTID_BOTTOMMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
+ m_marginRightText = new wxTextCtrl(this, wxPRINTID_RIGHTMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
+ m_marginBottomText = new wxTextCtrl(this, wxPRINTID_BOTTOMMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
column4->Add( m_marginRightText, 1, wxALL, 5 );
column4->Add( m_marginBottomText, 1, wxALL, 5 );
table->Add( column4, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, 5 );
{
}
+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;