Add support for child documents to docview framework.
Child documents are virtual documents corresponding to parts of their parent document which can't be saved nor loaded independently of their parent and are closed when the parent is closed. This finally makes some use of wxDocument::m_documentParent field which was always present in the docview code but never used before. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#if wxUSE_DOC_VIEW_ARCHITECTURE
|
||||
|
||||
#include "wx/list.h"
|
||||
#include "wx/dlist.h"
|
||||
#include "wx/string.h"
|
||||
#include "wx/frame.h"
|
||||
#include "wx/filehistory.h"
|
||||
@@ -172,6 +173,10 @@ public:
|
||||
// dialogs. Override if necessary.
|
||||
virtual wxWindow *GetDocumentWindow() const;
|
||||
|
||||
// Returns true if this document is a child document corresponding to a
|
||||
// part of the parent document and not a disk file as usual.
|
||||
bool IsChildDocument() const { return m_documentParent != NULL; }
|
||||
|
||||
protected:
|
||||
wxList m_documentViews;
|
||||
wxString m_documentFile;
|
||||
@@ -179,7 +184,12 @@ protected:
|
||||
wxString m_documentTypeName;
|
||||
wxDocTemplate* m_documentTemplate;
|
||||
bool m_documentModified;
|
||||
|
||||
// if the document parent is non-NULL, it's a pseudo-document corresponding
|
||||
// to a part of the parent document which can't be saved or loaded
|
||||
// independently of its parent and is always closed when its parent is
|
||||
wxDocument* m_documentParent;
|
||||
|
||||
wxCommandProcessor* m_commandProcessor;
|
||||
bool m_savedYet;
|
||||
|
||||
@@ -193,6 +203,10 @@ protected:
|
||||
wxString DoGetUserReadableName() const;
|
||||
|
||||
private:
|
||||
// list of all documents whose m_documentParent is this one
|
||||
typedef wxDList<wxDocument> DocsList;
|
||||
DocsList m_childDocuments;
|
||||
|
||||
DECLARE_ABSTRACT_CLASS(wxDocument)
|
||||
wxDECLARE_NO_COPY_CLASS(wxDocument);
|
||||
};
|
||||
@@ -386,6 +400,7 @@ public:
|
||||
void OnUpdateFileRevert(wxUpdateUIEvent& event);
|
||||
void OnUpdateFileNew(wxUpdateUIEvent& event);
|
||||
void OnUpdateFileSave(wxUpdateUIEvent& event);
|
||||
void OnUpdateFileSaveAs(wxUpdateUIEvent& event);
|
||||
void OnUpdateUndo(wxUpdateUIEvent& event);
|
||||
void OnUpdateRedo(wxUpdateUIEvent& event);
|
||||
|
||||
|
Reference in New Issue
Block a user