]> git.saurik.com Git - wxWidgets.git/commitdiff
added Collapse() and Expand()
authorRobert Roebling <robert@roebling.de>
Sat, 25 Aug 2007 21:05:51 +0000 (21:05 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 25 Aug 2007 21:05:51 +0000 (21:05 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dataview.h
include/wx/gtk/dataview.h
src/gtk/dataview.cpp

index 0a2460c0a3950d69a509c1399deaf9a0b6b6374a..a7e6fc22f0ee03fb40d684fe0e12cfad75699920 100644 (file)
@@ -485,6 +485,9 @@ public:
     virtual void SelectAll() = 0;
     virtual void UnselectAll() = 0;
 
+    virtual void Expand( const wxDataViewItem & item ) = 0;
+    virtual void Collapse( const wxDataViewItem & item ) = 0;
+
     virtual void EnsureVisible( const wxDataViewItem & item,
                                 const wxDataViewColumn *column = NULL ) = 0;
     virtual void HitTest( const wxPoint & point, wxDataViewItem &item, wxDataViewColumn* &column ) const = 0;
index 1dee882fa000ba0e4e504468634fe0f65d486297..b84a7f4f8a3ce8c60d80140a16cdd0980321ede6 100644 (file)
@@ -34,15 +34,16 @@ public:
                         wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
                         int align = wxDVR_DEFAULT_ALIGNMENT );
 
-    // implementation
-    GtkCellRenderer* GetGtkHandle() { return m_renderer; }
-
     virtual void SetMode( wxDataViewCellMode mode );
     virtual wxDataViewCellMode GetMode() const;
 
     virtual void SetAlignment( int align );
     virtual int GetAlignment() const;
 
+    // implementation
+    GtkCellRenderer* GetGtkHandle() { return m_renderer; }
+    void GtkInitHandlers();
+
 protected:
     GtkCellRenderer   *m_renderer;
 
@@ -323,6 +324,8 @@ public:
     virtual wxRect GetItemRect( const wxDataViewItem &item, 
                                 const wxDataViewColumn *column = NULL ) const;
 
+    virtual void Expand( const wxDataViewItem & item );
+    virtual void Collapse( const wxDataViewItem & item );
 
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
index e112270d39991ae286e4fa8260c00a36acdd5ab9..e4111bc0dbd510996db57d2d9ecfd61d4d905d1a 100644 (file)
@@ -2993,6 +2993,24 @@ bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
     return true;
 }
 
+void wxDataViewCtrl::Expand( const wxDataViewItem & item )
+{
+    GtkTreeIter iter;
+    iter.user_data = item.GetID();
+    GtkTreePath *path = m_internal->get_path( &iter );
+    gtk_tree_view_expand_row( GTK_TREE_VIEW(m_treeview), path, false );
+    gtk_tree_path_free( path );
+}
+
+void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
+{
+    GtkTreeIter iter;
+    iter.user_data = item.GetID();
+    GtkTreePath *path = m_internal->get_path( &iter );
+    gtk_tree_view_collapse_row( 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) );