X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/289532452089421ddadbd4726a8469511a19ab76..cc4d5638c66a409e421420ed7110917755a66788:/src/common/lboxcmn.cpp diff --git a/src/common/lboxcmn.cpp b/src/common/lboxcmn.cpp index 7e8b2be8e4..2afe3f1b7b 100644 --- a/src/common/lboxcmn.cpp +++ b/src/common/lboxcmn.cpp @@ -4,7 +4,6 @@ // Author: Vadim Zeitlin // Modified by: // Created: 22.10.99 -// RCS-ID: $Id$ // Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -31,9 +30,10 @@ #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 +86,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 +166,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 +302,7 @@ bool wxListBoxBase::CalcAndSendEvent() m_oldSelections = selections; - return SendEvent(wxEVT_COMMAND_LISTBOX_SELECTED, item, selected); + return SendEvent(wxEVT_LISTBOX, item, selected); } // ----------------------------------------------------------------------------