]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/docview.h
Fixed problems caused by duplicated names across different style types.
[wxWidgets.git] / interface / wx / docview.h
index 021af24e14e5c835b9b1bdd2caca06a1b775d00b..14bf99ba6a9964579f41522e8ca169d344754825 100644 (file)
@@ -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.
@@ -363,8 +363,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);
 
@@ -516,6 +556,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().
 
@@ -1123,6 +1181,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.
@@ -1240,10 +1310,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
@@ -1332,6 +1402,14 @@ public:
     */
     virtual bool SaveAs();
 
+    /**
+        Discard changes and load last saved version.
+
+        Prompts the user first, and then calls DoOpenDocument() to reload the
+        current file.
+    */
+    virtual bool Revert();
+
     //@{
     /**
         Override this function and call it from your own SaveObject() before
@@ -1366,11 +1444,26 @@ public:
     */
     virtual void SetDocumentTemplate(wxDocTemplate* templ);
 
+    /**
+        Sets if this document has been already saved or not.
+
+        Normally there is no need to call this function as the document-view
+        framework does it itself as the documents are loaded from and saved to
+        the files. However it may be useful in some particular cases, for
+        example it may be called with @false argument to prevent the user
+        from saving the just opened document into the same file if this
+        shouldn't be done for some reason (e.g. file format version changes and
+        a new extension should be used for saving).
+
+        @see GetDocumentSaved(), AlreadySaved()
+     */
+    void SetDocumentSaved(bool saved = true);
+
     /**
         Sets the filename for this document. Usually called by the framework.
 
         Calls OnChangeFilename() which in turn calls wxView::OnChangeFilename() for
-        all views if @a notifyViews is @true,
+        all views if @a notifyViews is @true.
     */
     void SetFilename(const wxString& filename, bool notifyViews = false);
 
@@ -1460,126 +1553,6 @@ protected:
 };
 
 
-
-/**
-    @class wxFileHistory
-
-    The wxFileHistory encapsulates a user interface convenience, the list of
-    most recently visited files as shown on a menu (usually the File menu).
-
-    wxFileHistory can manage one or more file menus. More than one menu may be
-    required in an MDI application, where the file history should appear on
-    each MDI child menu as well as the MDI parent frame.
-
-    @library{wxcore}
-    @category{docview}
-
-    @see @ref overview_docview, wxDocManager
-*/
-class wxFileHistory : public wxObject
-{
-public:
-    /**
-        Constructor. Pass the maximum number of files that should be stored and
-        displayed.
-
-        @a idBase defaults to wxID_FILE1 and represents the id given to the
-        first history menu item. Since menu items can't share the same ID you
-        should change @a idBase (to one of your own defined IDs) when using
-        more than one wxFileHistory in your application.
-    */
-    wxFileHistory(size_t maxFiles = 9, wxWindowID idBase = wxID_FILE1);
-
-    /**
-        Destructor.
-    */
-    virtual ~wxFileHistory();
-
-    /**
-        Adds a file to the file history list, if the object has a pointer to an
-        appropriate file menu.
-    */
-    virtual void AddFileToHistory(const wxString& filename);
-
-    /**
-        Appends the files in the history list, to all menus managed by the file
-        history object.
-    */
-    virtual void AddFilesToMenu();
-    /**
-        Appends the files in the history list, to the given menu only.
-    */
-    virtual void AddFilesToMenu(wxMenu* menu);
-
-    /**
-        Returns the base identifier for the range used for appending items.
-    */
-    wxWindowID GetBaseId() const;
-
-    /**
-        Returns the number of files currently stored in the file history.
-    */
-    virtual size_t GetCount() const;
-
-    /**
-        Returns the file at this index (zero-based).
-    */
-    virtual wxString GetHistoryFile(size_t index) const;
-
-    /**
-        Returns the maximum number of files that can be stored.
-    */
-    virtual int GetMaxFiles() const;
-
-    /**
-        Returns the list of menus that are managed by this file history object.
-
-        @see UseMenu()
-    */
-    const wxList& GetMenus() const;
-
-    /**
-        Loads the file history from the given config object. This function
-        should be called explicitly by the application.
-
-        @see wxConfigBase
-    */
-    virtual void Load(const wxConfigBase& config);
-
-    /**
-        Removes the specified file from the history.
-    */
-    virtual void RemoveFileFromHistory(size_t i);
-
-    /**
-        Removes this menu from the list of those managed by this object.
-    */
-    virtual void RemoveMenu(wxMenu* menu);
-
-    /**
-        Saves the file history into the given config object. This must be
-        called explicitly by the application.
-
-        @see wxConfigBase
-    */
-    virtual void Save(wxConfigBase& config);
-
-    /**
-        Sets the base identifier for the range used for appending items.
-    */
-    void SetBaseId(wxWindowID baseId);
-
-    /**
-        Adds this menu to the list of those menus that are managed by this file
-        history object. Also see AddFilesToMenu() for initializing the menu
-        with filenames that are already in the history when this function is
-        called, as this is not done automatically.
-    */
-    virtual void UseMenu(wxMenu* menu);
-};
-
-
-
 // ============================================================================
 // Global functions/macros
 // ============================================================================