Send wxEVT_DATAVIEW_COLUMN_REORDERED in generic wxDataViewCtrl

Simply translate wxEVT_HEADER_END_REORDER into this event, which was
previously only sent by the macOS version.

GtkTreeView doesn't seem to support column drag-and-drop at all, so this
event is still never generated by wxGTK.

Closes #14297.
This commit is contained in:
Vadim Zeitlin
2018-02-04 15:45:23 +01:00
parent f33f1f2078
commit 48fb2b42b1
5 changed files with 28 additions and 6 deletions

View File

@@ -133,6 +133,7 @@ private:
void OnHeaderClickList( wxDataViewEvent &event );
void OnSorted( wxDataViewEvent &event );
void OnSortedList( wxDataViewEvent &event );
void OnColumnReordered( wxDataViewEvent &event);
void OnContextMenu( wxDataViewEvent &event );
@@ -423,6 +424,7 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(ID_MUSIC_CTRL, MyFrame::OnHeaderRightClick)
EVT_DATAVIEW_COLUMN_SORTED(ID_MUSIC_CTRL, MyFrame::OnSorted)
EVT_DATAVIEW_COLUMN_SORTED(ID_ATTR_CTRL, MyFrame::OnSortedList)
EVT_DATAVIEW_COLUMN_REORDERED(wxID_ANY, MyFrame::OnColumnReordered)
EVT_DATAVIEW_COLUMN_HEADER_CLICK(ID_ATTR_CTRL, MyFrame::OnHeaderClickList)
EVT_DATAVIEW_ITEM_CONTEXT_MENU(ID_MUSIC_CTRL, MyFrame::OnContextMenu)
@@ -1290,6 +1292,19 @@ void MyFrame::OnHeaderRightClick( wxDataViewEvent &event )
wxLogMessage( "wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, Column position: %d", pos );
}
void MyFrame::OnColumnReordered(wxDataViewEvent& event)
{
wxDataViewColumn* const col = event.GetDataViewColumn();
if ( !col )
{
wxLogError("Unknown column reordered?");
return;
}
wxLogMessage("wxEVT_DATAVIEW_COLUMN_REORDERED: \"%s\" is now at position %d",
col->GetTitle(), event.GetColumn());
}
void MyFrame::OnSortedList( wxDataViewEvent &/*event*/)
{
wxVector<wxDataViewColumn *> const columns = m_ctrl[1]->GetSortingColumns();