]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/menu.cpp
simplify code to return from the end of the function
[wxWidgets.git] / src / univ / menu.cpp
index 571761f561d1d3a4f4dc51c73e8ae7cfbe8d3bc2..957fb399722208075e6b8c6a505eb747420c3993 100644 (file)
@@ -281,10 +281,6 @@ private:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler)
-IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxWindow)
-IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
-
 BEGIN_EVENT_TABLE(wxPopupMenuWindow, wxPopupTransientWindow)
     EVT_KEY_DOWN(wxPopupMenuWindow::OnKeyDown)
 
@@ -606,7 +602,7 @@ void wxPopupMenuWindow::DoDraw(wxControlRenderer *renderer)
                 bmp = item->GetDisabledBitmap();
             }
 
-            if ( !bmp.Ok() )
+            if ( !bmp.IsOk() )
             {
                 // strangely enough, for unchecked item we use the
                 // "checked" bitmap because this is the default one - this
@@ -1096,11 +1092,7 @@ const wxMenuGeometryInfo& wxMenu::GetGeometryInfo() const
 
 void wxMenu::InvalidateGeometryInfo()
 {
-    if ( m_geometry )
-    {
-        delete m_geometry;
-        m_geometry = NULL;
-    }
+    wxDELETE(m_geometry);
 }
 
 // ----------------------------------------------------------------------------
@@ -1215,6 +1207,10 @@ void wxMenu::Attach(wxMenuBarBase *menubar)
 
 void wxMenu::Detach()
 {
+    // After the menu is detached from the menu bar, it shouldn't send its
+    // events to it.
+    SetNextHandler(NULL);
+
     wxMenuBase::Detach();
 }
 
@@ -2513,8 +2509,7 @@ bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y)
     ms_evtLoopPopup = new wxEventLoop;
     ms_evtLoopPopup->Run();
 
-    delete ms_evtLoopPopup;
-    ms_evtLoopPopup = NULL;
+    wxDELETE(ms_evtLoopPopup);
 
     // remove the handler
     PopEventHandler(true /* delete it */);