+ case 'N': // next
+ 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;
+
+ case 'R': // show bounding rectangle
+ {
+ item = event.GetIndex();
+ wxRect r;
+ if ( !GetItemRect(item, r) )
+ {
+ wxLogError(_T("Failed to retrieve rect of item %ld"), item);
+ break;
+ }
+
+ wxLogMessage(_T("Bounding rect of item %ld is (%d, %d)-(%d, %d)"),
+ item, r.x, r.y, r.x + r.width, r.y + r.height);
+ }
+ break;
+
+ case 'U': // update
+ if ( !IsVirtual() )
+ break;
+
+ if ( m_updated != -1 )
+ RefreshItem(m_updated);
+
+ m_updated = event.GetIndex();
+ if ( m_updated != -1 )
+ {
+ // we won't see changes to this item as it's selected, update
+ // the next one (or the first one if we're on the last item)
+ if ( ++m_updated == GetItemCount() )
+ m_updated = 0;
+
+ wxLogMessage("Updating colour of the item %ld", m_updated);
+ RefreshItem(m_updated);
+ }
+ break;
+