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_COL_CLICK(LIST_CTRL, MyListCtrl::OnColClick)
+ EVT_LIST_COL_RIGHT_CLICK(LIST_CTRL, MyListCtrl::OnColRightClick)
+ EVT_LIST_COL_BEGIN_DRAG(LIST_CTRL, MyListCtrl::OnColBeginDrag)
+ EVT_LIST_COL_DRAGGING(LIST_CTRL, MyListCtrl::OnColDragging)
+ EVT_LIST_COL_END_DRAG(LIST_CTRL, MyListCtrl::OnColEndDrag)
+
EVT_LIST_CACHE_HINT(LIST_CTRL, MyListCtrl::OnCacheHint)
EVT_CHAR(MyListCtrl::OnChar)
{
m_listCtrl->SetImageList(m_imageListSmall, wxIMAGE_LIST_SMALL);
+ // under MSW for SetColumnWidth() to work we need to create the items with
+ // images initially
+#if 1
+ wxListItem itemCol;
+ itemCol.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_IMAGE;
+ itemCol.m_text = "Column 1";
+ itemCol.m_image = -1;
+ m_listCtrl->InsertColumn(0, itemCol);
+ itemCol.m_text = "Column 2";
+ m_listCtrl->InsertColumn(1, itemCol);
+ itemCol.m_text = "Column 3";
+ m_listCtrl->InsertColumn(2, itemCol);
+#else
m_listCtrl->InsertColumn(0, "Column 1"); // , wxLIST_FORMAT_LEFT, 140);
m_listCtrl->InsertColumn(1, "Column 2"); // , wxLIST_FORMAT_LEFT, 140);
m_listCtrl->InsertColumn(2, "One More Column (2)"); // , wxLIST_FORMAT_LEFT, 140);
+#endif
// to speed up inserting we hide the control temporarily
m_listCtrl->Hide();
event.GetCacheFrom(), event.GetCacheTo() );
}
+void MyListCtrl::SetColumnImage(int col, int image)
+{
+ wxListItem item;
+ item.SetMask(wxLIST_MASK_IMAGE);
+ item.SetImage(image);
+ SetColumn(col, item);
+}
+
void MyListCtrl::OnColClick(wxListEvent& event)
{
- wxLogMessage( wxT("OnColumnClick at %d."), event.GetColumn() );
+ int col = event.GetColumn();
+ SetColumnImage(col, 0);
+
+ wxLogMessage( wxT("OnColumnClick at %d."), col );
+}
+
+void MyListCtrl::OnColRightClick(wxListEvent& event)
+{
+ int col = event.GetColumn();
+ SetColumnImage(col, -1);
+
+ wxLogMessage( wxT("OnColumnRightClick at %d."), event.GetColumn() );
+}
+
+void MyListCtrl::OnColBeginDrag(wxListEvent& event)
+{
+ wxLogMessage( wxT("OnColBeginDrag: column %d."), event.GetColumn() );
+}
+
+void MyListCtrl::OnColDragging(wxListEvent& event)
+{
+ wxLogMessage( wxT("OnColDragging: column %d."), event.GetColumn() );
+}
+
+void MyListCtrl::OnColEndDrag(wxListEvent& event)
+{
+ wxLogMessage( wxT("OnColEndDrag: column %d."), event.GetColumn() );
}
void MyListCtrl::OnBeginDrag(wxListEvent& event)
{
- wxLogMessage( wxT("OnBeginDrag at %d,%d."),
- event.m_pointDrag.x, event.m_pointDrag.y );
+ const wxPoint& pt = event.m_pointDrag;
+
+ int flags;
+ wxLogMessage( wxT("OnBeginDrag at (%d, %d), item %ld."),
+ pt.x, pt.y, HitTest(pt, flags) );
}
void MyListCtrl::OnBeginRDrag(wxListEvent& event)