]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/docview.h
1. fixed bug with MDI child frames changign state when parent frame was
[wxWidgets.git] / include / wx / docview.h
index 598d84c1254e520258595d245ba91f7d3b5208e8..592a7439dbab7fa6b7f32b3b7766f8cc8271bca4 100644 (file)
@@ -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,6 +316,20 @@ 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);
 
@@ -343,11 +371,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 +392,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 +406,8 @@ protected:
     wxList            m_templates;
     wxView*           m_currentView;
     wxFileHistory*    m_fileHistory;
+    wxString          m_lastDirectory;
+    static wxDocManager* sm_docManager;
 
     DECLARE_EVENT_TABLE()
 };
@@ -539,6 +579,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 +614,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__