From: Vadim Zeitlin Date: Thu, 25 Mar 2010 20:07:58 +0000 (+0000) Subject: Allow overriding print preview frame creation in docview. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/94dc70d190601bd3ef872009ca16c808bc4af72f Allow overriding print preview frame creation in docview. Add a virtual wxDocManager::CreatePreviewFrame() which can be overridden to customize the print preview used by docview framework. Closes #11390. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 1bfa022e3d..0092794978 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -498,6 +498,7 @@ All (GUI): - Show pages icons in window list menu in wxAuiNotebook (Ronny Krüger). - Add "initial selection" parameter to wxGetSingleChoice() (Nikolay Tjushkov). - Implement wxDocument::Revert() (troelsk). +- Allow overriding print preview frame creation in docview (troelsk). GTK: diff --git a/include/wx/docview.h b/include/wx/docview.h index bf9a54d357..f921f9b504 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -478,6 +478,12 @@ public: #endif // WXWIN_COMPATIBILITY_2_6 protected: +#if wxUSE_PRINTING_ARCHITECTURE + virtual wxPreviewFrame* CreatePreviewFrame(wxPrintPreviewBase* preview, + wxWindow *parent, + const wxString& title); +#endif // wxUSE_PRINTING_ARCHITECTURE + // hook the currently active view into event handlers chain here virtual bool TryBefore(wxEvent& event); diff --git a/interface/wx/docview.h b/interface/wx/docview.h index e857d57304..d7f4448754 100644 --- a/interface/wx/docview.h +++ b/interface/wx/docview.h @@ -516,6 +516,24 @@ public: */ wxList& GetTemplates(); + /** + Create the frame used for print preview. + + This method can be overridden if you need to change the behaviour or + appearance of the preview window. By default, a standard wxPreviewFrame + is created. + + @since 2.9.1 + + @param preview The associated preview object. + @param parent The parent window for the frame. + @param title The suggested title for the print preview frame. + @return A new print preview frame, must not return @NULL. + */ + virtual wxPreviewFrame* CreatePreviewFrame(wxPrintPreviewBase* preview, + wxWindow* parent, + const wxString& title); + /** Initializes data; currently just calls OnCreateFileHistory(). diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 265a6e54a6..8350a4117f 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -1114,6 +1114,15 @@ void wxDocManager::OnPrint(wxCommandEvent& WXUNUSED(event)) #endif // wxUSE_PRINTING_ARCHITECTURE } +#if wxUSE_PRINTING_ARCHITECTURE +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 @@ -1135,9 +1144,11 @@ void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event)) return; } - wxPreviewFrame * - frame = new wxPreviewFrame(preview, wxTheApp->GetTopWindow(), - _("Print Preview")); + wxPreviewFrame* frame = CreatePreviewFrame(preview, + wxTheApp->GetTopWindow(), + _("Print Preview")); + wxCHECK_RET( frame, "should create a print preview frame" ); + frame->Centre(wxBOTH); frame->Initialize(); frame->Show(true);