EVT_MENU(LIST_SET_FG_COL, MyFrame::OnSetFgColour)
EVT_MENU(LIST_SET_BG_COL, MyFrame::OnSetBgColour)
EVT_MENU(LIST_TOGGLE_MULTI_SEL, MyFrame::OnToggleMultiSel)
+ EVT_MENU(LIST_SHOW_COL_INFO, MyFrame::OnShowColInfo)
+ EVT_UPDATE_UI(LIST_SHOW_COL_INFO, MyFrame::OnUpdateShowColInfo)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl)
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_CHAR(MyListCtrl::OnChar)
END_EVENT_TABLE()
IMPLEMENT_APP(MyApp)
menuList->Append(LIST_TOGGLE_FIRST, "&Toggle first item\tCtrl-T");
menuList->Append(LIST_DESELECT_ALL, "&Deselect All\tCtrl-D");
menuList->Append(LIST_SELECT_ALL, "S&elect All\tCtrl-A");
+ menuList->Append(LIST_SHOW_COL_INFO, "Show &column info\tCtrl-C");
menuList->AppendSeparator();
menuList->Append(LIST_SORT, "&Sort\tCtrl-S");
menuList->AppendSeparator();
wxStopWatch sw;
wxString buf;
- static const int NUM_ITEMS = 3000;
+ static const int NUM_ITEMS = 30;//00;
for ( int i = 0; i < NUM_ITEMS; i++ )
{
buf.Printf(_T("This is item %d"), i);
sw.Time()));
}
+void MyFrame::OnShowColInfo(wxCommandEvent& event)
+{
+ int count = m_listCtrl->GetColumnCount();
+ wxLogMessage("%d columns:", count);
+ for ( int c = 0; c < count; c++ )
+ {
+ wxLogMessage("\tcolumn %d has width %d", c,
+ m_listCtrl->GetColumnWidth(c));
+ }
+}
+
+void MyFrame::OnUpdateShowColInfo(wxUpdateUIEvent& event)
+{
+ event.Enable( (m_listCtrl->GetWindowStyleFlag() & wxLC_REPORT) != 0 );
+}
+
void MyFrame::OnToggleMultiSel(wxCommandEvent& WXUNUSED(event))
{
m_logWindow->WriteText("Current selection mode: ");
void MyListCtrl::OnListKeyDown(wxListEvent& event)
{
LogEvent(event, _T("OnListKeyDown"));
+
+ event.Skip();
+}
+
+void MyListCtrl::OnChar(wxKeyEvent& event)
+{
+ wxLogMessage(_T("Got char event."));
+
+ event.Skip();
}
void MyListCtrl::LogEvent(const wxListEvent& event, const wxChar *eventName)
{
- wxLogMessage(_T("Item %ld: %s (item data = %ld)"),
- event.GetIndex(), eventName, event.GetData());
+ wxLogMessage(_T("Item %ld: %s (item text = %s, data = %ld)"),
+ event.GetIndex(), eventName,
+ event.GetText().c_str(), event.GetData());
}