]> git.saurik.com Git - wxWidgets.git/commitdiff
Implement and document wxDataViewTreeCtrl::IsContainer(), use it in the sample to...
authorRobert Roebling <robert@roebling.de>
Fri, 13 Nov 2009 14:14:44 +0000 (14:14 +0000)
committerRobert Roebling <robert@roebling.de>
Fri, 13 Nov 2009 14:14:44 +0000 (14:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dataview.h
interface/wx/dataview.h
samples/dataview/dataview.cpp
src/common/datavcmn.cpp

index 8be8ad3dfdc39d0d5349267dc75adc9611c8373f..f4c86ff9eec5470e2a5432a50f5773ece1094c89 100644 (file)
@@ -1138,7 +1138,7 @@ public:
 
     wxDataViewItem GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const;
     int GetChildCount( const wxDataViewItem& parent ) const;
-
+    
     void SetItemText( const wxDataViewItem& item, const wxString &text );
     wxString GetItemText( const wxDataViewItem& item ) const;
     void SetItemIcon( const wxDataViewItem& item, const wxIcon &icon );
@@ -1212,6 +1212,9 @@ public:
     const wxDataViewTreeStore *GetStore() const
         { return (const wxDataViewTreeStore*) GetModel(); }
 
+    bool IsContainer( const wxDataViewItem& item ) const
+        { return GetStore()->IsContainer(item); }
+
     void SetImageList( wxImageList *imagelist );
     wxImageList* GetImageList() { return m_imageList; }
 
index 2cadb8f90c00adcc606fb6efda79d1eb6b37c29b..551e09607b40455d30358b1e4558b46cbed74563 100644 (file)
@@ -2023,6 +2023,11 @@ public:
                               int icon = -1,
                               wxClientData* data = NULL);
 
+    /**
+        Returns true if item is a container.
+    */
+    bool IsContainer( const wxDataViewItem& item );
+    
     /**
         Calls the same method from wxDataViewTreeStore but uses
         an index position in the image list instead of a wxIcon.
index 3f0db083ccd2019c774367efa0efa105fdefc5c9..6633e1dfa52b2932750e41726f5702060c58c5de 100644 (file)
@@ -1092,13 +1092,15 @@ void MyFrame::OnAddTreeItem(wxCommandEvent& WXUNUSED(event))
 {
     wxDataViewTreeCtrl* ctrl = (wxDataViewTreeCtrl*) m_ctrl[3];
     wxDataViewItem selected = ctrl->GetSelection();
-    ctrl->AppendItem( selected, "Item", 0 );
+    if (ctrl->IsContainer(selected))
+        ctrl->AppendItem( selected, "Item", 0 );
 }
 
 void MyFrame::OnAddTreeContainerItem(wxCommandEvent& WXUNUSED(event))
 {
     wxDataViewTreeCtrl* ctrl = (wxDataViewTreeCtrl*) m_ctrl[3];
     wxDataViewItem selected = ctrl->GetSelection();
-    ctrl->AppendContainer(selected, "Container", 0 );
+    if (ctrl->IsContainer(selected))
+        ctrl->AppendContainer(selected, "Container", 0 );
 }
 
index bb258cd33b0c90f49bd948a76b5b4da606d15bb1..af4987ae393b23b603f7e01f198ad2ca2ee30f66 100644 (file)
@@ -1790,6 +1790,14 @@ wxDataViewTreeStore::InsertContainer(const wxDataViewItem& parent,
     return node->GetItem();
 }
 
+bool wxDataViewTreeStore::IsContainer( const wxDataViewItem& item ) const
+{
+    wxDataViewTreeStoreNode *node = FindNode( item );
+    if (!node) return false;
+
+    return node->IsContainer();
+}
+
 wxDataViewItem wxDataViewTreeStore::GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const
 {
     wxDataViewTreeStoreContainerNode *parent_node = FindContainerNode( parent );
@@ -1963,14 +1971,6 @@ wxDataViewItem wxDataViewTreeStore::GetParent( const wxDataViewItem &item ) cons
     return parent->GetItem();
 }
 
-bool wxDataViewTreeStore::IsContainer( const wxDataViewItem &item ) const
-{
-    wxDataViewTreeStoreNode *node = FindNode( item );
-    if (!node) return false;
-
-    return node->IsContainer();
-}
-
 unsigned int wxDataViewTreeStore::GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const
 {
     wxDataViewTreeStoreContainerNode *node = FindContainerNode( item );