]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxDataViewCtrl::IsExpanded(item)
authorRobert Roebling <robert@roebling.de>
Tue, 16 Dec 2008 21:23:55 +0000 (21:23 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 16 Dec 2008 21:23:55 +0000 (21:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dataview.h
include/wx/generic/dataview.h
include/wx/gtk/dataview.h
include/wx/osx/carbon/dataview.h
interface/wx/dataview.h
src/generic/datavgen.cpp
src/gtk/dataview.cpp
src/osx/carbon/dataview.cpp

index 062ad743e211e37f3d307d3ef466566cefbdd95b..be237cae1f1cf2a80d5f3642db1300ae8fb1b7b5 100644 (file)
@@ -713,6 +713,7 @@ public:
 
     virtual void Expand( const wxDataViewItem & item ) = 0;
     virtual void Collapse( const wxDataViewItem & item ) = 0;
+    virtual bool IsExpanded( const wxDataViewItem & item ) const = 0;
 
     virtual void EnsureVisible( const wxDataViewItem & item,
                                 const wxDataViewColumn *column = NULL ) = 0;
index db9202eea9e084c4d9c1cfcb4830049843f607d6..43f6fb91945b69ce1c1ea0b45d3817a2295e4a1e 100644 (file)
@@ -446,6 +446,7 @@ public:
 
     virtual void Expand( const wxDataViewItem & item );
     virtual void Collapse( const wxDataViewItem & item );
+    virtual bool IsExpanded( const wxDataViewItem & item ) const;
 
     virtual void SetFocus();
 
index bb39f3e3795761f467623a5a1feb2a5bc63b5634..6580aee732c0561c671ed688614f63cd44e855be 100644 (file)
@@ -429,6 +429,8 @@ public:
     virtual void Expand( const wxDataViewItem & item );
     virtual void Collapse( const wxDataViewItem & item );
 
+    virtual bool IsExpanded( const wxDataViewItem & item ) const;
+
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
index 19546e2a6da609c5c77b08396f9019f6026a1530..fa67af0ae5b7f173dd9cbb2d703d7356bedf6f85 100644 (file)
@@ -450,8 +450,8 @@ public:
   {
     this->Init();
   }
-  wxDataViewCtrl(wxWindow *parent, wxWindowID id, wxPoint const& pos = wxDefaultPosition, wxSize const& size = wxDefaultSize, long style = 0,
-                 wxValidator const& validator = wxDefaultValidator)
+  wxDataViewCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0,
+                 const wxValidator& validator = wxDefaultValidator)
   {
     this->Init();
     this->Create(parent, id, pos, size, style, validator );
@@ -460,8 +460,8 @@ public:
   ~wxDataViewCtrl();
 
  // explicit control creation
-  bool Create(wxWindow *parent, wxWindowID id, wxPoint const& pos=wxDefaultPosition, wxSize const& size=wxDefaultSize, long style=0,
-              wxValidator const& validator=wxDefaultValidator);
+  bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=0,
+              const wxValidator& validator=wxDefaultValidator);
 
   virtual wxControl* GetMainWindow() // should disappear as it is not of any use for the native implementation
   {
@@ -473,34 +473,35 @@ public:
 
   virtual bool AppendColumn(wxDataViewColumn* columnPtr);
   virtual bool PrependColumn(wxDataViewColumn* columnPtr);
-  virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
+  virtual bool InsertColumn(unsigned int pos, wxDataViewColumn *col);
 
   virtual bool ClearColumns();
   virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
   virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
   virtual unsigned int GetColumnCount() const;
-  virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const;
+  virtual int GetColumnPosition(const wxDataViewColumn* columnPtr) const;
 
-  virtual void Collapse(wxDataViewItem const& item);
-  virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL);
-  virtual void Expand(wxDataViewItem const& item);
+  virtual void Collapse( const wxDataViewItem& item);
+  virtual void EnsureVisible(const wxDataViewItem& item, const wxDataViewColumn* columnPtr=NULL);
+  virtual void Expand(const wxDataViewItem& item);
+  virtual bool IsExpanded(const wxDataViewItem & item) const;
 
   virtual wxDataViewColumn* GetSortingColumn() const;
 
   virtual unsigned int GetCount() const;
-  virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const;
+  virtual wxRect GetItemRect(const wxDataViewItem& item, const wxDataViewColumn* columnPtr) const;
   virtual wxDataViewItem GetSelection() const;
   virtual int GetSelections(wxDataViewItemArray& sel) const;
 
-  virtual void HitTest(wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
+  virtual void HitTest(const wxPoint& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
 
-  virtual bool IsSelected(wxDataViewItem const& item) const;
+  virtual bool IsSelected(const wxDataViewItem& item) const;
 
   virtual void SelectAll();
-  virtual void Select(wxDataViewItem const& item);
-  virtual void SetSelections(wxDataViewItemArray const& sel);
+  virtual void Select(const wxDataViewItem& item);
+  virtual void SetSelections(const wxDataViewItemArray& sel);
 
-  virtual void Unselect(wxDataViewItem const& item);
+  virtual void Unselect(const wxDataViewItem& item);
   virtual void UnselectAll();
 
 //
index 22c00f4efe8e98de1f8e47000fbaed69f94ea7d5..9e3f259f5fcd226c5a623f29aac182d7d09f90fb 100644 (file)
@@ -946,6 +946,13 @@ public:
     virtual void HitTest(const wxPoint& point, wxDataViewItem& item,
                          wxDataViewColumn*& col) const;
 
+    /**
+        Return @true if the item is expanded.
+        
+        Currently not supported by OS X.
+    */
+    virtual bool IsExpanded(const wxDataViewItem& item) const;
+
     /**
         Return @true if the item is selected.
     */
@@ -1532,7 +1539,7 @@ enum wxDataViewColumnFlags
     @class wxDataViewColumn
 
     This class represents a column in a wxDataViewCtrl.
-    One wxDataViewColumn is bound to one column in the data model, to which the
+    One wxDataViewColumn is bound to one column in the data model to which the
     wxDataViewCtrl has been associated.
 
     An instance of wxDataViewRenderer is used by this class to render its data.
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
 
index eca69982ef27d2470a1826b1074a64e953bec37c..75849f7fab6e73ecae1a964a5074a7f198966c6b 100644 (file)
@@ -4013,6 +4013,15 @@ void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
     gtk_tree_path_free( path );
 }
 
+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 );
+    gtk_tree_path_free( path );
+}
+
 wxDataViewItem wxDataViewCtrl::GetSelection() const
 {
     GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
index ec8ae3baef178e1f16078d5241bc9c6a83766076..4da4cb3efb4cb5dc790e3bb24a5d17265dce0b11 100644 (file)
@@ -1204,6 +1204,18 @@ void wxDataViewCtrl::Expand(wxDataViewItem const& item)
   MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
 }
 
+bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const
+{
+  if (item.IsOk())
+  {
+    wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(m_peer));
+
+    // TODO ???
+    // This doesn't seem to be supported
+  }
+  return false;
+}
+
 wxDataViewColumn* wxDataViewCtrl::GetSortingColumn() const
 {
   DataBrowserPropertyID propertyID;