#pragma interface "treectrl.h"
#endif
+#if wxUSE_TREECTRL
+
#include "wx/textctrl.h"
#include "wx/dynarray.h"
#include "wx/treebase.h"
void SetImageList(wxImageList *imageList);
void SetStateImageList(wxImageList *imageList);
+ void AssignImageList(wxImageList *imageList);
+ void AssignStateImageList(wxImageList *imageList);
// Functions to work with tree ctrl items. Unfortunately, they can _not_ be
// member functions of wxTreeItem because they must know the tree the item
// SetImageList helper
void SetAnyImageList(wxImageList *imageList, int which);
+ // refresh a single item
+ void RefreshItem(const wxTreeItemId& item);
+
wxTextCtrl *m_textCtrl; // used while editing the item label
wxImageList *m_imageListNormal, // images for tree elements
*m_imageListState; // special images for app defined states
+ bool m_ownsImageListNormal, m_ownsImageListState;
private:
// the common part of all ctors
void DeleteTextCtrl();
- // support for additional item images
- friend class wxTreeItemIndirectData;
+ // support for additional item images which we implement using
+ // wxTreeItemIndirectData technique - see the comments in msw/treectrl.cpp
void SetIndirectItemData(const wxTreeItemId& item,
- wxTreeItemIndirectData *data);
+ class wxTreeItemIndirectData *data);
bool HasIndirectData(const wxTreeItemId& item) const;
-
- // the array storing all item ids which have indirect data
- wxArrayTreeItemIds m_itemsWithIndirectData;
+ bool IsDataIndirect(wxTreeItemData *data) const
+ { return data && data->GetId().m_pItem == 0; }
// the hash storing the items attributes (indexed by items ids)
wxHashTable m_attrs;
// used for dragging
wxDragImage *m_dragImage;
+ // Virtual root item, if wxTR_HIDE_ROOT is set.
+ void* m_pVirtualRoot;
+
// the starting item for selection with Shift
WXHTREEITEM m_htSelStart;
+ friend class wxTreeItemIndirectData;
+ friend class wxTreeSortHelper;
+
DECLARE_DYNAMIC_CLASS(wxTreeCtrl)
};
+#endif // wxUSE_TREECTRL
+
#endif
// _WX_TREECTRL_H_