X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..276c8cfb5326cd365f48a51972f43ff355a2707d:/src/msw/mdi.cpp diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 6f14a8a454..4bbb0a2b56 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -203,7 +203,7 @@ bool wxMDIParentFrame::Create(wxWindow *parent, if ( parent ) parent->AddChild(this); - if ( id > -1 ) + if ( id != wxID_ANY ) m_windowId = id; else m_windowId = NewControlId(); @@ -234,7 +234,9 @@ wxMDIParentFrame::~wxMDIParentFrame() #if wxUSE_TOOLBAR m_frameToolBar = NULL; #endif +#if wxUSE_STATUSBAR m_frameStatusBar = NULL; +#endif // wxUSE_STATUSBAR DestroyChildren(); @@ -298,6 +300,34 @@ void wxMDIParentFrame::SetWindowMenu(wxMenu* menu) } } +void wxMDIParentFrame::DoMenuUpdates(wxMenu* menu) +{ + wxMDIChildFrame *child = GetActiveChild(); + if ( child ) + { + wxEvtHandler* source = child->GetEventHandler(); + wxMenuBar* bar = child->GetMenuBar(); + + if (menu) + { + menu->UpdateUI(source); + } + else + { + if ( bar != NULL ) + { + int nCount = bar->GetMenuCount(); + for (int n = 0; n < nCount; n++) + bar->GetMenu(n)->UpdateUI(source); + } + } + } + else + { + wxFrameBase::DoMenuUpdates(menu); + } +} + void wxMDIParentFrame::OnSize(wxSizeEvent&) { if ( GetClientWindow() ) @@ -653,7 +683,7 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, SetName(name); wxWindowBase::Show(true); // MDI child frame starts off shown - if ( id > -1 ) + if ( id != wxID_ANY ) m_windowId = id; else m_windowId = (int)NewControlId(); @@ -675,22 +705,22 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, : wxMDIChildFrameClassNameNoRedraw; mcs.szTitle = title; mcs.hOwner = wxGetInstance(); - if (x > -1) + if (x != wxDefaultCoord) mcs.x = x; else mcs.x = CW_USEDEFAULT; - if (y > -1) + if (y != wxDefaultCoord) mcs.y = y; else mcs.y = CW_USEDEFAULT; - if (width > -1) + if (width != wxDefaultCoord) mcs.cx = width; else mcs.cx = CW_USEDEFAULT; - if (height > -1) + if (height != wxDefaultCoord) mcs.cy = height; else mcs.cy = CW_USEDEFAULT; @@ -732,7 +762,9 @@ wxMDIChildFrame::~wxMDIChildFrame() #if wxUSE_TOOLBAR m_frameToolBar = NULL; #endif +#if wxUSE_STATUSBAR m_frameStatusBar = NULL; +#endif // wxUSE_STATUSBAR DestroyChildren(); @@ -759,12 +791,14 @@ void wxMDIChildFrame::DoSetClientSize(int width, int height) int actual_width = rect2.right - rect2.left - rect.right + width; int actual_height = rect2.bottom - rect2.top - rect.bottom + height; +#if wxUSE_STATUSBAR if (GetStatusBar() && GetStatusBar()->IsShown()) { int sx, sy; GetStatusBar()->GetSize(&sx, &sy); actual_height += sy; } +#endif // wxUSE_STATUSBAR POINT point; point.x = rect2.left;