void wxMDIParentFrame::SetWindowMenu(wxMenu* menu) { if ( menu != m_windowMenu ) { // We may not be showing the window menu currently if we don't have any // children, and in this case we shouldn't remove/add it back right now. const bool hasWindowMenu = GetActiveChild() != NULL; if ( hasWindowMenu ) RemoveWindowMenu(); delete m_windowMenu; m_windowMenu = menu; if ( hasWindowMenu ) AddWindowMenu(); } #if wxUSE_ACCEL wxDELETE(m_accelWindowMenu); if ( menu && menu->HasAccels() ) m_accelWindowMenu = menu->CreateAccelTable(); #endif // wxUSE_ACCEL }
void wxGenericMDIParentFrame::SetMenuBar(wxMenuBar *pMenuBar) { // Remove the Window menu from the old menu bar RemoveWindowMenu(GetMenuBar()); // Add the Window menu to the new menu bar. AddWindowMenu(pMenuBar); wxFrame::SetMenuBar(pMenuBar); }
wxAuiMDIParentFrame::~wxAuiMDIParentFrame() { // Make sure the client window is destructed before the menu bars are! wxDELETE(m_pClientWindow); #if wxUSE_MENUS RemoveWindowMenu(GetMenuBar()); delete m_pWindowMenu; #endif // wxUSE_MENUS }
wxGenericMDIParentFrame::~wxGenericMDIParentFrame() { // Make sure the client window is destructed before the menu bars are! wxDELETE(m_clientWindow); #if wxUSE_MENUS wxDELETE(m_pMyMenuBar); RemoveWindowMenu(GetMenuBar()); #endif // wxUSE_MENUS }
wxMDIChildFrame::~wxMDIChildFrame() { // will be destroyed by DestroyChildren() but reset them before calling it // to avoid using dangling pointers if a callback comes in the meanwhile #if wxUSE_TOOLBAR m_frameToolBar = NULL; #endif #if wxUSE_STATUSBAR m_frameStatusBar = NULL; #endif // wxUSE_STATUSBAR DestroyChildren(); RemoveWindowMenu(NULL, m_hMenu); MSWDestroyWindow(); }
void wxAuiMDIParentFrame::SetWindowMenu(wxMenu* pMenu) { // Replace the window menu from the currently loaded menu bar. wxMenuBar *pMenuBar = GetMenuBar(); if (m_pWindowMenu) { RemoveWindowMenu(pMenuBar); wxDELETE(m_pWindowMenu); } if (pMenu) { m_pWindowMenu = pMenu; AddWindowMenu(pMenuBar); } }
void wxMDIParentFrame::RemoveMDIChild(wxMDIChildFrame * WXUNUSED(child)) { switch ( GetChildFramesCount() ) { case 1: // last MDI child is being removed, remove the now unnecessary // window menu too RemoveWindowMenu(); // there is no need to call UpdateWindowMenu(true) here so this is // not quite symmetric to AddMDIChild() above break; case 2: // only one MDI child is going to remain, disable the menu commands // which don't make sense for a single child window UpdateWindowMenu(false); break; } }
void wxMDIParentFrame::SetWindowMenu(wxMenu* menu) { if ( menu != m_windowMenu ) { // notice that Remove/AddWindowMenu() are safe to call even when // m_windowMenu is NULL RemoveWindowMenu(); delete m_windowMenu; m_windowMenu = menu; AddWindowMenu(); } #if wxUSE_ACCEL wxDELETE(m_accelWindowMenu); if ( menu && menu->HasAccels() ) m_accelWindowMenu = menu->CreateAccelTable(); #endif // wxUSE_ACCEL }
void wxMDIParentFrame::SetWindowMenu(wxMenu* menu) { if (m_windowMenu) { if (GetMenuBar()) { // Remove old window menu RemoveWindowMenu(GetClientWindow(), m_hMenu); } delete m_windowMenu; m_windowMenu = (wxMenu*) NULL; } if (menu) { m_windowMenu = menu; if (GetMenuBar()) { InsertWindowMenu(GetClientWindow(), m_hMenu, GetHmenuOf(m_windowMenu)); } } }
void wxMDIChildFrame::DetachMenuBar() { RemoveWindowMenu(NULL, m_hMenu); wxFrame::DetachMenuBar(); }