#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"
// 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;
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;
// Called by OnSaveDocument and OnOpenDocument to implement standard
- // Save/Load behavior. Re-implement in derived class for custom
- // behavior.
+ // Save/Load behaviour. Re-implement in derived class for custom
+ // behaviour.
virtual bool DoSaveDocument(const wxString& file);
virtual bool DoOpenDocument(const wxString& file);
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);
};
void OnUpdateFileRevert(wxUpdateUIEvent& event);
void OnUpdateFileNew(wxUpdateUIEvent& event);
void OnUpdateFileSave(wxUpdateUIEvent& event);
+ void OnUpdateFileSaveAs(wxUpdateUIEvent& event);
void OnUpdateUndo(wxUpdateUIEvent& event);
void OnUpdateRedo(wxUpdateUIEvent& event);
// Get the current document manager
static wxDocManager* GetDocumentManager() { return sm_docManager; }
+#if wxUSE_PRINTING_ARCHITECTURE
+ wxPageSetupDialogData& GetPageSetupDialogData()
+ { return m_pageSetupDialogData; }
+ const wxPageSetupDialogData& GetPageSetupDialogData() const
+ { return m_pageSetupDialogData; }
+#endif // wxUSE_PRINTING_ARCHITECTURE
+
#if WXWIN_COMPATIBILITY_2_8
// deprecated, override GetDefaultName() instead
wxDEPRECATED_BUT_USED_INTERNALLY(
protected:
+ // Called when a file selected from the MRU list doesn't exist any more.
+ // The default behaviour is to remove the file from the MRU and notify the
+ // user about it but this method can be overridden to customize it.
+ virtual void OnMRUFileNotExist(unsigned n, const wxString& filename);
+
// Open the MRU file with the given index in our associated file history.
void DoOpenMRUFile(unsigned n);
#if wxUSE_PRINTING_ARCHITECTURE
// these flags are not used anywhere by wxWidgets and kept only for an unlikely
// case of existing user code using them for its own purposes
-#ifdef WXWIN_COMPATIBILITY_2_8
+#if WXWIN_COMPATIBILITY_2_8
enum
{
wxDOC_SDI = 1,