X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/caf0debf72cfec867c2780810187fde443f9ed72..0902e71a160c215d9f65214a19a53facd1cf7ab9:/include/wx/docview.h diff --git a/include/wx/docview.h b/include/wx/docview.h index 598d84c125..1ae9b6ee9c 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -36,7 +36,11 @@ class WXDLLEXPORT wxCommandProcessor; class WXDLLEXPORT wxFileHistory; class WXDLLEXPORT wxConfigBase; -#include "wx/ioswrap.h" +#if wxUSE_STD_IOSTREAM + #include "wx/ioswrap.h" +#else + #include "wx/stream.h" +#endif // Document manager flags enum @@ -84,8 +88,18 @@ public: virtual bool SaveAs(); virtual bool Revert(); +#if wxUSE_STD_IOSTREAM virtual ostream& SaveObject(ostream& stream); virtual istream& LoadObject(istream& stream); +#else + 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 virtual bool OnSaveDocument(const wxString& filename); @@ -302,9 +316,27 @@ 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 + virtual void OnOpenFileFailure() { wxFAIL_MSG(_T("file format mismatch")); } + 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); @@ -343,11 +375,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); @@ -360,6 +396,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; @@ -368,6 +410,8 @@ protected: wxList m_templates; wxView* m_currentView; wxFileHistory* m_fileHistory; + wxString m_lastDirectory; + static wxDocManager* sm_docManager; DECLARE_EVENT_TABLE() }; @@ -539,6 +583,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); @@ -573,9 +618,16 @@ protected: int m_fileMaxFiles; }; +#if wxUSE_STD_IOSTREAM // For compatibility with existing file formats: // 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__