]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/treebase.cpp
refactor wxStaticText::Ellipsize so it's a static public utility function; document...
[wxWidgets.git] / src / common / treebase.cpp
index 548b01fb763235dd5b9cc00a6efca4c63857d314..bea5d72e35195daa1931ece3953ae9df07b3efa7 100644 (file)
@@ -59,8 +59,7 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TREE_ITEM_MENU)
 // Tree event
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_ABSTRACT_CLASS(wxTreeEvent, wxNotifyEvent)
-
+IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxNotifyEvent)
 
 wxTreeEvent::wxTreeEvent(wxEventType commandType,
                          wxTreeCtrlBase *tree,
@@ -110,13 +109,19 @@ void wxTreeCtrlBase::SetItemState(const wxTreeItemId& item, int state)
 {
     if ( state == wxTREE_ITEMSTATE_NEXT )
     {
-        state = GetItemState(item) + 1;
+        int current = GetItemState(item);
+        if ( current == wxTREE_ITEMSTATE_NONE )
+            return;
+        state = current + 1;
         if ( m_imageListState && state >= m_imageListState->GetImageCount() )
             state = 0;
     }
     else if ( state == wxTREE_ITEMSTATE_PREV )
     {
-        state = GetItemState(item) - 1;
+        int current = GetItemState(item);
+        if ( current == wxTREE_ITEMSTATE_NONE )
+            return;
+        state = current - 1;
         if ( state == -1 )
             state = m_imageListState ? m_imageListState->GetImageCount() - 1 : 0;
     }