// Purpose: interface of various doc/view framework classes
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
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.
*/
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);
*/
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().
*/
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.
/**
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
*/
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
*/
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);
};
-
-/**
- @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
// ============================================================================