From 10ab6d4f65ce90afb61986f0f1e609cd5d4cbc0c Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Wed, 17 Dec 2008 22:26:40 +0000 Subject: [PATCH] Correct wxDataViewCtrl::IsExpanded and add test for it git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/dataview/dataview.cpp | 3 +++ src/gtk/dataview.cpp | 4 +++- src/osx/carbon/dataview.cpp | 9 +++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/samples/dataview/dataview.cpp b/samples/dataview/dataview.cpp index b72a7e5251..fe45436b30 100644 --- a/samples/dataview/dataview.cpp +++ b/samples/dataview/dataview.cpp @@ -1026,6 +1026,9 @@ void MyFrame::OnActivated( wxDataViewEvent &event ) wxString title = m_music_model->GetTitle( event.GetItem() ); wxLogMessage(wxT("wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, Item: %s"), title ); + + if (m_musicCtrl->IsExpanded( event.GetItem() )) + wxLogMessage(wxT("Item: %s is expanded"), title ); } void MyFrame::OnSelectionChanged( wxDataViewEvent &event ) diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 75849f7fab..dc998edd33 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -4018,8 +4018,10 @@ bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const GtkTreeIter iter; iter.user_data = item.GetID(); GtkTreePath *path = m_internal->get_path( &iter ); - gtk_tree_view_row_expanded( GTK_TREE_VIEW(m_treeview), path ); + bool res = gtk_tree_view_row_expanded( GTK_TREE_VIEW(m_treeview), path ); gtk_tree_path_free( path ); + + return res; } wxDataViewItem wxDataViewCtrl::GetSelection() const diff --git a/src/osx/carbon/dataview.cpp b/src/osx/carbon/dataview.cpp index 4da4cb3efb..11ba3ce936 100644 --- a/src/osx/carbon/dataview.cpp +++ b/src/osx/carbon/dataview.cpp @@ -1210,8 +1210,13 @@ bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const { wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast(m_peer)); - // TODO ??? - // This doesn't seem to be supported + DataBrowserItemState state = 0; + OSStatus err = ::GetDataBrowserItemState( + MacDataViewListCtrlPtr->GetControlRef(), + reinterpret_cast(item.GetID()), + &state ); + if ((err == 0) && (state & kDataBrowserContainerIsOpen)) + return true; } return false; } -- 2.47.2