#ifndef _WX_DOCH__
#define _WX_DOCH__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "docview.h"
#endif
#include "wx/list.h"
#include "wx/cmndata.h"
#include "wx/string.h"
+#include "wx/frame.h"
#if wxUSE_PRINTING_ARCHITECTURE
#include "wx/print.h"
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);
wxView *GetFirstView() const;
virtual void UpdateAllViews(wxView *sender = (wxView *) NULL, wxObject *hint = (wxObject *) NULL);
+ virtual void NotifyClosing();
// Remove all views (because we're closing the document)
virtual bool DeleteAllViews();
~wxView();
wxDocument *GetDocument() const { return m_viewDocument; }
- void SetDocument(wxDocument *doc);
+ virtual void SetDocument(wxDocument *doc);
wxString GetViewName() const { return m_viewTypeName; }
void SetViewName(const wxString& name) { m_viewTypeName = name; };
- wxFrame *GetFrame() const { return m_viewFrame ; }
- void SetFrame(wxFrame *frame) { m_viewFrame = frame; }
+ wxWindow *GetFrame() const { return m_viewFrame ; }
+ void SetFrame(wxWindow *frame) { m_viewFrame = frame; }
virtual void OnActivateView(bool activate, wxView *activeView, wxView *deactiveView);
virtual void OnDraw(wxDC *dc) = 0;
virtual void OnPrint(wxDC *dc, wxObject *info);
virtual void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL);
+ virtual void OnClosingDocument() {};
virtual void OnChangeFilename();
// Called by framework if created automatically by the default document
protected:
wxDocument* m_viewDocument;
wxString m_viewTypeName;
- wxFrame* m_viewFrame;
+ wxWindow* m_viewFrame;
};
// Represents user interface (and other) properties of documents and views
// Handlers for common user commands
void OnFileClose(wxCommandEvent& event);
+ void OnFileCloseAll(wxCommandEvent& event);
void OnFileNew(wxCommandEvent& event);
void OnFileOpen(wxCommandEvent& event);
void OnFileRevert(wxCommandEvent& event);
void AddDocument(wxDocument *doc);
void RemoveDocument(wxDocument *doc);
+ // closes all currently open documents
+ bool CloseDocuments(bool force = TRUE);
+
// Clear remaining documents and templates
bool Clear(bool force = TRUE);