test_gui_toolbooktest.o \
test_gui_treebooktest.o \
test_gui_treectrltest.o \
+ test_gui_virtlistctrltest.o \
test_gui_windowtest.o \
test_gui_clone.o \
test_gui_propagation.o \
test_gui_treectrltest.o: $(srcdir)/controls/treectrltest.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/treectrltest.cpp
+test_gui_virtlistctrltest.o: $(srcdir)/controls/virtlistctrltest.cpp $(TEST_GUI_ODEP)
+ $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/virtlistctrltest.cpp
+
test_gui_windowtest.o: $(srcdir)/controls/windowtest.cpp $(TEST_GUI_ODEP)
$(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/windowtest.cpp
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: tests/controls/virtlistctrltest.cpp
+// Purpose: wxListCtrl unit tests for virtual mode
+// Author: Vadim Zeitlin
+// Created: 2010-11-13
+// RCS-ID: $Id$
+// Copyright: (c) 2010 Vadim Zeitlin <vadim@wxwidgets.org>
+///////////////////////////////////////////////////////////////////////////////
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "testprec.h"
+
+#if wxUSE_LISTCTRL
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+#endif // WX_PRECOMP
+
+#include "wx/listctrl.h"
+
+// ----------------------------------------------------------------------------
+// test class
+// ----------------------------------------------------------------------------
+
+class VirtListCtrlTestCase : public CppUnit::TestCase
+{
+public:
+ VirtListCtrlTestCase() { }
+
+ virtual void setUp();
+ virtual void tearDown();
+
+private:
+ CPPUNIT_TEST_SUITE( VirtListCtrlTestCase );
+ CPPUNIT_TEST( UpdateSelection );
+ CPPUNIT_TEST_SUITE_END();
+
+ void UpdateSelection();
+
+ wxListCtrl *m_list;
+
+ wxDECLARE_NO_COPY_CLASS(VirtListCtrlTestCase);
+};
+
+// register in the unnamed registry so that these tests are run by default
+CPPUNIT_TEST_SUITE_REGISTRATION( VirtListCtrlTestCase );
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( VirtListCtrlTestCase, "VirtListCtrlTestCase" );
+
+// ----------------------------------------------------------------------------
+// test initialization
+// ----------------------------------------------------------------------------
+
+void VirtListCtrlTestCase::setUp()
+{
+ m_list = new wxListCtrl(wxTheApp->GetTopWindow(), wxID_ANY,
+ wxPoint(0, 0), wxSize(400, 200),
+ wxLC_REPORT | wxLC_VIRTUAL);
+}
+
+void VirtListCtrlTestCase::tearDown()
+{
+ delete m_list;
+ m_list = NULL;
+}
+
+void VirtListCtrlTestCase::UpdateSelection()
+{
+ m_list->SetItemCount(10);
+ CPPUNIT_ASSERT_EQUAL( 0, m_list->GetSelectedItemCount() );
+
+ m_list->SetItemState(7, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
+ CPPUNIT_ASSERT_EQUAL( 1, m_list->GetSelectedItemCount() );
+
+ m_list->SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
+ CPPUNIT_ASSERT_EQUAL( 2, m_list->GetSelectedItemCount() );
+
+ // The item 7 is now invalid and so shouldn't be counted as selected any
+ // more.
+ m_list->SetItemCount(5);
+ CPPUNIT_ASSERT_EQUAL( 1, m_list->GetSelectedItemCount() );
+}
+
+#endif // wxUSE_LISTCTRL
$(OBJS)\test_gui_toolbooktest.obj \\r
$(OBJS)\test_gui_treebooktest.obj \\r
$(OBJS)\test_gui_treectrltest.obj \\r
+ $(OBJS)\test_gui_virtlistctrltest.obj \\r
$(OBJS)\test_gui_windowtest.obj \\r
$(OBJS)\test_gui_clone.obj \\r
$(OBJS)\test_gui_propagation.obj \\r
$(OBJS)\test_gui_treectrltest.obj: .\controls\treectrltest.cpp\r
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\treectrltest.cpp\r
\r
+$(OBJS)\test_gui_virtlistctrltest.obj: .\controls\virtlistctrltest.cpp\r
+ $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\virtlistctrltest.cpp\r
+\r
$(OBJS)\test_gui_windowtest.obj: .\controls\windowtest.cpp\r
$(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\windowtest.cpp\r
\r
$(OBJS)\test_gui_toolbooktest.o \\r
$(OBJS)\test_gui_treebooktest.o \\r
$(OBJS)\test_gui_treectrltest.o \\r
+ $(OBJS)\test_gui_virtlistctrltest.o \\r
$(OBJS)\test_gui_windowtest.o \\r
$(OBJS)\test_gui_clone.o \\r
$(OBJS)\test_gui_propagation.o \\r
$(OBJS)\test_gui_treectrltest.o: ./controls/treectrltest.cpp\r
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
\r
+$(OBJS)\test_gui_virtlistctrltest.o: ./controls/virtlistctrltest.cpp\r
+ $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
+\r
$(OBJS)\test_gui_windowtest.o: ./controls/windowtest.cpp\r
$(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
\r
$(OBJS)\test_gui_toolbooktest.obj \\r
$(OBJS)\test_gui_treebooktest.obj \\r
$(OBJS)\test_gui_treectrltest.obj \\r
+ $(OBJS)\test_gui_virtlistctrltest.obj \\r
$(OBJS)\test_gui_windowtest.obj \\r
$(OBJS)\test_gui_clone.obj \\r
$(OBJS)\test_gui_propagation.obj \\r
$(OBJS)\test_gui_treectrltest.obj: .\controls\treectrltest.cpp\r
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\treectrltest.cpp\r
\r
+$(OBJS)\test_gui_virtlistctrltest.obj: .\controls\virtlistctrltest.cpp\r
+ $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\virtlistctrltest.cpp\r
+\r
$(OBJS)\test_gui_windowtest.obj: .\controls\windowtest.cpp\r
$(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\windowtest.cpp\r
\r
$(OBJS)\test_gui_toolbooktest.obj &\r
$(OBJS)\test_gui_treebooktest.obj &\r
$(OBJS)\test_gui_treectrltest.obj &\r
+ $(OBJS)\test_gui_virtlistctrltest.obj &\r
$(OBJS)\test_gui_windowtest.obj &\r
$(OBJS)\test_gui_clone.obj &\r
$(OBJS)\test_gui_propagation.obj &\r
$(OBJS)\test_gui_treectrltest.obj : .AUTODEPEND .\controls\treectrltest.cpp\r
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
\r
+$(OBJS)\test_gui_virtlistctrltest.obj : .AUTODEPEND .\controls\virtlistctrltest.cpp\r
+ $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
+\r
$(OBJS)\test_gui_windowtest.obj : .AUTODEPEND .\controls\windowtest.cpp\r
$(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
\r
controls/toolbooktest.cpp
controls/treebooktest.cpp
controls/treectrltest.cpp
+ controls/virtlistctrltest.cpp
controls/windowtest.cpp
events/clone.cpp
events/propagation.cpp
# End Source File\r
# Begin Source File\r
\r
+SOURCE=.\controls\virtlistctrltest.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
SOURCE=.\controls\windowtest.cpp\r
# End Source File\r
# Begin Source File\r
<File\r
RelativePath=".\controls\treectrltest.cpp">\r
</File>\r
+ <File\r
+ RelativePath=".\controls\virtlistctrltest.cpp">\r
+ </File>\r
<File\r
RelativePath=".\controls\windowtest.cpp">\r
</File>\r
RelativePath=".\controls\treectrltest.cpp"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\controls\virtlistctrltest.cpp"\r
+ >\r
+ </File>\r
<File\r
RelativePath=".\controls\windowtest.cpp"\r
>\r
RelativePath=".\controls\treectrltest.cpp"\r
>\r
</File>\r
+ <File\r
+ RelativePath=".\controls\virtlistctrltest.cpp"\r
+ >\r
+ </File>\r
<File\r
RelativePath=".\controls\windowtest.cpp"\r
>\r