]> Creatis software - bbtk.git/blob - kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h
Started the devel of a wx package browser
[bbtk.git] / kernel / src / ThirdParty / wx / treemultictrl / TreeMultiItemNode.h
1 //---------------------------------------------------------------------------\r
2 // $RCSfile: TreeMultiItemNode.h,v $\r
3 // $Source: /cvs/creatis/bbtk/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h,v $\r
4 // $Revision: 1.1 $\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 //---------------------------------------------------------------------------
11
12 #ifndef __TREEMULTIITEMNODE_HPP_
13 #define __TREEMULTIITEMNODE_HPP_
14
15 #ifdef __GNUG__
16     #pragma interface "TreeMultiItemNode.cpp"
17 #endif
18
19 #ifndef WX_PRECOMP\r
20     #include "wx/wx.h"\r
21 #endif\r
22 #include "wx/treebase.h"\r
23 \r
24 \r
25 #include <wx/dynarray.h>\r
26 #include "TreeMultiItemBase.h"\r
27 #include "TreeMultiItemWindow.h"
28
29 /** TreeMultiItemNode
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.
33   *
34   * See wxArray for all base methods manipulating the array
35   * Clear() can be used to safely delete all objects.
36   */
37
38 // declare the array class here
39
40 WX_DECLARE_OBJARRAY(TreeMultiItemBase, TreeMultiItemBaseArray);
41
42 class TreeMultiItemNode : public TreeMultiItemBase
43 {
44 private:
45         TreeMultiItemBaseArray _items;
46
47         /** Caption of this node. */
48         wxString _caption;
49
50         /** Indicates if this node is expanded (true) or collapsed (false) */\r
51         bool _nodeExpanded;\r
52 \r
53  /** visual attributes of the node */\r
54   wxTreeItemAttr m_Attributes;\r
55 \r
56 public:\r
57         TreeMultiItemNode(TreeMultiItemNode *parent, const wxString &caption = wxEmptyString, const wxString &name = wxEmptyString);\r
58         virtual ~TreeMultiItemNode();\r
59
60         // isClass method
61         virtual TreeMultiItemNode *IsTreeMultiItemNode() const {
62                 return (TreeMultiItemNode *)this;
63         };
64         \r
65         // add methods\r
66         void AddNode(TreeMultiItemBase *node);\r
67         void InsertNode(TreeMultiItemBase* NodePtr, size_t Position);\r
68 \r
69         // delete methods\r
70         void Clear();\r
71         void DeleteNode(TreeMultiItemBase *node);
72         void DeleteNode(int index);
73         TreeMultiItemBase *RemoveNode(TreeMultiItemBase *node);
74         TreeMultiItemBase *RemoveNode(int index);
75
76         // get methods
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
81         \r
82         TreeMultiItemBase* First() const;\r
83         TreeMultiItemBase* Last() const;\r
84 \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;
90         };
91
92         /** Return caption */
93         const wxString &GetCaption() const {
94                 return _caption;
95         };
96
97         /** Returns true if the node is expanded. Subnodes can still be collapsed though */
98         bool IsExpanded() const {
99                 return _nodeExpanded;
100         };
101
102
103 };
104
105 #endif
106