]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/docmdi.h
Support using GetTextExtent() with empty string to get descent in wxOSX.
[wxWidgets.git] / include / wx / docmdi.h
index 3d4e437fbe9d75f19e18dc9e7e6c7bd542974653..d0e0a19968ccb5475ce4d5b7c945ffb438925814 100644 (file)
@@ -1,11 +1,11 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        docmdi.h
+// Name:        wx/docmdi.h
 // Purpose:     Frame classes for MDI document/view applications
 // Author:      Julian Smart
 // Purpose:     Frame classes for MDI document/view applications
 // Author:      Julian Smart
-// Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart
+// Copyright:   (c) 1997 Julian Smart
+//              (c) 2010 Vadim Zeitlin
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/docview.h"
 #include "wx/mdi.h"
 
 #include "wx/docview.h"
 #include "wx/mdi.h"
 
-/*
- * Use this instead of 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 = 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; }
+#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
 
 
-    void OnExit(wxCommandEvent& event);
-    void OnMRUFile(wxCommandEvent& event);
-    void OnCloseWindow(wxCloseEvent& event);
+// 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.
 
 
-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)
 
 private:
     DECLARE_CLASS(wxDocMDIParentFrame)
-    DECLARE_EVENT_TABLE()
     wxDECLARE_NO_COPY_CLASS(wxDocMDIParentFrame);
 };
 
 // ----------------------------------------------------------------------------
     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
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-#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 WXDLLIMPEXP_CORE wxDocMDIChildFrame : public wxDocMDIChildFrameBase
 {
 public:
 typedef
   wxDocChildFrameAny<wxMDIChildFrame, wxMDIParentFrame> wxDocMDIChildFrameBase;
 
 class WXDLLIMPEXP_CORE wxDocMDIChildFrame : public wxDocMDIChildFrameBase
 {
 public:
+    wxDocMDIChildFrame() { }
+
     wxDocMDIChildFrame(wxDocument *doc,
                        wxView *view,
                        wxMDIParentFrame *parent,
     wxDocMDIChildFrame(wxDocument *doc,
                        wxView *view,
                        wxMDIParentFrame *parent,