X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c77049a04b5918a6b432aab94eaf31bc73c28916..920b92a3fd568f012a8f7814d56640cb729ba993:/interface/wx/docview.h?ds=inline diff --git a/interface/wx/docview.h b/interface/wx/docview.h index 3a8bc4fddd..e884ee0ba5 100644 --- a/interface/wx/docview.h +++ b/interface/wx/docview.h @@ -64,15 +64,14 @@ public: wxDocTemplate(wxDocManager* manager, const wxString& descr, const wxString& filter, const wxString& dir, const wxString& ext, const wxString& docTypeName, - const wxString& viewTypeName, - wxClassInfo* docClassInfo = NULL, - wxClassInfo* viewClassInfo = NULL, - long flags = wxDEFAULT_TEMPLATE_FLAGS); + const wxString& viewTypeName, wxClassInfo* docClassInfo = 0, + wxClassInfo* viewClassInfo = 0, + long flags = wxTEMPLATE_VISIBLE); /** Destructor. */ - ~wxDocTemplate(); + virtual ~wxDocTemplate(); /** Creates a new instance of the associated document class. If you have @@ -83,73 +82,74 @@ public: This function calls InitDocument() which in turns calls wxDocument::OnCreate(). */ - wxDocument* CreateDocument(const wxString& path, long flags = 0); + virtual wxDocument* CreateDocument(const wxString& path, long flags = 0); /** Creates a new instance of the associated view class. If you have not supplied a wxClassInfo parameter to the template constructor, you will need to override this function to return an appropriate view instance. */ - wxView* CreateView(wxDocument* doc, long flags = 0); + virtual wxView* CreateView(wxDocument* doc, long flags = 0); /** Returns the default file extension for the document data, as passed to the document template constructor. */ - wxString GetDefaultExtension(); + wxString GetDefaultExtension() const; /** Returns the text description of this template, as passed to the document template constructor. */ - wxString GetDescription(); + wxString GetDescription() const; /** Returns the default directory, as passed to the document template constructor. */ - wxString GetDirectory(); + wxString GetDirectory() const; /** Returns a pointer to the document manager instance for which this template was created. */ - wxDocManager* GetDocumentManager(); + wxDocManager* GetDocumentManager() const; /** Returns the document type name, as passed to the document template constructor. */ - wxString GetDocumentName(); + virtual wxString GetDocumentName() const; /** Returns the file filter, as passed to the document template constructor. */ - wxString GetFileFilter(); + wxString GetFileFilter() const; /** Returns the flags, as passed to the document template constructor. */ - long GetFlags(); + long GetFlags() const; /** Returns the view type name, as passed to the document template constructor. */ - wxString GetViewName(); + virtual wxString GetViewName() const; /** Initialises the document, calling wxDocument::OnCreate(). This is called from CreateDocument(). */ - bool InitDocument(wxDocument* doc, const wxString& path, long flags = 0); + virtual bool InitDocument(wxDocument* doc, const wxString& path, + long flags = 0); /** Returns @true if the document template can be shown in user dialogs, @false otherwise. */ - bool IsVisible(); + bool IsVisible() const; /** Sets the default file extension. @@ -274,12 +274,12 @@ public: /** Destructor. */ - ~wxDocManager(); + virtual ~wxDocManager(); /** Sets the current view. */ - void ActivateView(wxView* doc, bool activate = true); + virtual void ActivateView(wxView* doc, bool activate = true); /** Adds the document to the list of documents. @@ -290,7 +290,7 @@ public: Adds a file to the file history list, if we have a pointer to an appropriate file menu. */ - void AddFileToHistory(const wxString& filename); + virtual void AddFileToHistory(const wxString& filename); /** Adds the template to the document manager's template list. @@ -338,14 +338,22 @@ public: file path and type. @return a new document object or @NULL on failure. */ - wxDocument *CreateDocument(const wxString& path, long flags = 0); + virtual wxDocument* CreateDocument(const wxString& path, long flags = 0); + + /** + Creates an empty new document. + + This is equivalent to calling CreateDocument() with @c wxDOC_NEW flags + and without the file name. + */ + wxDocument *CreateNewDocument(); /** Creates a new view for the given document. If more than one view is allowed for the document (by virtue of multiple templates mentioning the same document type), a choice of view is presented to the user. */ - wxView* CreateView(wxDocument* doc, long flags); + virtual wxView* CreateView(wxDocument* doc, long flags = 0); /** Removes the template from the list of templates. @@ -356,24 +364,24 @@ public: Appends the files in the history list to all menus managed by the file history object. */ - void FileHistoryAddFilesToMenu(); + virtual void FileHistoryAddFilesToMenu(); /** Appends the files in the history list to the given @a menu only. */ - void FileHistoryAddFilesToMenu(wxMenu* menu); + virtual void FileHistoryAddFilesToMenu(wxMenu* menu); /** Loads the file history from a config object. @see wxConfigBase */ - void FileHistoryLoad(const wxConfigBase& config); + virtual void FileHistoryLoad(const wxConfigBase& config); /** Removes the given menu from the list of menus managed by the file history object. */ - void FileHistoryRemoveMenu(wxMenu* menu); + virtual void FileHistoryRemoveMenu(wxMenu* menu); /** Saves the file history into a config object. This must be called @@ -381,7 +389,7 @@ public: @see wxConfigBase */ - void FileHistorySave(wxConfigBase& resourceFile); + virtual void FileHistorySave(wxConfigBase& resourceFile); /** Use this menu for appending recently-visited document filenames, for @@ -391,40 +399,40 @@ public: @note You can add multiple menus using this function, to be managed by the file history object. */ - void FileHistoryUseMenu(wxMenu* menu); + virtual void FileHistoryUseMenu(wxMenu* menu); /** Given a path, try to find template that matches the extension. This is only an approximate method of finding a template for creating a document. */ - wxDocTemplate* FindTemplateForPath(const wxString& path); + virtual wxDocTemplate* FindTemplateForPath(const wxString& path); /** Returns the document associated with the currently active view (if any). */ - wxDocument* GetCurrentDocument(); + wxDocument* GetCurrentDocument() const; /** Returns the currently active view */ - wxView* GetCurrentView(); + virtual wxView* GetCurrentView() const; /** Returns a reference to the list of documents. */ - wxList GetDocuments(); + wxList& GetDocuments(); /** Returns a pointer to file history. */ - wxFileHistory* GetFileHistory(); + virtual wxFileHistory* GetFileHistory() const; /** Returns the number of files currently stored in the file history. */ - size_t GetHistoryFilesCount(); + virtual size_t GetHistoryFilesCount() const; /** Returns the directory last selected by the user when opening a file. @@ -435,12 +443,12 @@ public: /** Returns the number of documents that can be open simultaneously. */ - int GetMaxDocsOpen(); + int GetMaxDocsOpen() const; /** Returns a reference to the list of associated templates. */ - wxList GetTemplates(); + wxList& GetTemplates(); /** Initializes data; currently just calls OnCreateFileHistory(). @@ -458,7 +466,7 @@ public: The bottom line: if you're not deriving from Initialize(), forget it and construct wxDocManager with no arguments. */ - bool Initialize(); + virtual bool Initialize(); /** Return a string containing a suitable default name for a new document. @@ -466,13 +474,13 @@ public: string @b unnamed but can be overridden in the derived classes to do something more appropriate. */ - wxString MakeNewDocumentName(); + virtual wxString MakeNewDocumentName(); /** A hook to allow a derived class to create a different type of file history. Called from Initialize(). */ - wxFileHistory* OnCreateFileHistory(); + virtual wxFileHistory* OnCreateFileHistory(); /** Closes and deletes the currently active document. @@ -527,9 +535,9 @@ public: This function is used in CreateDocument(). */ - wxDocTemplate* SelectDocumentPath(wxDocTemplate** templates, - int noTemplates, wxString& path, - long flags, bool save); + virtual wxDocTemplate* SelectDocumentPath(wxDocTemplate** templates, + int noTemplates, wxString& path, + long flags, bool save = false); /** Returns a document template by asking the user (if there is more than @@ -546,8 +554,9 @@ public: will have to choose from is sorted or not when shown the choice box dialog. Default is @false. */ - wxDocTemplate* SelectDocumentType(wxDocTemplate** templates, - int noTemplates, bool sort = false); + virtual wxDocTemplate* SelectDocumentType(wxDocTemplate** templates, + int noTemplates, + bool sort = false); /** Returns a document template by asking the user (if there is more than @@ -567,8 +576,8 @@ public: will have to choose from is sorted or not when shown the choice box dialog. Default is @false. */ - wxDocTemplate* SelectViewType(wxDocTemplate** templates, - int noTemplates, bool sort = false); + virtual wxDocTemplate* SelectViewType(wxDocTemplate** templates, + int noTemplates, bool sort = false); /** Sets the directory to be displayed to the user when opening a file. @@ -652,7 +661,7 @@ public: /** Destructor. Removes itself from the document's list of views. */ - ~wxView(); + virtual ~wxView(); /** Call this from your view frame's wxDocChildFrame::OnActivate() member @@ -691,7 +700,7 @@ public: uses notebook pages instead of frames and this is why this method returns a wxWindow and not a wxFrame. */ - wxWindow* GetFrame(); + wxWindow* GetFrame() const; /** Gets the name associated with the view (passed to the wxDocTemplate @@ -757,7 +766,7 @@ public: /** Override this function to render the view on the given device context. */ - virtual void OnDraw(wxDC* dc); + virtual void OnDraw(wxDC* dc) = 0; /** Called when the view should be updated. @@ -771,13 +780,13 @@ public: application-specific information for making updating more efficient. */ - virtual void OnUpdate(wxView* sender, wxObject* hint); + virtual void OnUpdate(wxView* sender, wxObject* hint = 0); /** Associates the given document with the view. Normally called by the framework. */ - void SetDocument(wxDocument* doc); + virtual void SetDocument(wxDocument* doc); /** Sets the frame associated with this view. The application should call @@ -842,12 +851,12 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = "frame"); + const wxString& name = wxFrameNameStr); /** Destructor. */ - ~wxDocChildFrame(); + virtual ~wxDocChildFrame(); /** Returns the document associated with this frame. @@ -864,7 +873,7 @@ public: override (but still call) this function in order to set the keyboard focus for your subwindow. */ - void OnActivate(wxActivateEvent event); + void OnActivate(wxActivateEvent& event); /** Closes and deletes the current view and document. @@ -924,22 +933,20 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = "frame"); + const wxString& name = wxFrameNameStr); /** Destructor. */ - ~wxDocParentFrame(); + virtual ~wxDocParentFrame(); /** Used in two-step construction. */ - bool Create(wxDocManager* manager, wxFrame* parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = "frame"); + bool Create(wxDocManager* manager, wxFrame* parent, wxWindowID id, + const wxString& title, const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = 541072960, + const wxString& name = wxFrameNameStr); /** Returns the associated document manager object. @@ -988,12 +995,12 @@ public: Constructor. Define your own default constructor to initialize application-specific data. */ - wxDocument(); + wxDocument(wxDocument* parent = 0); /** Destructor. Removes itself from the document manager. */ - ~wxDocument(); + virtual ~wxDocument(); /** If the view is not already in the list of views, adds the view and @@ -1001,6 +1008,22 @@ public: */ virtual bool AddView(wxView* view); + /** + Returns true if the document hasn't been modified since the last time + it had been saved. + + Notice that this function returns @false if the document had been never + saved at all, so it may be also used to test whether it makes sense to + save the document: if it returns @true, there is nothing to save but if + @false is returned, it can be saved, even if it might be not modified + (this can be used to create an empty document file by the user). + + @see IsModified(), GetDocumentSaved() + + @since 2.9.0 + */ + bool AlreadySaved() const; + /** Closes the document, by calling OnSaveModified() and then (if this returned @true) OnCloseDocument(). This does not normally delete the @@ -1023,12 +1046,12 @@ public: @see wxCommandProcessor */ - wxCommandProcessor* GetCommandProcessor() const; + virtual wxCommandProcessor* GetCommandProcessor() const; /** Gets a pointer to the associated document manager. */ - wxDocManager* GetDocumentManager() const; + virtual wxDocManager* GetDocumentManager() const; /** Gets the document type name for this document. See the comment for @@ -1036,17 +1059,24 @@ public: */ wxString GetDocumentName() const; + /** + Return true if this document had been already saved. + + @see IsModified() + */ + bool GetDocumentSaved() const; + /** Gets a pointer to the template that created the document. */ - wxDocTemplate* GetDocumentTemplate() const; + virtual wxDocTemplate* GetDocumentTemplate() const; /** Intended to return a suitable window for using as a parent for document-related dialog boxes. By default, uses the frame associated with the first view. */ - wxWindow* GetDocumentWindow() const; + virtual wxWindow* GetDocumentWindow() const; /** Gets the filename associated with this document, or "" if none is @@ -1076,12 +1106,15 @@ public: */ virtual wxString GetUserReadableName() const; + //@{ /** Returns the list whose elements are the views on the document. @see GetFirstView() */ - wxList GetViews() const; + wxList& GetViews() const; + const wxList& GetViews() const; + //@} /** Returns @true if the document has been modified since the last save, @@ -1122,9 +1155,16 @@ public: virtual void OnChangedViewList(); /** + 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. Override this to - supply additional behaviour when the document is closed with Close(). + implementation) 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 + case since wxWidgets 2.9.0. */ virtual bool OnCloseDocument(); @@ -1228,7 +1268,7 @@ public: Sets the pointer to the template that created the document. Should only be called by the framework. */ - void SetDocumentTemplate(wxDocTemplate* templ); + virtual void SetDocumentTemplate(wxDocTemplate* templ); /** Sets the filename for this document. Usually called by the framework. @@ -1250,7 +1290,7 @@ public: view. @a hint represents optional information to allow a view to optimize its update. */ - void UpdateAllViews(wxView* sender = NULL, wxObject* hint = NULL); + virtual void UpdateAllViews(wxView* sender = NULL, wxObject* hint = NULL); protected: /** @@ -1349,23 +1389,23 @@ public: /** Destructor. */ - ~wxFileHistory(); + virtual ~wxFileHistory(); /** Adds a file to the file history list, if the object has a pointer to an appropriate file menu. */ - void AddFileToHistory(const wxString& filename); + virtual void AddFileToHistory(const wxString& filename); /** Appends the files in the history list, to all menus managed by the file history object. */ - void AddFilesToMenu(); + virtual void AddFilesToMenu(); /** Appends the files in the history list, to the given menu only. */ - void AddFilesToMenu(wxMenu* menu); + virtual void AddFilesToMenu(wxMenu* menu); /** Returns the base identifier for the range used for appending items. @@ -1375,17 +1415,17 @@ public: /** Returns the number of files currently stored in the file history. */ - size_t GetCount() const; + virtual size_t GetCount() const; /** Returns the file at this index (zero-based). */ - wxString GetHistoryFile(size_t index) const; + virtual wxString GetHistoryFile(size_t index) const; /** Returns the maximum number of files that can be stored. */ - int GetMaxFiles() const; + virtual int GetMaxFiles() const; /** Returns the list of menus that are managed by this file history object. @@ -1400,17 +1440,17 @@ public: @see wxConfigBase */ - void Load(const wxConfigBase& config); + virtual void Load(const wxConfigBase& config); /** Removes the specified file from the history. */ - void RemoveFileFromHistory(size_t i); + virtual void RemoveFileFromHistory(size_t i); /** Removes this menu from the list of those managed by this object. */ - void RemoveMenu(wxMenu* menu); + virtual void RemoveMenu(wxMenu* menu); /** Saves the file history into the given config object. This must be @@ -1418,7 +1458,7 @@ public: @see wxConfigBase */ - void Save(wxConfigBase& config); + virtual void Save(wxConfigBase& config); /** Sets the base identifier for the range used for appending items. @@ -1431,7 +1471,7 @@ public: with filenames that are already in the history when this function is called, as this is not done automatically. */ - void UseMenu(wxMenu* menu); + virtual void UseMenu(wxMenu* menu); /** A character array of strings corresponding to the most recently opened