X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23a54e14a71e9184c3c33c2ba39b10ee1dd029b6..e5aea7214deb0443b068b1deb4a81772572d849e:/include/wx/docview.h diff --git a/include/wx/docview.h b/include/wx/docview.h index 592b3d6bd4..1672e1c028 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -96,6 +96,11 @@ public: virtual wxInputStream& LoadObject(wxInputStream& stream); #endif +#if wxUSE_SERIAL + // need this to keep from hiding the virtual from wxObject + virtual void LoadObject(wxObjectInputStream& stream) { wxObject::LoadObject(stream); }; +#endif + // Called by wxWindows virtual bool OnSaveDocument(const wxString& filename); virtual bool OnOpenDocument(const wxString& filename); @@ -311,9 +316,30 @@ public: void OnUndo(wxCommandEvent& event); void OnRedo(wxCommandEvent& event); + // Handlers for UI update commands + void OnUpdateFileOpen(wxUpdateUIEvent& event); + void OnUpdateFileClose(wxUpdateUIEvent& event); + void OnUpdateFileRevert(wxUpdateUIEvent& event); + void OnUpdateFileNew(wxUpdateUIEvent& event); + void OnUpdateFileSave(wxUpdateUIEvent& event); + void OnUpdateFileSaveAs(wxUpdateUIEvent& event); + void OnUpdateUndo(wxUpdateUIEvent& event); + void OnUpdateRedo(wxUpdateUIEvent& event); + + void OnUpdatePrint(wxUpdateUIEvent& event); + void OnUpdatePrintSetup(wxUpdateUIEvent& event); + void OnUpdatePreview(wxUpdateUIEvent& event); + // Extend event processing to search the view's event table virtual bool ProcessEvent(wxEvent& event); + // called when file format detection didn't work, can be overridden to do + // something in this case + // This is of course completely stupid, because if the file dialog is + // cancelled you get an assert. Brilliant. -- JACS +// virtual void OnOpenFileFailure() { wxFAIL_MSG(_T("file format mismatch")); } + virtual void OnOpenFileFailure() { } + virtual wxDocument *CreateDocument(const wxString& path, long flags = 0); virtual wxView *CreateView(wxDocument *doc, long flags = 0); virtual void DeleteTemplate(wxDocTemplate *temp, long flags = 0); @@ -322,9 +348,9 @@ public: virtual wxDocTemplate *SelectDocumentPath(wxDocTemplate **templates, int noTemplates, wxString& path, long flags, bool save = FALSE); virtual wxDocTemplate *SelectDocumentType(wxDocTemplate **templates, - int noTemplates); + int noTemplates, bool sort = FALSE); virtual wxDocTemplate *SelectViewType(wxDocTemplate **templates, - int noTemplates); + int noTemplates, bool sort = FALSE); virtual wxDocTemplate *FindTemplateForPath(const wxString& path); void AssociateTemplate(wxDocTemplate *temp); @@ -347,16 +373,21 @@ public: virtual void ActivateView(wxView *view, bool activate = TRUE, bool deleting = FALSE); virtual wxView *GetCurrentView() const; - virtual wxList& GetDocuments() const { return (wxList&) m_docs; } + wxList& GetDocuments() { return m_docs; } + wxList& GetTemplates() { return m_templates; } // Make a default document name virtual bool MakeDefaultName(wxString& buf); + // Make a frame title (override this to do something different) + virtual wxString MakeFrameTitle(wxDocument* doc); + virtual wxFileHistory *OnCreateFileHistory(); virtual wxFileHistory *GetFileHistory() const { return m_fileHistory; } // File history management virtual void AddFileToHistory(const wxString& file); + virtual void RemoveFileFromHistory(int i); virtual int GetNoHistoryFiles() const; virtual wxString GetHistoryFile(int i) const; virtual void FileHistoryUseMenu(wxMenu *menu); @@ -369,6 +400,12 @@ public: virtual void FileHistoryAddFilesToMenu(); virtual void FileHistoryAddFilesToMenu(wxMenu* menu); + inline wxString GetLastDirectory() const { return m_lastDirectory; } + inline void SetLastDirectory(const wxString& dir) { m_lastDirectory = dir; } + + // Get the current document manager + static wxDocManager* GetDocumentManager() { return sm_docManager; } + protected: long m_flags; int m_defaultDocumentNameCounter; @@ -377,6 +414,8 @@ protected: wxList m_templates; wxView* m_currentView; wxFileHistory* m_fileHistory; + wxString m_lastDirectory; + static wxDocManager* sm_docManager; DECLARE_EVENT_TABLE() }; @@ -527,11 +566,20 @@ public: int GetMaxCommands() const { return m_maxNoCommands; } virtual void ClearCommands(); + // By default, the accelerators are "\tCtrl+Z" and "\tCtrl+Y" + const wxString& GetUndoAccelerator() const { return m_undoAccelerator; } + const wxString& GetRedoAccelerator() const { return m_redoAccelerator; } + + void SetUndoAccelerator(const wxString& accel) { m_undoAccelerator = accel; } + void SetRedoAccelerator(const wxString& accel) { m_redoAccelerator = accel; } + protected: int m_maxNoCommands; wxList m_commands; wxNode* m_currentCommand; wxMenu* m_commandEditMenu; + wxString m_undoAccelerator; + wxString m_redoAccelerator; }; // ---------------------------------------------------------------------------- @@ -548,6 +596,7 @@ public: // Operations virtual void AddFileToHistory(const wxString& file); + virtual void RemoveFileFromHistory(int i); virtual int GetMaxFiles() const { return m_fileMaxFiles; } virtual void UseMenu(wxMenu *menu); @@ -587,6 +636,11 @@ protected: // converts from/to a stream to/from a temporary file. bool WXDLLEXPORT wxTransferFileToStream(const wxString& filename, ostream& stream); bool WXDLLEXPORT wxTransferStreamToFile(istream& stream, const wxString& filename); +#else +// For compatibility with existing file formats: +// converts from/to a stream to/from a temporary file. +bool WXDLLEXPORT wxTransferFileToStream(const wxString& filename, wxOutputStream& stream); +bool WXDLLEXPORT wxTransferStreamToFile(wxInputStream& stream, const wxString& filename); #endif #endif // _WX_DOCH__