EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown)
EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated)
EVT_LIST_COL_CLICK(LIST_CTRL, MyListCtrl::OnColClick)
+ EVT_LIST_CACHE_HINT(LIST_CTRL, MyListCtrl::OnCacheHint)
EVT_CHAR(MyListCtrl::OnChar)
END_EVENT_TABLE()
// MyListCtrl
+void MyListCtrl::OnCacheHint(wxListEvent& event)
+{
+ wxLogMessage( "OnCacheHint: cache items %ld..%ld",
+ event.GetCacheFrom(), event.GetCacheTo() );
+}
+
void MyListCtrl::OnColClick(wxListEvent& event)
{
wxLogMessage( "OnColumnClick at %d.", event.GetColumn() );
{
switch ( event.GetCode() )
{
+ case 'c':
+ {
+ wxListItem info;
+ info.m_itemId = event.GetIndex();
+ GetItem(info);
+
+ wxListItemAttr *attr = info.GetAttributes();
+ if ( !attr || !attr->HasTextColour() )
+ {
+ info.SetTextColour(*wxCYAN);
+
+ SetItem(info);
+ }
+ }
+ break;
+
case WXK_DELETE:
- DeleteItem(event.GetIndex());
+ {
+ long item = GetNextItem(-1,
+ wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
+ while ( item != -1 )
+ {
+ DeleteItem(item);
- wxLogMessage(_T("Item %d deleted"), event.GetIndex());
+ wxLogMessage(_T("Item %ld deleted"), item);
+
+ // -1 because the indices were shifted by DeleteItem()
+ item = GetNextItem(item - 1,
+ wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
+ }
+ }
break;
case WXK_INSERT:
return 0;
}
+wxListItemAttr *MyListCtrl::OnGetItemAttr(long item) const
+{
+ return item % 2 ? NULL : (wxListItemAttr *)&m_attr;
+}
+
void MyListCtrl::InsertItemInReportView(int i)
{
wxString buf;