Don't return the whole event object from SendExpanderEvent() just to check if
it wasn't vetoed, simply return a boolean value indicating if this was the
case from this function itself.
This makes it both more efficient and easier to use.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68867
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- wxDataViewEvent SendExpanderEvent( wxEventType type, const wxDataViewItem & item );
+ // Return false only if the event was vetoed by its handler.
+ bool SendExpanderEvent(wxEventType type, const wxDataViewItem& item);
wxDataViewTreeNode * FindNode( const wxDataViewItem & item );
wxDataViewTreeNode * FindNode( const wxDataViewItem & item );
return job.GetResult();
}
return job.GetResult();
}
-wxDataViewEvent wxDataViewMainWindow::SendExpanderEvent( wxEventType type,
- const wxDataViewItem & item )
+bool
+wxDataViewMainWindow::SendExpanderEvent(wxEventType type,
+ const wxDataViewItem& item)
{
wxWindow *parent = GetParent();
wxDataViewEvent le(type, parent->GetId());
{
wxWindow *parent = GetParent();
wxDataViewEvent le(type, parent->GetId());
le.SetModel(GetOwner()->GetModel());
le.SetItem( item );
le.SetModel(GetOwner()->GetModel());
le.SetItem( item );
- parent->GetEventHandler()->ProcessEvent(le);
- return le;
+ return !parent->ProcessWindowEvent(le) || le.IsAllowed();
}
bool wxDataViewMainWindow::IsExpanded( unsigned int row ) const
}
bool wxDataViewMainWindow::IsExpanded( unsigned int row ) const
- wxDataViewEvent e =
- SendExpanderEvent(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, node->GetItem());
-
- // Check if the user prevent expanding
- if( !e.IsAllowed() )
+ if ( !SendExpanderEvent(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, node->GetItem()) )
+ {
+ // Vetoed by the event handler.
- wxDataViewEvent e =
- SendExpanderEvent(wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING,node->GetItem());
- if( !e.IsAllowed() )
+ if ( !SendExpanderEvent(wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING,node->GetItem()) )
+ {
+ // Vetoed by the event handler.
// Find out if there are selected items below the current node.
bool selectCollapsingRow = false;
// Find out if there are selected items below the current node.
bool selectCollapsingRow = false;