EVT_LIST_ITEM_DESELECTED(LIST_CTRL, MyListCtrl::OnDeselected)
EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown)
EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated)
+ EVT_LIST_ITEM_FOCUSED(LIST_CTRL, MyListCtrl::OnFocused)
EVT_LIST_COL_CLICK(LIST_CTRL, MyListCtrl::OnColClick)
EVT_LIST_COL_RIGHT_CLICK(LIST_CTRL, MyListCtrl::OnColRightClick)
LogEvent(event, _T("OnActivated"));
}
+void MyListCtrl::OnFocused(wxListEvent& event)
+{
+ LogEvent(event, _T("OnFocused"));
+}
+
void MyListCtrl::OnListKeyDown(wxListEvent& event)
{
switch ( event.GetCode() )
{
- case 'c':
+ case 'c': // colorize
+ case 'C':
{
wxListItem info;
info.m_itemId = event.GetIndex();
info.SetTextColour(*wxCYAN);
SetItem(info);
+
+ RefreshItem(info.m_itemId);
+ }
+ }
+ break;
+
+ case 'n': // next
+ case 'N':
+ {
+ long item = GetNextItem(-1,
+ wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED);
+ if ( item++ == GetItemCount() - 1 )
+ {
+ item = 0;
}
+
+ wxLogMessage(_T("Focusing item %ld"), item);
+
+ SetItemState(item, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED);
+ EnsureVisible(item);
}
break;
{
wxLogMessage(_T("Got char event."));
- event.Skip();
+ switch ( event.GetKeyCode() )
+ {
+ case 'n':
+ case 'N':
+ case 'c':
+ case 'C':
+ // these are the keys we process ourselves
+ break;
+
+ default:
+ event.Skip();
+ }
}
void MyListCtrl::LogEvent(const wxListEvent& event, const wxChar *eventName)