// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c)
-// Licence: wxWindows licence
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DOCMDI_H_
#define _WX_DOCMDI_H_
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "docmdi.h"
-#endif
-
#include "wx/defs.h"
-#if wxUSE_MDI_ARCHITECTURE && wxUSE_DOC_VIEW_ARCHITECTURE
+#if wxUSE_MDI_ARCHITECTURE
#include "wx/docview.h"
#include "wx/mdi.h"
* Use this instead of wxMDIParentFrame
*/
-class WXDLLEXPORT wxDocMDIParentFrame: public wxMDIParentFrame
+class WXDLLIMPEXP_CORE wxDocMDIParentFrame: public wxMDIParentFrame
{
public:
+ wxDocMDIParentFrame();
wxDocMDIParentFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id,
const wxString& title, const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxT("frame"));
+ const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr);
- // Extend event processing to search the document manager's event table
- virtual bool ProcessEvent(wxEvent& event);
+ bool Create(wxDocManager *manager, wxFrame *parent, wxWindowID id,
+ const wxString& title, const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr);
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
void OnCloseWindow(wxCloseEvent& event);
protected:
+ void Init();
+
+ virtual bool TryBefore(wxEvent& event);
+
wxDocManager *m_docManager;
private:
DECLARE_CLASS(wxDocMDIParentFrame)
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxDocMDIParentFrame)
+ wxDECLARE_NO_COPY_CLASS(wxDocMDIParentFrame);
};
-/*
- * Use this instead of wxMDIChildFrame
- */
+// ----------------------------------------------------------------------------
+// An MDI document child frame: we need to define it as a class just for wxRTTI,
+// otherwise we could simply typedef it
+// ----------------------------------------------------------------------------
+
+#ifdef __VISUALC6__
+ // "non dll-interface class 'wxDocChildFrameAny<>' used as base interface
+ // for dll-interface class 'wxDocMDIChildFrame'" -- this is bogus as the
+ // template will be DLL-exported but only once it is used as base class
+ // here!
+ #pragma warning (push)
+ #pragma warning (disable:4275)
+#endif
+
+typedef
+ wxDocChildFrameAny<wxMDIChildFrame, wxMDIParentFrame> wxDocMDIChildFrameBase;
-class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame
+class WXDLLIMPEXP_CORE wxDocMDIChildFrame : public wxDocMDIChildFrameBase
{
public:
- wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id,
- const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long type = wxDEFAULT_FRAME_STYLE, const wxString& name = wxT("frame"));
- ~wxDocMDIChildFrame();
-
- // Extend event processing to search the view's event table
- virtual bool ProcessEvent(wxEvent& event);
-
- void OnActivate(wxActivateEvent& event);
- void OnCloseWindow(wxCloseEvent& event);
-
- inline wxDocument *GetDocument() const { return m_childDocument; }
- inline wxView *GetView(void) const { return m_childView; }
- inline void SetDocument(wxDocument *doc) { m_childDocument = doc; }
- inline void SetView(wxView *view) { m_childView = view; }
- bool Destroy() { m_childView = (wxView *)NULL; return wxMDIChildFrame::Destroy(); }
-
-protected:
- wxDocument* m_childDocument;
- wxView* m_childView;
+ wxDocMDIChildFrame(wxDocument *doc,
+ wxView *view,
+ wxMDIParentFrame *parent,
+ wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE,
+ const wxString& name = wxFrameNameStr)
+ : wxDocMDIChildFrameBase(doc, view,
+ parent, id, title, pos, size, style, name)
+ {
+ }
private:
- DECLARE_EVENT_TABLE()
DECLARE_CLASS(wxDocMDIChildFrame)
- DECLARE_NO_COPY_CLASS(wxDocMDIChildFrame)
+ wxDECLARE_NO_COPY_CLASS(wxDocMDIChildFrame);
};
+#ifdef __VISUALC6__
+ #pragma warning (pop)
#endif
- // wxUSE_MDI_ARCHITECTURE
-#endif
- // _WX_DOCMDI_H_
+#endif // wxUSE_MDI_ARCHITECTURE
+
+#endif // _WX_DOCMDI_H_