X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a533f5c122c27b44a80b4eef2bd907a44bec8b70..da2fd5acd884129f58a5b394994ace8c22b55b6d:/include/wx/docview.h diff --git a/include/wx/docview.h b/include/wx/docview.h index 68a49c8346..8eafaccc13 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -92,8 +92,13 @@ public: virtual ostream& SaveObject(ostream& stream); virtual istream& LoadObject(istream& stream); #else - virtual bool SaveObject(wxOutputStream& stream); - virtual bool LoadObject(wxInputStream& stream); + virtual wxOutputStream& SaveObject(wxOutputStream& stream); + 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 @@ -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); @@ -352,11 +378,15 @@ public: // 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 +399,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 +413,8 @@ protected: wxList m_templates; wxView* m_currentView; wxFileHistory* m_fileHistory; + wxString m_lastDirectory; + static wxDocManager* sm_docManager; DECLARE_EVENT_TABLE() }; @@ -527,11 +565,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 +595,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 +635,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__