wxWidgets/tests/controls/listctrltest.cpp
Vadim Zeitlin ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00

158 lines
4.0 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/controls/listctrltest.cpp
// Purpose: wxListCtrl unit test
// Author: Vadim Zeitlin
// Created: 2008-11-26
// RCS-ID: $Id$
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
// (c) 2010 Steven Lamerton
///////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
// 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"
#include "listbasetest.h"
#include "testableframe.h"
#include "wx/uiaction.h"
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
class ListCtrlTestCase : public ListBaseTestCase, public CppUnit::TestCase
{
public:
ListCtrlTestCase() { }
virtual void setUp();
virtual void tearDown();
virtual wxListCtrl *GetList() const { return m_list; }
private:
CPPUNIT_TEST_SUITE( ListCtrlTestCase );
wxLIST_BASE_TESTS();
CPPUNIT_TEST( EditLabel );
WXUISIM_TEST( ColumnClick );
WXUISIM_TEST( ColumnDrag );
CPPUNIT_TEST_SUITE_END();
void EditLabel();
#if wxUSE_UIACTIONSIMULATOR
// Column events are only supported in wxListCtrl currently so we test them
// here rather than in ListBaseTest
void ColumnClick();
void ColumnDrag();
#endif // wxUSE_UIACTIONSIMULATOR
wxListCtrl *m_list;
DECLARE_NO_COPY_CLASS(ListCtrlTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( ListCtrlTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ListCtrlTestCase, "ListCtrlTestCase" );
// ----------------------------------------------------------------------------
// test initialization
// ----------------------------------------------------------------------------
void ListCtrlTestCase::setUp()
{
m_list = new wxListCtrl(wxTheApp->GetTopWindow());
m_list->SetWindowStyle(wxLC_REPORT);
m_list->SetSize(400, 200);
}
void ListCtrlTestCase::tearDown()
{
delete m_list;
m_list = NULL;
}
void ListCtrlTestCase::EditLabel()
{
m_list->InsertColumn(0, "Column 0");
m_list->InsertItem(0, "foo");
m_list->EditLabel(0);
}
#if wxUSE_UIACTIONSIMULATOR
void ListCtrlTestCase::ColumnDrag()
{
EventCounter begindrag(m_list, wxEVT_LIST_COL_BEGIN_DRAG);
EventCounter dragging(m_list, wxEVT_LIST_COL_DRAGGING);
EventCounter enddrag(m_list, wxEVT_LIST_COL_END_DRAG);
m_list->InsertColumn(0, "Column 0");
m_list->InsertColumn(1, "Column 1");
m_list->InsertColumn(2, "Column 2");
m_list->Update();
m_list->SetFocus();
wxUIActionSimulator sim;
wxPoint pt = m_list->ClientToScreen(wxPoint(m_list->GetColumnWidth(0), 5));
sim.MouseMove(pt);
wxYield();
sim.MouseDown();
wxYield();
sim.MouseMove(pt.x + 50, pt.y);
wxYield();
sim.MouseUp();
wxYield();
CPPUNIT_ASSERT_EQUAL(1, begindrag.GetCount());
CPPUNIT_ASSERT(dragging.GetCount() > 0);
CPPUNIT_ASSERT_EQUAL(1, enddrag.GetCount());
m_list->ClearAll();
}
void ListCtrlTestCase::ColumnClick()
{
EventCounter colclick(m_list, wxEVT_LIST_COL_CLICK);
EventCounter colrclick(m_list, wxEVT_LIST_COL_RIGHT_CLICK);
m_list->InsertColumn(0, "Column 0", wxLIST_FORMAT_LEFT, 60);
wxUIActionSimulator sim;
sim.MouseMove(m_list->ClientToScreen(wxPoint(4, 4)));
wxYield();
sim.MouseClick();
sim.MouseClick(wxMOUSE_BTN_RIGHT);
wxYield();
CPPUNIT_ASSERT_EQUAL(1, colclick.GetCount());
CPPUNIT_ASSERT_EQUAL(1, colrclick.GetCount());
m_list->ClearAll();
}
#endif // wxUSE_UIACTIONSIMULATOR
#endif // wxUSE_LISTCTRL