X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0367c1c0e82c6da38cea16c4bcef6583271789cc..2049d9b54bce5282ae4cfcfbdb48aecf05426140:/src/os2/frame.cpp diff --git a/src/os2/frame.cpp b/src/os2/frame.cpp index a3b3f82dd0..f640086808 100644 --- a/src/os2/frame.cpp +++ b/src/os2/frame.cpp @@ -68,10 +68,8 @@ BEGIN_EVENT_TABLE(wxFrameOS2, wxFrameBase) EVT_SYS_COLOUR_CHANGED(wxFrameOS2::OnSysColourChanged) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxFrameOS2, wxWindow) - #ifndef __WXUNIVERSAL__ -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameMSW) +IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) #endif // ============================================================================ @@ -617,6 +615,43 @@ void wxFrameOS2::SetMenuBar( } } // end of wxFrameOS2::SetMenuBar +void wxFrameOS2::AttachMenuBar( + wxMenuBar* pMenubar +) +{ + m_frameMenuBar = pMenubar; + + if (!pMenubar) + { + // + // Actually remove the menu from the frame + // + m_hMenu = (WXHMENU)0; + InternalSetMenuBar(); + } + else // Set new non NULL menu bar + { + // + // Can set a menubar several times. + // + if (pMenubar->GetHMenu()) + { + m_hMenu = pMenubar->GetHMenu(); + } + else + { + if (pMenubar->IsAttached()) + pMenubar->Detach(); + + m_hMenu = pMenubar->Create(); + + if (!m_hMenu) + return; + } + InternalSetMenuBar(); + } +} // end of wxFrameOS2::AttachMenuBar + void wxFrameOS2::InternalSetMenuBar() { ERRORID vError;