}
// Event handlers toggling the items checkbox if it was clicked.
- virtual bool Activate(const wxRect& WXUNUSED(cell),
- wxDataViewModel* model,
- const wxDataViewItem& item,
- unsigned int WXUNUSED(col))
+ virtual bool ActivateCell(const wxRect& WXUNUSED(cell),
+ wxDataViewModel *model,
+ const wxDataViewItem & item,
+ unsigned int WXUNUSED(col),
+ const wxMouseEvent *mouseEvent)
{
- static_cast<wxTreeListModel*>(model)->ToggleItem(item);
- return true;
- }
-
- virtual bool LeftClick(const wxPoint& pos,
- const wxRect& WXUNUSED(cell),
- wxDataViewModel* model,
- const wxDataViewItem& item,
- unsigned int WXUNUSED(col))
- {
- if ( !wxRect(GetCheckSize()).Contains(pos) )
- return false;
+ if ( mouseEvent )
+ {
+ if ( !wxRect(GetCheckSize()).Contains(mouseEvent->GetPosition()) )
+ return false;
+ }
static_cast<wxTreeListModel*>(model)->ToggleItem(item);
return true;
// empty string we can return reference to.
wxCHECK_MSG( item, m_root->m_text, "Invalid item" );
- return col == 0 ? item->m_text : item->GetColumnText(col);
+ // Notice that asking for the text of a column of an item that doesn't have
+ // any column texts is not an error so we simply return an empty string in
+ // this case.
+ return col == 0 ? item->m_text
+ : item->HasColumnsTexts() ? item->GetColumnText(col)
+ : m_root->m_text;
}
void wxTreeListModel::SetItemText(Node* item, unsigned col, const wxString& text)
// wxTreeListEvent implementation
// ============================================================================
-wxIMPLEMENT_ABSTRACT_CLASS(wxTreeListEvent, wxNotifyEvent)
+wxIMPLEMENT_DYNAMIC_CLASS(wxTreeListEvent, wxNotifyEvent)
#define wxDEFINE_TREELIST_EVENT(name) \
wxDEFINE_EVENT(wxEVT_COMMAND_TREELIST_##name, wxTreeListEvent)