]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/menu.cpp
added another AddPane() call which allows the caller to add a new window at a certain...
[wxWidgets.git] / src / univ / menu.cpp
index 13ba039b2759ca3a851e8f66b280383e5396e839..e25a936355256ba230bb8fa73d1e7157ad918ba0 100644 (file)
 
 #if wxUSE_MENUS
 
 
 #if wxUSE_MENUS
 
+#include "wx/menu.h"
+
 #ifndef WX_PRECOMP
     #include "wx/dynarray.h"
     #include "wx/control.h"      // for FindAccelIndex()
 #ifndef WX_PRECOMP
     #include "wx/dynarray.h"
     #include "wx/control.h"      // for FindAccelIndex()
-    #include "wx/menu.h"
     #include "wx/settings.h"
     #include "wx/accel.h"
     #include "wx/log.h"
     #include "wx/settings.h"
     #include "wx/accel.h"
     #include "wx/log.h"
+    #include "wx/frame.h"
+    #include "wx/dcclient.h"
 #endif // WX_PRECOMP
 
 #include "wx/popupwin.h"
 #include "wx/evtloop.h"
 #endif // WX_PRECOMP
 
 #include "wx/popupwin.h"
 #include "wx/evtloop.h"
-#include "wx/dcclient.h"
-#include "wx/frame.h"
 
 #include "wx/univ/renderer.h"
 
 
 #include "wx/univ/renderer.h"
 
@@ -345,7 +346,7 @@ void wxPopupMenuWindow::SetCurrentItem(wxMenuItemIter node)
 
 void wxPopupMenuWindow::ChangeCurrent(wxMenuItemIter node)
 {
 
 void wxPopupMenuWindow::ChangeCurrent(wxMenuItemIter node)
 {
-    if ( node != m_nodeCurrent )
+    if ( !m_nodeCurrent || (node != m_nodeCurrent) )
     {
         wxMenuItemIter nodeOldCurrent = m_nodeCurrent;
 
     {
         wxMenuItemIter nodeOldCurrent = m_nodeCurrent;
 
@@ -375,7 +376,7 @@ wxMenuItemIter wxPopupMenuWindow::GetPrevNode() const
 {
     // return the last node if there had been no previously selected one
     return m_nodeCurrent ? GetPrevNode(m_nodeCurrent)
 {
     // return the last node if there had been no previously selected one
     return m_nodeCurrent ? GetPrevNode(m_nodeCurrent)
-                         : m_menu->GetMenuItems().GetLast();
+                         : wxMenuItemIter(m_menu->GetMenuItems().GetLast());
 }
 
 wxMenuItemIter
 }
 
 wxMenuItemIter
@@ -398,7 +399,7 @@ wxMenuItemIter wxPopupMenuWindow::GetNextNode() const
 {
     // return the first node if there had been no previously selected one
     return m_nodeCurrent ? GetNextNode(m_nodeCurrent)
 {
     // return the first node if there had been no previously selected one
     return m_nodeCurrent ? GetNextNode(m_nodeCurrent)
-                         : m_menu->GetMenuItems().GetFirst();
+                         : wxMenuItemIter(m_menu->GetMenuItems().GetFirst());
 }
 
 wxMenuItemIter
 }
 
 wxMenuItemIter
@@ -761,7 +762,7 @@ void wxPopupMenuWindow::ProcessMouseMove(const wxPoint& pt)
     // the window (see below)
     if ( node )
     {
     // the window (see below)
     if ( node )
     {
-        if ( node != m_nodeCurrent )
+        if ( !m_nodeCurrent || (node != m_nodeCurrent) )
         {
             ChangeCurrent(node);
 
         {
             ChangeCurrent(node);