// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __DOCH__
-#define __DOCH__
+#ifndef _WX_DOCH__
+#define _WX_DOCH__
#ifdef __GNUG__
#pragma interface "docview.h"
#include "wx/cmndata.h"
#include "wx/string.h"
-#if USE_PRINTING_ARCHITECTURE
+#if wxUSE_PRINTING_ARCHITECTURE
#include "wx/print.h"
#endif
class WXDLLEXPORT wxCommand;
class WXDLLEXPORT wxCommandProcessor;
class WXDLLEXPORT wxFileHistory;
-
-class WXDLLIMPORT ostream;
-class WXDLLIMPORT istream;
+class WXDLLEXPORT wxConfigBase;
+
+#if wxUSE_IOSTREAMH
+// N.B. BC++ doesn't have istream.h, ostream.h
+# include <iostream.h>
+#else
+# include <istream>
+# include <ostream>
+# ifdef _MSC_VER
+ using namespace std;
+# endif
+#endif
// Document manager flags
#define wxDOC_SDI 1
{
DECLARE_ABSTRACT_CLASS(wxDocument)
public:
- wxDocument(wxDocument *parent = NULL);
+ wxDocument(wxDocument *parent = (wxDocument *) NULL);
~wxDocument(void);
void SetFilename(const wxString& filename, bool notifyViews = FALSE);
inline wxList& GetViews(void) const { return (wxList&) m_documentViews; }
wxView *GetFirstView(void) const;
- virtual void UpdateAllViews(wxView *sender = NULL, wxObject *hint = NULL);
+ virtual void UpdateAllViews(wxView *sender = (wxView *) NULL, wxObject *hint = (wxObject *) NULL);
// Remove all views (because we're closing the document)
virtual bool DeleteAllViews(void);
{
DECLARE_ABSTRACT_CLASS(wxView)
public:
- wxView(wxDocument *doc = NULL);
+ wxView(wxDocument *doc = (wxDocument *) NULL);
~wxView(void);
inline wxDocument *GetDocument(void) const { return m_viewDocument; }
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 = NULL);
+ virtual void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL);
virtual void OnChangeFilename(void);
// Called by framework if created automatically by the
inline wxDocManager *GetDocumentManager(void) const { return m_viewDocument->GetDocumentManager(); }
-#if USE_PRINTING_ARCHITECTURE
+#if wxUSE_PRINTING_ARCHITECTURE
virtual wxPrintout *OnCreatePrintout(void);
#endif
// template/document type
wxDocTemplate(wxDocManager *manager, const wxString& descr, const wxString& filter, const wxString& dir,
const wxString& ext, const wxString& docTypeName, const wxString& viewTypeName,
- wxClassInfo *docClassInfo = NULL, wxClassInfo *viewClassInfo = NULL,
+ wxClassInfo *docClassInfo = (wxClassInfo *) NULL, wxClassInfo *viewClassInfo = (wxClassInfo *)NULL,
long flags = wxDEFAULT_TEMPLATE_FLAGS);
~wxDocTemplate(void);
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
-#ifdef WXWIN_COMPATIBILITY
- virtual wxDocument *CreateDocument(char *WXUNUSED(path), long WXUNUSED(flags = 0)) { return NULL; };
-#endif
+ // Extend event processing to search the view's event table
+ virtual bool ProcessEvent(wxEvent& event);
+
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);
// Views or windows should inform the document manager
// when a view is going in or out of focus
virtual void ActivateView(wxView *view, bool activate = TRUE, bool deleting = FALSE);
- virtual inline wxView *GetCurrentView(void) const { return m_currentView; }
+ virtual wxView *GetCurrentView(void) const;
virtual inline wxList& GetDocuments(void) const { return (wxList&) m_docs; }
virtual int GetNoHistoryFiles(void) const;
virtual wxString GetHistoryFile(int i) const;
virtual void FileHistoryUseMenu(wxMenu *menu);
- virtual void FileHistoryLoad(const wxString& resourceFile, const wxString& section);
- virtual void FileHistorySave(const wxString& resourceFile, const wxString& section);
+ virtual void FileHistoryRemoveMenu(wxMenu *menu);
+ virtual void FileHistoryLoad(wxConfigBase& config);
+ virtual void FileHistorySave(wxConfigBase& config);
+ virtual void FileHistoryAddFilesToMenu();
+ virtual void FileHistoryAddFilesToMenu(wxMenu* menu);
protected:
long m_flags;
int m_defaultDocumentNameCounter;
DECLARE_CLASS(wxDocChildFrame)
public:
- wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, const wxString& title,
+ wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, wxWindowID id, const wxString& title,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- const long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
+ long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocChildFrame(void);
- bool OnClose(void);
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
-// void OldOnMenuCommand(int id);
void OnActivate(wxActivateEvent& event);
+ void OnCloseWindow(wxCloseEvent& event);
inline wxDocument *GetDocument(void) const { return m_childDocument; }
inline wxView *GetView(void) const { return m_childView; }
{
DECLARE_CLASS(wxDocParentFrame)
public:
- wxDocParentFrame(wxDocManager *manager, wxFrame *frame, const wxString& title,
+ wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- const long type = wxDEFAULT_FRAME, const wxString& name = "frame");
+ long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
- bool OnClose(void);
// Extend event processing to search the document manager's event table
virtual bool ProcessEvent(wxEvent& event);
-// void OldOnMenuCommand(int id);
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
void OnExit(wxCommandEvent& event);
void OnMRUFile(wxCommandEvent& event);
+ void OnCloseWindow(wxCloseEvent& event);
protected:
wxDocManager *m_docManager;
* Provide simple default printing facilities
*/
-#if USE_PRINTING_ARCHITECTURE
+#if wxUSE_PRINTING_ARCHITECTURE
class WXDLLEXPORT wxDocPrintout: public wxPrintout
{
DECLARE_DYNAMIC_CLASS(wxDocPrintout)
public:
- wxDocPrintout(wxView *view = NULL, const wxString& title = "Printout");
+ wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = "Printout");
bool OnPrintPage(int page);
bool HasPage(int page);
bool OnBeginDocument(int startPage, int endPage);
virtual bool Submit(wxCommand *command, bool storeIt = TRUE);
virtual bool Undo(void);
virtual bool Redo(void);
- virtual bool CanUndo(void);
+ virtual bool CanUndo(void) const;
+ virtual bool CanRedo(void) const;
// Call this to manage an edit menu.
inline void SetEditMenu(wxMenu *menu) { m_commandEditMenu = menu; }
wxMenu* m_commandEditMenu;
};
+// File history management
+
class WXDLLEXPORT wxFileHistory: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxFileHistory)
wxFileHistory(int maxFiles = 9);
~wxFileHistory(void);
- // File history management
+// Operations
virtual void AddFileToHistory(const wxString& file);
- inline virtual int GetNoHistoryFiles(void) const { return m_fileHistoryN; }
- virtual wxString GetHistoryFile(int i) const;
virtual int GetMaxFiles(void) const { return m_fileMaxFiles; }
- virtual void FileHistoryUseMenu(wxMenu *menu);
- virtual void FileHistoryLoad(const wxString& resourceFile, const wxString& section);
- virtual void FileHistorySave(const wxString& resourceFile, const wxString& section);
+ virtual void UseMenu(wxMenu *menu);
+
+ // Remove menu from the list (MDI child may be closing)
+ virtual void RemoveMenu(wxMenu *menu);
+
+ virtual void Load(wxConfigBase& config);
+ virtual void Save(wxConfigBase& config);
+
+ virtual void AddFilesToMenu();
+ virtual void AddFilesToMenu(wxMenu* menu); // Single menu
+
+// Accessors
+ virtual wxString GetHistoryFile(int i) const;
+
+ // A synonym for GetNoHistoryFiles
+ virtual int GetCount() const { return m_fileHistoryN; }
+ inline int GetNoHistoryFiles(void) const { return m_fileHistoryN; }
+
+ inline wxList& GetMenus() const { return (wxList&) m_fileMenus; }
+
protected:
// Last n files
char** m_fileHistory;
// Number of files saved
int m_fileHistoryN;
- // Menu to maintain
- wxMenu* m_fileMenu;
+ // Menus to maintain (may need several for an MDI app)
+ wxList m_fileMenus;
// Max files to maintain
int m_fileMaxFiles;
};