]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/frame.cpp
Added style parameter to wxPopupWindow ctors so they match the Create method.
[wxWidgets.git] / src / os2 / frame.cpp
index a3b3f82dd018d9bb034c6c744c1c6b50ae83cfdc..f64008680829526c085212b28d441531455ff427 100644 (file)
@@ -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;