]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/treectrl.cpp
More samples makefiles
[wxWidgets.git] / src / msw / treectrl.cpp
index 4118355c1a53710d97e3c58be607d0649dfb2ded..4f1f806d3cc708a1019a96739fc17ea181c3aeba 100644 (file)
 #include "wx/treectrl.h"
 
 #ifdef __GNUWIN32__
+#ifndef wxUSE_NORLANDER_HEADERS
 #include "wx/msw/gnuwin32/extra.h"
 #endif
+#endif
 
-#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__)
+#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS)
     #include <commctrl.h>
 #endif
 
@@ -195,7 +197,7 @@ bool wxTreeCtrl::Create(wxWindow *parent,
     if ( m_windowStyle & wxTR_LINES_AT_ROOT )
         wstyle |= TVS_LINESATROOT;
 
-#ifndef __GNUWIN32__
+#if !defined( __GNUWIN32__ ) && !defined( __BORLANDC__ ) && !defined(wxUSE_NORLANDER_HEADERS)
     // we emulate the multiple selection tree controls by using checkboxes: set
     // up the image list we need for this if we do have multiple selections
     if ( m_windowStyle & wxTR_MULTIPLE )
@@ -343,15 +345,14 @@ void wxTreeCtrl::SetStateImageList(wxImageList *imageList)
     SetAnyImageList(m_imageListState = imageList, TVSIL_STATE);
 }
 
-size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item,
-                                    bool recursively) const
+// internal class for counting tree items
+
+class TraverseCounter : public wxTreeTraversal
 {
-    class TraverseCounter : public wxTreeTraversal
-    {
-    public:
+public:
         TraverseCounter(const wxTreeCtrl *tree,
                         const wxTreeItemId& root,
-                        bool recursively)
+                       bool recursively)
             : wxTreeTraversal(tree)
             {
                 m_count = 0;
@@ -368,9 +369,15 @@ size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item,
 
         size_t GetCount() const { return m_count; }
 
-    private:
+private:
         size_t m_count;
-    } counter(this, item, recursively);
+};
+
+
+size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item,
+                                    bool recursively) const
+{
+    TraverseCounter counter(this, item, recursively);
 
     return counter.GetCount();
 }
@@ -643,11 +650,11 @@ void wxTreeCtrl::SetItemCheck(const wxTreeItemId& item, bool check)
     DoSetItem(&tvItem);
 }
 
-size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const
+// internal class for getting the selected
+
+class TraverseSelections : public wxTreeTraversal
 {
-    class TraverseSelections : public wxTreeTraversal
-    {
-    public:
+public:
         TraverseSelections(const wxTreeCtrl *tree,
                            wxArrayTreeItemIds& selections)
             : wxTreeTraversal(tree), m_selections(selections)
@@ -667,9 +674,13 @@ size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const
             return TRUE;
         }
 
-    private:
+private:
         wxArrayTreeItemIds& m_selections;
-    } selector(this, selections);
+};
+
+size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const
+{
+    TraverseSelections selector(this, selections);
 
     return selections.GetCount();
 }