diff --git a/include/wx/selstore.h b/include/wx/selstore.h index e52ac1cbc0..fec3c212a4 100644 --- a/include/wx/selstore.h +++ b/include/wx/selstore.h @@ -71,6 +71,13 @@ public: // return true if the given item is selected bool IsSelected(unsigned item) const; + // return true if no items are currently selected + bool IsEmpty() const + { + return m_defaultState ? m_itemsSel.size() == m_count + : m_itemsSel.empty(); + } + // return the total number of selected items unsigned GetSelectedCount() const { diff --git a/tests/misc/selstoretest.cpp b/tests/misc/selstoretest.cpp index 3459abd4da..3184383f84 100644 --- a/tests/misc/selstoretest.cpp +++ b/tests/misc/selstoretest.cpp @@ -125,11 +125,16 @@ void SelStoreTestCase::SetItemCount() void SelStoreTestCase::Clear() { + CPPUNIT_ASSERT(m_store->IsEmpty()); CPPUNIT_ASSERT_EQUAL( 0u, m_store->GetSelectedCount() ); m_store->SelectItem(0); + + CPPUNIT_ASSERT(!m_store->IsEmpty()); + m_store->Clear(); + CPPUNIT_ASSERT(m_store->IsEmpty()); CPPUNIT_ASSERT_EQUAL( 0u, m_store->GetSelectedCount() ); }