#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
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 )
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;
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();
}
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)
return TRUE;
}
- private:
+private:
wxArrayTreeItemIds& m_selections;
- } selector(this, selections);
+};
+
+size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const
+{
+ TraverseSelections selector(this, selections);
return selections.GetCount();
}