1 //---------------------------------------------------------------------------
\r
2 // $RCSfile: TreeMultiItemNode.h,v $
\r
3 // $Source: /cvs/creatis/bbtk/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h,v $
\r
5 // $Date: 2008/03/28 13:42:18 $
\r
6 //---------------------------------------------------------------------------
\r
7 // Author: Jorgen Bodde
\r
8 // Copyright: (c) Jorgen Bodde
\r
9 // License: wxWidgets License
10 //---------------------------------------------------------------------------
12 #ifndef __TREEMULTIITEMNODE_HPP_
13 #define __TREEMULTIITEMNODE_HPP_
16 #pragma interface "TreeMultiItemNode.cpp"
22 #include "wx/treebase.h"
\r
25 #include <wx/dynarray.h>
\r
26 #include "TreeMultiItemBase.h"
\r
27 #include "TreeMultiItemWindow.h"
30 * This class is the element class for WX_OBJ_ARRAY and it
31 * should be filled with the member variables and methods to
32 * manipulate each object inside the object array.
34 * See wxArray for all base methods manipulating the array
35 * Clear() can be used to safely delete all objects.
38 // declare the array class here
40 WX_DECLARE_OBJARRAY(TreeMultiItemBase, TreeMultiItemBaseArray);
42 class TreeMultiItemNode : public TreeMultiItemBase
45 TreeMultiItemBaseArray _items;
47 /** Caption of this node. */
50 /** Indicates if this node is expanded (true) or collapsed (false) */
\r
53 /** visual attributes of the node */
\r
54 wxTreeItemAttr m_Attributes;
\r
57 TreeMultiItemNode(TreeMultiItemNode *parent, const wxString &caption = wxEmptyString, const wxString &name = wxEmptyString);
\r
58 virtual ~TreeMultiItemNode();
\r
61 virtual TreeMultiItemNode *IsTreeMultiItemNode() const {
62 return (TreeMultiItemNode *)this;
66 void AddNode(TreeMultiItemBase *node);
\r
67 void InsertNode(TreeMultiItemBase* NodePtr, size_t Position);
\r
71 void DeleteNode(TreeMultiItemBase *node);
72 void DeleteNode(int index);
73 TreeMultiItemBase *RemoveNode(TreeMultiItemBase *node);
74 TreeMultiItemBase *RemoveNode(int index);
77 int GetNodeCount() const;
78 TreeMultiItemBase *GetNode(int index) const;
\r
79 int Index(TreeMultiItemBase *node, bool searchFromEnd = false) const;
\r
80 TreeMultiItemBase *GetNodeNext(int &cookie) const;
\r
82 TreeMultiItemBase* First() const;
\r
83 TreeMultiItemBase* Last() const;
\r
85 /** Fold function sets or clears the expanded flag. Note when excluded from drawing, this
\r
86 will have no effect on redraw */
\r
87 void Fold(bool expand) {
88 if(_nodeExpanded != expand)
89 _nodeExpanded = expand;
93 const wxString &GetCaption() const {
97 /** Returns true if the node is expanded. Subnodes can still be collapsed though */
98 bool IsExpanded() const {