#pragma interface "treectrl.h"
#endif
+#if wxUSE_TREECTRL
+
#include "wx/textctrl.h"
#include "wx/dynarray.h"
#include "wx/treebase.h"
const wxSize& size = wxDefaultSize,
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
const wxValidator& validator = wxDefaultValidator,
- const wxString& name = "wxTreeCtrl")
+ const wxString& name = wxTreeCtrlNameStr)
{
Create(parent, id, pos, size, style, validator, name);
}
const wxSize& size = wxDefaultSize,
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
const wxValidator& validator = wxDefaultValidator,
- const wxString& name = "wxTreeCtrl");
+ const wxString& name = wxTreeCtrlNameStr);
// accessors
// ---------
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
// get the data associated with the item
wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
+ // get the item's text colour
+ wxColour GetItemTextColour(const wxTreeItemId& item) const;
+
+ // get the item's background colour
+ wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
+
+ // get the item's font
+ wxFont GetItemFont(const wxTreeItemId& item) const;
+
// modifiers
// ---------
size_t GetSelections(wxArrayTreeItemIds& selections) const;
// get the parent of this item (may return NULL if root)
- wxTreeItemId GetParent(const wxTreeItemId& item) const;
+ wxTreeItemId GetItemParent(const wxTreeItemId& item) const;
+
+#if WXWIN_COMPATIBILITY_2_2
+ // deprecated: Use GetItemParent instead.
+ wxTreeItemId GetParent(const wxTreeItemId& item) const
+ { return GetItemParent( item ); }
+
+ // Expose the base class method hidden by the one above.
+ wxWindow *GetParent() const { return wxControl::GetParent(); }
+#endif // WXWIN_COMPATIBILITY_2_2
// for this enumeration function you must pass in a "cookie" parameter
// which is opaque for the application but is necessary for the library
// 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)
+ DECLARE_NO_COPY_CLASS(wxTreeCtrl)
};
+#endif // wxUSE_TREECTRL
+
#endif
// _WX_TREECTRL_H_