#if wxUSE_MDI
#include "wx/frame.h"
+#include "wx/menu.h"
// forward declarations
class WXDLLIMPEXP_FWD_CORE wxMDIParentFrame;
#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
// 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;
};