]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/datavgen.cpp
Added wxDataViewCtrl::IsExpanded(item)
[wxWidgets.git] / src / generic / datavgen.cpp
index 21483c4910e6df6750e5285703171c154b4da885..deda154a48395ada3e2d6af0a7816fff66f9a845 100644 (file)
@@ -483,6 +483,7 @@ public:
 
     void Expand( unsigned int row ) { OnExpanding( row ); }
     void Collapse( unsigned int row ) { OnCollapsing( row ); }
+    bool IsExpanded( unsigned int row ) const;
 private:
     wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row ) const;
     //We did not need this temporarily
@@ -2411,6 +2412,23 @@ wxDataViewEvent wxDataViewMainWindow::SendExpanderEvent( wxEventType type, const
     return le;
 }
 
+
+bool wxDataViewMainWindow::IsExpanded( unsigned int row ) const
+{
+    if (IsVirtualList())
+       return false;
+       
+    wxDataViewTreeNode * node = GetTreeNodeByRow(row);
+    if (!node)
+       return false;
+       
+    if (!node->HasChildren())
+       return false;
+    
+    return node->IsOpen();
+}
+
+
 void wxDataViewMainWindow::OnExpanding( unsigned int row )
 {
     if (IsVirtualList())
@@ -3685,6 +3703,15 @@ void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
         m_clientArea->Collapse(row);
 }
 
+bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const
+{
+    int row = m_clientArea->GetRowByItem( item );
+    if (row != -1)
+        return m_clientArea->IsExpanded(row);
+    return false;
+}
+
+
  #endif
     // !wxUSE_GENERICDATAVIEWCTRL