+void MyFrame::OnExpanding( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, Item: %s"), title.GetData() );
+}
+
+
+void MyFrame::OnEditingStarted( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, Item: %s"), title.GetData() );
+}
+
+void MyFrame::OnEditingDone( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, Item: %s"), title.GetData() );
+}
+
+void MyFrame::OnExpanded( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, Item: %s"), title.GetData() );
+}
+
+void MyFrame::OnCollapsing( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, Item: %s"), title.GetData() );
+}
+
+void MyFrame::OnCollapsed( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, Item: %s"),title.GetData());
+}
+
+void MyFrame::OnContextMenu( wxDataViewEvent &event )
+{
+ if (!m_log)
+ return;
+
+ wxString title = m_music_model->GetTitle( event.GetItem() );
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, Item: %s"),title.GetData());
+
+ wxMenu *menu = new wxMenu;
+ menu->Append( 1, wxT("entry 1") );
+ menu->Append( 2, wxT("entry 2") );
+ menu->Append( 3, wxT("entry 3") );
+
+ m_musicCtrl->PopupMenu( menu );
+
+// wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, Item: %s Value: %s"),title.GetData(), event.GetValue().GetString());
+}
+
+void MyFrame::OnHeaderClick( wxDataViewEvent &event )
+{
+ if(!m_log)
+ return;
+
+ int pos = m_musicCtrl->GetColumnPosition( event.GetDataViewColumn() );
+
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, Column position: %d"), pos );
+}
+
+void MyFrame::OnHeaderRightClick( wxDataViewEvent &event )
+{
+ if(!m_log)
+ return;
+
+ int pos = m_musicCtrl->GetColumnPosition( event.GetDataViewColumn() );
+
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, Column position: %d"), pos );
+}
+
+void MyFrame::OnSorted( wxDataViewEvent &event )
+{
+ if(!m_log)
+ return;
+
+ int pos = m_musicCtrl->GetColumnPosition( event.GetDataViewColumn() );
+
+ wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, Column position: %d"), pos );
+}
+
+void MyFrame::OnRightClick( wxMouseEvent &event )
+{
+ if(!m_log)
+ return;
+
+ wxLogMessage(wxT("wxEVT_MOUSE_RIGHT_UP, Click Point is X: %d, Y: %d"), event.GetX(), event.GetY());
+}
+
+void MyFrame::OnGoto(wxCommandEvent& WXUNUSED(event))
+{
+ wxDataViewItem item = m_list_model->GetItem( 50 );
+ m_listCtrl->EnsureVisible(item,m_col);
+}
+
+void MyFrame::OnAddMany(wxCommandEvent& WXUNUSED(event))
+{
+ m_list_model->AddMany();
+}
+
+