X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a0219e4580a925de871080b703d14504c96ad3d6..9f6e407c7d555078b6fd2ef62534acfbf9781545:/interface/wx/docview.h diff --git a/interface/wx/docview.h b/interface/wx/docview.h index 4dd49c4be8..c33bf8279e 100644 --- a/interface/wx/docview.h +++ b/interface/wx/docview.h @@ -3,7 +3,7 @@ // Purpose: interface of various doc/view framework classes // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -43,13 +43,13 @@ public: A name that should be unique for a given view. @param docClassInfo A pointer to the run-time document class information as returned by - the CLASSINFO() macro, e.g. CLASSINFO(MyDocumentClass). If this is + the wxCLASSINFO() macro, e.g. wxCLASSINFO(MyDocumentClass). If this is not supplied, you will need to derive a new wxDocTemplate class and override the CreateDocument() member to return a new document instance on demand. @param viewClassInfo A pointer to the run-time view class information as returned by the - CLASSINFO() macro, e.g. CLASSINFO(MyViewClass). If this is not + wxCLASSINFO() macro, e.g. wxCLASSINFO(MyViewClass). If this is not supplied, you will need to derive a new wxDocTemplate class and override the CreateView() member to return a new view instance on demand. @@ -176,6 +176,15 @@ public: */ long GetFlags() const; + /** + Returns a reference to the wxPageSetupDialogData associated with the + printing operations of this document manager. + */ + //@{ + wxPageSetupDialogData& GetPageSetupDialogData(); + const wxPageSetupDialogData& GetPageSetupDialogData() const; + //@} + /** Returns the run-time class information that allows view instances to be constructed dynamically, as passed to the document template @@ -363,8 +372,48 @@ public: */ void AssociateTemplate(wxDocTemplate* temp); + /** + Search for a particular document template. + + Example: + @code + // creating a document instance of the specified document type: + m_doc = (MyDoc*)docManager->FindTemplate(CLASSINFO(MyDoc))-> + CreateDocument(wxEmptyString, wxDOC_SILENT); + @endcode + + @param classinfo + Class info of a document class for which a wxDocTemplate had been + previously created. + + @return + Pointer to a wxDocTemplate, or @NULL if none found. + + @since 2.9.2 + */ + wxDocTemplate* FindTemplate(const wxClassInfo* classinfo); + + /** + Closes the specified document. + + If @a force is @true, the document is closed even if it has unsaved + changes. + + @param doc + The document to close, must be non-@NULL. + @param force + If @true, close the document even if wxDocument::Close() returns + @false. + @return + @true if the document was closed or @false if closing it was + cancelled by user (only in @a force = @false case). + */ + bool CloseDocument(wxDocument *doc, bool force = false); + /** Closes all currently opened documents. + + @see CloseDocument() */ bool CloseDocuments(bool force = true); @@ -643,7 +692,7 @@ public: @param noTemplates Number of templates being pointed to by the templates pointer. @param sort - If more than one template is passed in in templates, then this + If more than one template is passed into templates, then this parameter indicates whether the list of templates that the user will have to choose from is sorted or not when shown the choice box dialog. Default is @false. @@ -669,7 +718,7 @@ public: @param noTemplates Number of templates being pointed to by the templates pointer. @param sort - If more than one template is passed in in templates, then this + If more than one template is passed into templates, then this parameter indicates whether the list of templates that the user will have to choose from is sorted or not when shown the choice box dialog. Default is @false. @@ -1081,9 +1130,25 @@ public: @class wxDocument The document class can be used to model an application's file-based data. + It is part of the document/view framework supported by wxWidgets, and cooperates with the wxView, wxDocTemplate and wxDocManager classes. + A normal document is the one created without parent document and is + associated with a disk file. Since version 2.9.2 wxWidgets also supports a + special kind of documents called child documents which are virtual + in the sense that they do not correspond to a file but rather to a part of + their parent document. Because of this, the child documents can't be + created directly by user but can only be created by the parent document + (usually when it's being created itself). They also can't be independently + saved. A child document has its own view with the corresponding window. + This view can be closed by user but, importantly, is also automatically + closed when its parent document is closed. Thus, child documents may be + convenient for creating additional windows which need to be closed when the + main document is. The docview sample demonstrates this use of child + documents by creating a child document containing the information about the + parameters of the image opened in the main document. + @library{wxcore} @category{docview} @@ -1095,8 +1160,14 @@ public: /** Constructor. Define your own default constructor to initialize application-specific data. + + @param parent + Specifying a non-@c NULL parent document here makes this document a + special child document, see their description in the class + documentation. Notice that this parameter exists but is ignored in + wxWidgets versions prior to 2.9.1. */ - wxDocument(wxDocument* parent = 0); + wxDocument(wxDocument* parent = NULL); /** Destructor. Removes itself from the document manager. @@ -1141,6 +1212,18 @@ public: */ virtual bool DeleteAllViews(); + /** + Virtual method called from OnCloseDocument(). + + This method may be overridden to perform any additional cleanup which + might be needed when the document is closed. + + The return value of this method is currently ignored. + + The default version does nothing and simply returns @true. + */ + virtual bool DeleteContents(); + /** Returns a pointer to the command processor associated with this document. @@ -1217,6 +1300,18 @@ public: const wxList& GetViews() 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. + + This method can be used to check whether file-related operations make + sense for this document as they only apply to top-level documents and + not child ones. + + @since 2.9.2 + */ + bool IsChildDocument() const; + /** Returns @true if the document has been modified since the last save, @false otherwise. You may need to override this if your document view @@ -1258,10 +1353,10 @@ public: /** This virtual function is called when the document is being closed. - The default implementation calls DeleteContents() (an empty - implementation) and sets the modified flag to @false. You can override - it to supply additional behaviour when the document is closed with - Close(). + The default implementation calls DeleteContents() (which may be + overridden to perform additional cleanup) and sets the modified flag to + @false. You can override it to supply additional behaviour when the + document is closed with Close(). Notice that previous wxWidgets versions used to call this function also from OnNewDocument(), rather counter-intuitively. This is no longer the