--- /dev/null
+//---------------------------------------------------------------------------\r
+// $RCSfile: TreeMultiItemNode.h,v $\r
+// $Source: /cvs/creatis/bbtk/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h,v $\r
+// $Revision: 1.1 $\r
+// $Date: 2008/03/28 13:42:18 $\r
+//---------------------------------------------------------------------------\r
+// Author: Jorgen Bodde\r
+// Copyright: (c) Jorgen Bodde\r
+// License: wxWidgets License
+//---------------------------------------------------------------------------
+
+#ifndef __TREEMULTIITEMNODE_HPP_
+#define __TREEMULTIITEMNODE_HPP_
+
+#ifdef __GNUG__
+ #pragma interface "TreeMultiItemNode.cpp"
+#endif
+
+#ifndef WX_PRECOMP\r
+ #include "wx/wx.h"\r
+#endif\r
+#include "wx/treebase.h"\r
+\r
+\r
+#include <wx/dynarray.h>\r
+#include "TreeMultiItemBase.h"\r
+#include "TreeMultiItemWindow.h"
+
+/** TreeMultiItemNode
+ * This class is the element class for WX_OBJ_ARRAY and it
+ * should be filled with the member variables and methods to
+ * manipulate each object inside the object array.
+ *
+ * See wxArray for all base methods manipulating the array
+ * Clear() can be used to safely delete all objects.
+ */
+
+// declare the array class here
+
+WX_DECLARE_OBJARRAY(TreeMultiItemBase, TreeMultiItemBaseArray);
+
+class TreeMultiItemNode : public TreeMultiItemBase
+{
+private:
+ TreeMultiItemBaseArray _items;
+
+ /** Caption of this node. */
+ wxString _caption;
+
+ /** Indicates if this node is expanded (true) or collapsed (false) */\r
+ bool _nodeExpanded;\r
+\r
+ /** visual attributes of the node */\r
+ wxTreeItemAttr m_Attributes;\r
+\r
+public:\r
+ TreeMultiItemNode(TreeMultiItemNode *parent, const wxString &caption = wxEmptyString, const wxString &name = wxEmptyString);\r
+ virtual ~TreeMultiItemNode();\r
+
+ // isClass method
+ virtual TreeMultiItemNode *IsTreeMultiItemNode() const {
+ return (TreeMultiItemNode *)this;
+ };
+ \r
+ // add methods\r
+ void AddNode(TreeMultiItemBase *node);\r
+ void InsertNode(TreeMultiItemBase* NodePtr, size_t Position);\r
+\r
+ // delete methods\r
+ void Clear();\r
+ void DeleteNode(TreeMultiItemBase *node);
+ void DeleteNode(int index);
+ TreeMultiItemBase *RemoveNode(TreeMultiItemBase *node);
+ TreeMultiItemBase *RemoveNode(int index);
+
+ // get methods
+ int GetNodeCount() const;
+ TreeMultiItemBase *GetNode(int index) const;\r
+ int Index(TreeMultiItemBase *node, bool searchFromEnd = false) const;\r
+ TreeMultiItemBase *GetNodeNext(int &cookie) const;\r
+ \r
+ TreeMultiItemBase* First() const;\r
+ TreeMultiItemBase* Last() const;\r
+\r
+ /** Fold function sets or clears the expanded flag. Note when excluded from drawing, this\r
+ will have no effect on redraw */\r
+ void Fold(bool expand) {
+ if(_nodeExpanded != expand)
+ _nodeExpanded = expand;
+ };
+
+ /** Return caption */
+ const wxString &GetCaption() const {
+ return _caption;
+ };
+
+ /** Returns true if the node is expanded. Subnodes can still be collapsed though */
+ bool IsExpanded() const {
+ return _nodeExpanded;
+ };
+
+
+};
+
+#endif
+