void OnFileRevert(wxCommandEvent& event);
void OnFileSave(wxCommandEvent& event);
void OnFileSaveAs(wxCommandEvent& event);
+#if wxUSE_PRINTING_ARCHITECTURE
void OnPrint(wxCommandEvent& event);
void OnPreview(wxCommandEvent& event);
+ void OnPageSetup(wxCommandEvent& event);
+#endif // wxUSE_PRINTING_ARCHITECTURE
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
wxDEPRECATED( size_t GetNoHistoryFiles() const );
#endif // WXWIN_COMPATIBILITY_2_6
+
protected:
#if wxUSE_PRINTING_ARCHITECTURE
virtual wxPreviewFrame* CreatePreviewFrame(wxPrintPreviewBase* preview,
wxString m_lastDirectory;
static wxDocManager* sm_docManager;
+#if wxUSE_PRINTING_ARCHITECTURE
+ wxPageSetupDialogData m_pageSetupDialogData;
+#endif // wxUSE_PRINTING_ARCHITECTURE
+
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxDocManager)
wxDECLARE_NO_COPY_CLASS(wxDocManager);
#if wxUSE_PRINTING_ARCHITECTURE
EVT_MENU(wxID_PRINT, wxDocManager::OnPrint)
EVT_MENU(wxID_PREVIEW, wxDocManager::OnPreview)
+ EVT_MENU(wxID_PRINT_SETUP, wxDocManager::OnPageSetup)
EVT_UPDATE_UI(wxID_PRINT, wxDocManager::OnUpdateDisableIfNoDoc)
EVT_UPDATE_UI(wxID_PREVIEW, wxDocManager::OnUpdateDisableIfNoDoc)
-#endif
+ EVT_UPDATE_UI(wxID_PRINT_SETUP, wxDocManager::OnUpdateDisableIfNoDoc)
+#endif // wxUSE_PRINTING_ARCHITECTURE
END_EVENT_TABLE()
wxDocManager* wxDocManager::sm_docManager = NULL;
doc->SaveAs();
}
+#if wxUSE_PRINTING_ARCHITECTURE
+
void wxDocManager::OnPrint(wxCommandEvent& WXUNUSED(event))
{
-#if wxUSE_PRINTING_ARCHITECTURE
wxView *view = GetActiveView();
if (!view)
return;
wxPrintout *printout = view->OnCreatePrintout();
if (printout)
{
- wxPrinter printer;
+ wxPrintDialogData printDialogData(m_pageSetupDialogData.GetPrintData());
+ wxPrinter printer(&printDialogData);
printer.Print(view->GetFrame(), printout, true);
delete printout;
}
-#endif // wxUSE_PRINTING_ARCHITECTURE
}
-#if wxUSE_PRINTING_ARCHITECTURE
+void wxDocManager::OnPageSetup(wxCommandEvent& WXUNUSED(event))
+{
+ wxPageSetupDialog dlg(wxTheApp->GetTopWindow(), &m_pageSetupDialogData);
+ if ( dlg.ShowModal() == wxID_OK )
+ {
+ m_pageSetupDialogData = dlg.GetPageSetupData();
+ }
+}
+
wxPreviewFrame* wxDocManager::CreatePreviewFrame(wxPrintPreviewBase* preview,
wxWindow *parent,
const wxString& title)
{
return new wxPreviewFrame(preview, parent, title);
}
-#endif // wxUSE_PRINTING_ARCHITECTURE
void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event))
{
-#if wxUSE_PRINTING_ARCHITECTURE
wxBusyCursor busy;
wxView *view = GetActiveView();
if (!view)
wxPrintout *printout = view->OnCreatePrintout();
if (printout)
{
+ wxPrintDialogData printDialogData(m_pageSetupDialogData.GetPrintData());
+
// Pass two printout objects: for preview, and possible printing.
wxPrintPreviewBase *
- preview = new wxPrintPreview(printout, view->OnCreatePrintout());
+ preview = new wxPrintPreview(printout,
+ view->OnCreatePrintout(),
+ &printDialogData);
if ( !preview->Ok() )
{
delete preview;
frame->Initialize();
frame->Show(true);
}
-#endif // wxUSE_PRINTING_ARCHITECTURE
}
+#endif // wxUSE_PRINTING_ARCHITECTURE
void wxDocManager::OnUndo(wxCommandEvent& event)
{