]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/lboxcmn.cpp
use common bottleneck
[wxWidgets.git] / src / common / lboxcmn.cpp
index 7e8b2be8e4d689d2e6411e44780997e8326ec9be..4255232c438094927351cf790cecf8215f8c1375 100644 (file)
 #ifndef WX_PRECOMP
     #include "wx/dynarray.h"
     #include "wx/arrstr.h"
+    #include "wx/log.h"
 #endif
 
-#include "wx/log.h"
+extern WXDLLEXPORT_DATA(const char) wxListBoxNameStr[] = "listBox";
 
 // ============================================================================
 // implementation
@@ -86,11 +87,11 @@ wxFLAGS_MEMBER(wxLB_NEEDED_SB)
 wxFLAGS_MEMBER(wxLB_SORT)
 wxEND_FLAGS( wxListBoxStyle )
 
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxListBox, wxControlWithItems, "wx/listbox.h")
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxListBox, wxControl, "wx/listbox.h")
 
 wxBEGIN_PROPERTIES_TABLE(wxListBox)
-wxEVENT_PROPERTY( Select, wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEvent )
-wxEVENT_PROPERTY( DoubleClick, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEvent )
+wxEVENT_PROPERTY( Select, wxEVT_LISTBOX, wxCommandEvent )
+wxEVENT_PROPERTY( DoubleClick, wxEVT_LISTBOX_DCLICK, wxCommandEvent )
 
 wxPROPERTY( Font, wxFont, SetFont, GetFont , wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
            wxT("Helpstring"), wxT("group"))
@@ -166,6 +167,14 @@ void wxListBoxBase::DeselectAll(int itemToLeaveSelected)
 
 void wxListBoxBase::UpdateOldSelections()
 {
+    // When the control becomes empty, any previously remembered selections are
+    // invalid anyhow, so just forget them.
+    if ( IsEmpty() )
+    {
+        m_oldSelections.clear();
+        return;
+    }
+
     // We need to remember the selection even in single-selection case on
     // Windows, so that we don't send an event when the user clicks on an
     // already selected item.
@@ -294,7 +303,7 @@ bool wxListBoxBase::CalcAndSendEvent()
 
     m_oldSelections = selections;
 
-    return SendEvent(wxEVT_COMMAND_LISTBOX_SELECTED, item, selected);
+    return SendEvent(wxEVT_LISTBOX, item, selected);
 }
 
 // ----------------------------------------------------------------------------