/////////////////////////////////////////////////////////////////////////////
-// Name: docmdi.h
+// Name: wx/docmdi.h
// Purpose: Frame classes for MDI document/view applications
// Author: Julian Smart
-// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart
+// Copyright: (c) 1997 Julian Smart
+// (c) 2010 Vadim Zeitlin
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/docview.h"
#include "wx/mdi.h"
-/*
- * Use this instead of wxMDIParentFrame
- */
+#ifdef __VISUALC6__
+ // "non dll-interface class 'wxDocXXXFrameAny<>' used as base interface for
+ // dll-interface class 'wxDocMDIXXXFrame'" -- 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
-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 = wxFrameNameStr);
-
- 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; }
+// Define MDI versions of the doc-view frame classes. Note that we need to
+// define them as classes for wxRTTI, otherwise we could simply define them as
+// typedefs.
- void OnExit(wxCommandEvent& event);
- void OnMRUFile(wxCommandEvent& event);
- void OnCloseWindow(wxCloseEvent& event);
-
-protected:
- void Init();
+// ----------------------------------------------------------------------------
+// An MDI document parent frame
+// ----------------------------------------------------------------------------
- virtual bool TryBefore(wxEvent& event);
+typedef
+ wxDocParentFrameAny<wxMDIParentFrame> wxDocMDIParentFrameBase;
- wxDocManager *m_docManager;
+class WXDLLIMPEXP_CORE wxDocMDIParentFrame : public wxDocMDIParentFrameBase
+{
+public:
+ wxDocMDIParentFrame() : wxDocMDIParentFrameBase() { }
+
+ 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 = wxFrameNameStr)
+ : wxDocMDIParentFrameBase(manager,
+ parent, id, title, pos, size, style, name)
+ {
+ }
private:
DECLARE_CLASS(wxDocMDIParentFrame)
- DECLARE_EVENT_TABLE()
wxDECLARE_NO_COPY_CLASS(wxDocMDIParentFrame);
};
// ----------------------------------------------------------------------------
-// An MDI document child frame: we need to define it as a class just for wxRTTI,
-// otherwise we could simply typedef it
+// An MDI document child frame
// ----------------------------------------------------------------------------
typedef
class WXDLLIMPEXP_CORE wxDocMDIChildFrame : public wxDocMDIChildFrameBase
{
public:
+ wxDocMDIChildFrame() { }
+
wxDocMDIChildFrame(wxDocument *doc,
wxView *view,
wxMDIParentFrame *parent,
wxDECLARE_NO_COPY_CLASS(wxDocMDIChildFrame);
};
-WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE( wxDocMDIChildFrameBase )
-
+#ifdef __VISUALC6__
+ #pragma warning (pop)
+#endif
#endif // wxUSE_MDI_ARCHITECTURE