]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mdi.h
Fix wrong tab order in wxAuiNotebook after dragging.
[wxWidgets.git] / include / wx / mdi.h
index e11290ead98b540577d5b0bd3dd01b2628d397b1..19a8832fb643b8672f00c1e51653370c5e0c3d78 100644 (file)
@@ -17,6 +17,7 @@
 #if wxUSE_MDI
 
 #include "wx/frame.h"
+#include "wx/menu.h"
 
 // forward declarations
 class WXDLLIMPEXP_FWD_CORE wxMDIParentFrame;
@@ -80,15 +81,18 @@ public:
 #if wxUSE_MENUS
     // return the pointer to the current window menu or NULL if we don't have
     // because of wxFRAME_NO_WINDOW_MENU style
-    wxMenu* GetWindowMenu() const { return m_windowMenu; };
+    wxMenu* GetWindowMenu() const { return m_windowMenu; }
 
     // use the given menu instead of the default window menu
     //
     // menu can be NULL to disable the window menu completely
     virtual void SetWindowMenu(wxMenu *menu)
     {
-        delete m_windowMenu;
-        m_windowMenu = menu;
+        if ( menu != m_windowMenu )
+        {
+            delete m_windowMenu;
+            m_windowMenu = menu;
+        }
     }
 #endif // wxUSE_MENUS
 
@@ -172,6 +176,16 @@ public:
     // level windows too
     virtual bool IsTopLevel() const { return false; }
 
+    // In all ports keyboard navigation must stop at MDI child frame level and
+    // can't cross its boundary. Indicate this by overriding this function to
+    // return true.
+    virtual bool IsTopNavigationDomain() const { return true; }
+
+    // Raising any frame is supposed to show it but wxFrame Raise()
+    // implementation doesn't work for MDI child frames in most forms so
+    // forward this to Activate() which serves the same purpose by default.
+    virtual void Raise() { Activate(); }
+
 protected:
     wxMDIParentFrame *m_mdiParent;
 };