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
This commit is contained in:
Vadim Zeitlin
2010-03-25 20:07:58 +00:00
parent 18e543ea9d
commit 94dc70d190
4 changed files with 39 additions and 3 deletions

View File

@@ -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:

View File

@@ -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);

View File

@@ -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().

View File

@@ -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);