// --------
wxGenericTreeCtrl() { Init(); }
- wxGenericTreeCtrl(wxWindow *parent, wxWindowID id = -1,
+ wxGenericTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTR_DEFAULT_STYLE,
virtual ~wxGenericTreeCtrl();
- bool Create(wxWindow *parent, wxWindowID id = -1,
+ bool Create(wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTR_DEFAULT_STYLE,
// Additionally, the application might choose to show a state icon
// which corresponds to an app-defined item state (for example,
// checked/unchecked) which are taken from the state image list.
- wxImageList *GetImageList() const;
- wxImageList *GetStateImageList() const;
- wxImageList *GetButtonsImageList() const;
+ virtual wxImageList *GetImageList() const;
+ virtual wxImageList *GetStateImageList() const;
+ virtual wxImageList *GetButtonsImageList() const;
- void SetImageList(wxImageList *imageList);
- void SetStateImageList(wxImageList *imageList);
- void SetButtonsImageList(wxImageList *imageList);
- void AssignImageList(wxImageList *imageList);
- void AssignStateImageList(wxImageList *imageList);
- void AssignButtonsImageList(wxImageList *imageList);
+ virtual void SetImageList(wxImageList *imageList);
+ virtual void SetStateImageList(wxImageList *imageList);
+ virtual void SetButtonsImageList(wxImageList *imageList);
+ virtual void AssignImageList(wxImageList *imageList);
+ virtual void AssignStateImageList(wxImageList *imageList);
+ virtual void AssignButtonsImageList(wxImageList *imageList);
+
+ virtual void SetDropEffectAboveItem( bool above = false ) { m_dropEffectAboveItem = above; }
+ virtual bool GetDropEffectAboveItem() const { return m_dropEffectAboveItem; }
// Functions to work with tree ctrl items.
// retrieve item's label
wxString GetItemText(const wxTreeItemId& item) const;
// get one of the images associated with the item (normal by default)
- int GetItemImage(const wxTreeItemId& item,
+ virtual int GetItemImage(const wxTreeItemId& item,
wxTreeItemIcon which = wxTreeItemIcon_Normal) const;
// get the data associated with the item
wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
// set item's label
void SetItemText(const wxTreeItemId& item, const wxString& text);
// get one of the images associated with the item (normal by default)
- void SetItemImage(const wxTreeItemId& item, int image,
+ virtual void SetItemImage(const wxTreeItemId& item, int image,
wxTreeItemIcon which = wxTreeItemIcon_Normal);
// associate some data with the item
void SetItemData(const wxTreeItemId& item, wxTreeItemData *data);
// allow the user to expand the items which don't have any children now
// - but instead add them only when needed, thus minimizing memory
// usage and loading time.
- void SetItemHasChildren(const wxTreeItemId& item, bool has = TRUE);
+ void SetItemHasChildren(const wxTreeItemId& item, bool has = true);
// the item will be shown in bold
- void SetItemBold(const wxTreeItemId& item, bool bold = TRUE);
+ void SetItemBold(const wxTreeItemId& item, bool bold = true);
+
+ // the item will be shown with a drop highlight
+ void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = true);
// set the item's text colour
void SetItemTextColour(const wxTreeItemId& item, const wxColour& col);
// number of children
// ------------------
- // if 'recursively' is FALSE, only immediate children count, otherwise
+ // if 'recursively' is false, only immediate children count, otherwise
// the returned number is the number of all items in this branch
- size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE);
+ size_t GetChildrenCount(const wxTreeItemId& item,
+ bool recursively = true) const;
// navigation
// ----------
- // wxTreeItemId.IsOk() will return FALSE if there is no such item
+ // wxTreeItemId.IsOk() will return false if there is no such item
// get the root tree item
wxTreeItemId GetRootItem() const { return m_anchor; }
#if WXWIN_COMPATIBILITY_2_2
// deprecated: Use GetItemParent instead.
- wxTreeItemId GetParent(const wxTreeItemId& item) const
- { return GetItemParent( item ); }
+ wxDEPRECATED( wxTreeItemId GetParent(const wxTreeItemId& item) const);
- // Expose the base class method hidden by the one above.
+ // Expose the base class method hidden by the one above. Not deprecatable.
wxWindow *GetParent() const { return wxScrolledWindow::GetParent(); }
#endif // WXWIN_COMPATIBILITY_2_2
// ----------
// add the root node to the tree
- wxTreeItemId AddRoot(const wxString& text,
+ virtual wxTreeItemId AddRoot(const wxString& text,
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// insert a new item in as the first child of the parent
- wxTreeItemId PrependItem(const wxTreeItemId& parent,
+ virtual wxTreeItemId PrependItem(const wxTreeItemId& parent,
const wxString& text,
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// insert a new item after a given one
- wxTreeItemId InsertItem(const wxTreeItemId& parent,
+ virtual wxTreeItemId InsertItem(const wxTreeItemId& parent,
const wxTreeItemId& idPrevious,
const wxString& text,
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// insert a new item before the one with the given index
- wxTreeItemId InsertItem(const wxTreeItemId& parent,
+ virtual wxTreeItemId InsertItem(const wxTreeItemId& parent,
size_t index,
const wxString& text,
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// insert a new item in as the last child of the parent
- wxTreeItemId AppendItem(const wxTreeItemId& parent,
+ virtual wxTreeItemId AppendItem(const wxTreeItemId& parent,
const wxString& text,
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// get the bounding rectangle of the item (or of its label only)
bool GetBoundingRect(const wxTreeItemId& item,
wxRect& rect,
- bool textOnly = FALSE) const;
+ bool textOnly = false) const;
// Start editing the item label: this (temporarily) replaces the item
// with a one line edit control. The item will be selected if it hadn't
#if WXWIN_COMPATIBILITY_2_4
// deprecated functions: use Set/GetItemImage directly
- int GetItemSelectedImage(const wxTreeItemId& item) const
- { return GetItemImage(item, wxTreeItemIcon_Selected); }
- void SetItemSelectedImage(const wxTreeItemId& item, int image)
- { SetItemImage(item, image, wxTreeItemIcon_Selected); }
+ wxDEPRECATED( int GetItemSelectedImage(const wxTreeItemId& item) const );
+ wxDEPRECATED( void SetItemSelectedImage(const wxTreeItemId& item, int image) );
// use the versions taking wxTreeItemIdValue cookies (note that
// GetNextChild() is not inside wxDEPRECATED on purpose, as otherwise we
virtual bool SetBackgroundColour(const wxColour& colour);
virtual bool SetForegroundColour(const wxColour& colour);
+ virtual void Freeze();
+ virtual void Thaw();
+
// callbacks
void OnPaint( wxPaintEvent &event );
void OnSetFocus( wxFocusEvent &event );
void OnGetToolTip( wxTreeEvent &event );
void OnInternalIdle( );
+ virtual wxSize DoGetBestSize() const;
+
+ virtual wxVisualAttributes GetDefaultAttributes() const
+ {
+ return GetClassDefaultAttributes(GetWindowVariant());
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
// implementation helpers
protected:
friend class wxGenericTreeItem;
*m_imageListState,
*m_imageListButtons;
+ int m_freezeCount;
int m_dragCount;
wxPoint m_dragStart;
wxGenericTreeItem *m_dropTarget;
wxString m_findPrefix;
wxTimer *m_findTimer;
+ bool m_dropEffectAboveItem;
+
// the common part of all ctors
void Init();
void DrawDropEffect(wxGenericTreeItem *item);
void DoSelectItem(const wxTreeItemId& id,
- bool unselect_others = TRUE,
- bool extended_select = FALSE);
+ bool unselect_others = true,
+ bool extended_select = false);
wxTreeItemId DoInsertItem(const wxTreeItemId& parent,
size_t previous,
bool TagAllChildrenUntilLast(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select);
bool TagNextChildren(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select);
void UnselectAllChildren( wxGenericTreeItem *item );
+ void ChildrenClosing(wxGenericTreeItem* item);
private:
DECLARE_EVENT_TABLE()
public:
wxTreeCtrl() {}
- wxTreeCtrl(wxWindow *parent, wxWindowID id = -1,
+ wxTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTR_DEFAULT_STYLE,