X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/387a3b02e02d91da6c5d4331b667d835e32c83b0..14619f10b0bdb630206607abd0ce0319d45e095a:/include/wx/docmdi.h diff --git a/include/wx/docmdi.h b/include/wx/docmdi.h index 43c4d9d871..d0e0a19968 100644 --- a/include/wx/docmdi.h +++ b/include/wx/docmdi.h @@ -1,83 +1,101 @@ ///////////////////////////////////////////////////////////////////////////// -// 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) -// Licence: wxWindows licence +// Copyright: (c) 1997 Julian Smart +// (c) 2010 Vadim Zeitlin +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_DOCMDI_H_ #define _WX_DOCMDI_H_ -#ifdef __GNUG__ -#pragma interface "docmdi.h" -#endif +#include "wx/defs.h" + +#if wxUSE_MDI_ARCHITECTURE #include "wx/docview.h" #include "wx/mdi.h" -/* - * Use this instead of wxMDIParentFrame - */ - -class wxDocMDIParentFrame: public wxMDIParentFrame -{ - DECLARE_CLASS(wxDocMDIParentFrame) - public: - 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 = "frame"); - - // Extend event processing to search the document manager's event table - virtual bool ProcessEvent(wxEvent& event); - - wxDocManager *GetDocumentManager(void) const { return m_docManager; } - - void OnExit(wxCommandEvent& event); - void OnMRUFile(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); +#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 - protected: - wxDocManager *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. +// ---------------------------------------------------------------------------- +// An MDI document parent frame +// ---------------------------------------------------------------------------- -DECLARE_EVENT_TABLE() -}; +typedef + wxDocParentFrameAny wxDocMDIParentFrameBase; -/* - * Use this instead of wxMDIChildFrame - */ - -class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame +class WXDLLIMPEXP_CORE wxDocMDIParentFrame : public wxDocMDIParentFrameBase { - DECLARE_CLASS(wxDocMDIChildFrame) - - 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 = "frame"); - ~wxDocMDIChildFrame(void); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - void OnActivate(wxActivateEvent& event); - void OnCloseWindow(wxCloseEvent& event); +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) + wxDECLARE_NO_COPY_CLASS(wxDocMDIParentFrame); +}; - inline wxDocument *GetDocument(void) 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; } - protected: - wxDocument* m_childDocument; - wxView* m_childView; +// ---------------------------------------------------------------------------- +// An MDI document child frame +// ---------------------------------------------------------------------------- -DECLARE_EVENT_TABLE() +typedef + wxDocChildFrameAny wxDocMDIChildFrameBase; +class WXDLLIMPEXP_CORE wxDocMDIChildFrame : public wxDocMDIChildFrameBase +{ +public: + wxDocMDIChildFrame() { } + + 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_CLASS(wxDocMDIChildFrame) + wxDECLARE_NO_COPY_CLASS(wxDocMDIChildFrame); }; +#ifdef __VISUALC6__ + #pragma warning (pop) #endif - // _WX_DOCMDI_H_ + +#endif // wxUSE_MDI_ARCHITECTURE + +#endif // _WX_DOCMDI_H_