]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/editlbox.cpp
Fix horizontal mouse wheel scrolling in wxGTK.
[wxWidgets.git] / src / generic / editlbox.cpp
index 5ece81c5d3744c4be45dabbc497ce06c90258d2e..6502d4bfa80765f17ec42f9504740b860a2846df 100644 (file)
@@ -1,8 +1,7 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        editlbox.cpp
+// Name:        src/generic/editlbox.cpp
 // Purpose:     ListBox with editable items
 // Author:      Vaclav Slavik
-// RCS-ID:      $Id$
 // Copyright:   (c) Vaclav Slavik
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -350,9 +349,9 @@ void wxEditableListBox::OnEndLabelEdit(wxListEvent& event)
         // possible:
         m_listCtrl->InsertItem(m_listCtrl->GetItemCount(), wxEmptyString);
 
-        // Simulate a wxEVT_COMMAND_LIST_ITEM_SELECTED event for the new item,
+        // Simulate a wxEVT_LIST_ITEM_SELECTED event for the new item,
         // so that the buttons are enabled/disabled properly
-        wxListEvent selectionEvent(wxEVT_COMMAND_LIST_ITEM_SELECTED, m_listCtrl->GetId());
+        wxListEvent selectionEvent(wxEVT_LIST_ITEM_SELECTED, m_listCtrl->GetId());
         selectionEvent.m_itemIndex = event.GetIndex();
         m_listCtrl->GetEventHandler()->ProcessEvent(selectionEvent);
     }
@@ -370,26 +369,32 @@ void wxEditableListBox::OnEditItem(wxCommandEvent& WXUNUSED(event))
     m_listCtrl->EditLabel(m_selection);
 }
 
-void wxEditableListBox::OnUpItem(wxCommandEvent& WXUNUSED(event))
+void wxEditableListBox::SwapItems(long i1, long i2)
 {
-    wxString t1, t2;
+    // swap the text
+    wxString t1 = m_listCtrl->GetItemText(i1);
+    wxString t2 = m_listCtrl->GetItemText(i2);
+    m_listCtrl->SetItemText(i1, t2);
+    m_listCtrl->SetItemText(i2, t1);
+
+    // swap the item data
+    long d1 = m_listCtrl->GetItemData(i1);
+    long d2 = m_listCtrl->GetItemData(i2);
+    m_listCtrl->SetItemData(i1, d2);
+    m_listCtrl->SetItemData(i2, d1);
+}
+
 
-    t1 = m_listCtrl->GetItemText(m_selection - 1);
-    t2 = m_listCtrl->GetItemText(m_selection);
-    m_listCtrl->SetItemText(m_selection - 1, t2);
-    m_listCtrl->SetItemText(m_selection, t1);
+void wxEditableListBox::OnUpItem(wxCommandEvent& WXUNUSED(event))
+{
+    SwapItems(m_selection - 1, m_selection);
     m_listCtrl->SetItemState(m_selection - 1,
                              wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
 }
 
 void wxEditableListBox::OnDownItem(wxCommandEvent& WXUNUSED(event))
 {
-    wxString t1, t2;
-
-    t1 = m_listCtrl->GetItemText(m_selection + 1);
-    t2 = m_listCtrl->GetItemText(m_selection);
-    m_listCtrl->SetItemText(m_selection + 1, t2);
-    m_listCtrl->SetItemText(m_selection, t1);
+    SwapItems(m_selection + 1, m_selection);
     m_listCtrl->SetItemState(m_selection + 1,
                              wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
 }