]> Creatis software - bbtk.git/blobdiff - kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h
Started the devel of a wx package browser
[bbtk.git] / kernel / src / ThirdParty / wx / treemultictrl / TreeMultiItemNode.h
diff --git a/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h b/kernel/src/ThirdParty/wx/treemultictrl/TreeMultiItemNode.h
new file mode 100644 (file)
index 0000000..c8754f1
--- /dev/null
@@ -0,0 +1,106 @@
+//---------------------------------------------------------------------------\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
+