#ifndef _WX_DOCH__
#define _WX_DOCH__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "docview.h"
#endif
#include "wx/defs.h"
+
+#if wxUSE_DOC_VIEW_ARCHITECTURE
+
#include "wx/list.h"
#include "wx/cmndata.h"
#include "wx/string.h"
+#include "wx/frame.h"
#if wxUSE_PRINTING_ARCHITECTURE
#include "wx/print.h"
class WXDLLEXPORT wxConfigBase;
#if wxUSE_STD_IOSTREAM
- #include "wx/ioswrap.h"
+ #include "wx/iosfwrap.h"
#else
#include "wx/stream.h"
#endif
class WXDLLEXPORT wxDocument : public wxEvtHandler
{
- DECLARE_ABSTRACT_CLASS(wxDocument)
-
public:
wxDocument(wxDocument *parent = (wxDocument *) NULL);
~wxDocument();
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();
wxDocument* m_documentParent;
wxCommandProcessor* m_commandProcessor;
bool m_savedYet;
+
+private:
+ DECLARE_ABSTRACT_CLASS(wxDocument)
+ DECLARE_NO_COPY_CLASS(wxDocument)
};
class WXDLLEXPORT wxView: public wxEvtHandler
{
- DECLARE_ABSTRACT_CLASS(wxView)
-
public:
// wxView(wxDocument *doc = (wxDocument *) NULL);
wxView();
~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;
+
+private:
+ DECLARE_ABSTRACT_CLASS(wxView)
+ DECLARE_NO_COPY_CLASS(wxView)
};
// Represents user interface (and other) properties of documents and views
class WXDLLEXPORT wxDocTemplate: public wxObject
{
-DECLARE_CLASS(wxDocTemplate)
friend class WXDLLEXPORT wxDocManager;
// For dynamic creation of appropriate instances.
wxClassInfo* m_docClassInfo;
wxClassInfo* m_viewClassInfo;
+
+private:
+ DECLARE_CLASS(wxDocTemplate)
+ DECLARE_NO_COPY_CLASS(wxDocTemplate)
};
// One object of this class may be created in an application, to manage all
// 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);
// 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);
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);
static wxDocManager* sm_docManager;
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxDocManager)
};
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxDocChildFrame : public wxFrame
{
- DECLARE_CLASS(wxDocChildFrame)
-
public:
wxDocChildFrame(wxDocument *doc,
wxView *view,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME_STYLE,
- const wxString& name = "frame");
+ const wxString& name = wxT("frame"));
~wxDocChildFrame();
// Extend event processing to search the view's event table
wxDocument* m_childDocument;
wxView* m_childView;
+private:
+ DECLARE_CLASS(wxDocChildFrame)
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxDocChildFrame)
};
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxDocParentFrame : public wxFrame
{
- DECLARE_CLASS(wxDocParentFrame)
-
public:
wxDocParentFrame(wxDocManager *manager,
wxFrame *frame,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME_STYLE,
- const wxString& name = "frame");
+ const wxString& name = wxT("frame"));
// Extend event processing to search the document manager's event table
virtual bool ProcessEvent(wxEvent& event);
protected:
wxDocManager *m_docManager;
+private:
+ DECLARE_CLASS(wxDocParentFrame)
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxDocParentFrame)
};
// ----------------------------------------------------------------------------
#if wxUSE_PRINTING_ARCHITECTURE
class WXDLLEXPORT wxDocPrintout : public wxPrintout
{
- DECLARE_DYNAMIC_CLASS(wxDocPrintout)
-
public:
- wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = "Printout");
+ wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = wxT("Printout"));
bool OnPrintPage(int page);
bool HasPage(int page);
bool OnBeginDocument(int startPage, int endPage);
protected:
wxView* m_printoutView;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxDocPrintout)
+ DECLARE_NO_COPY_CLASS(wxDocPrintout)
};
#endif // wxUSE_PRINTING_ARCHITECTURE
class WXDLLEXPORT wxFileHistory : public wxObject
{
- DECLARE_DYNAMIC_CLASS(wxFileHistory)
-
public:
wxFileHistory(int maxFiles = 9);
~wxFileHistory();
wxList m_fileMenus;
// Max files to maintain
int m_fileMaxFiles;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxFileHistory)
+ DECLARE_NO_COPY_CLASS(wxFileHistory)
};
#if wxUSE_STD_IOSTREAM
// 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 // wxUSE_STD_IOSTREAM
+
+#endif // wxUSE_DOC_VIEW_ARCHITECTURE
#endif // _WX_DOCH__