summaryrefslogtreecommitdiffstats
path: root/src/datablocks/categorytree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/datablocks/categorytree.h')
-rw-r--r--src/datablocks/categorytree.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/datablocks/categorytree.h b/src/datablocks/categorytree.h
new file mode 100644
index 0000000..e5668e4
--- /dev/null
+++ b/src/datablocks/categorytree.h
@@ -0,0 +1,61 @@
+/***************************************************************************
+* Copyright (C) 2004 by Jason Kivlighn *
+* (jkivlighn@gmail.com) *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+***************************************************************************/
+#ifndef CATEGORYTREE_H
+#define CATEGORYTREE_H
+
+#include "element.h"
+
+class CategoryTree
+{
+public:
+ CategoryTree( CategoryTree *parent = 0 );
+
+ ~CategoryTree();
+
+ Element category;
+
+ CategoryTree *add
+ ( const Element &cat );
+ void clear();
+
+ bool contains( int id ) const;
+ CategoryTree* find( int id ) const;
+
+ CategoryTree *parent() const
+ {
+ return m_parent;
+ }
+ CategoryTree *firstChild() const
+ {
+ return m_child;
+ }
+ CategoryTree *nextSibling() const
+ {
+ return m_sibling;
+ }
+
+ void takeItem( CategoryTree * );
+ void insertItem( CategoryTree * );
+
+ int count() const { return m_count; }
+
+private:
+ CategoryTree( const CategoryTree & );
+ CategoryTree &operator=( const CategoryTree & );
+
+ CategoryTree *m_parent;
+ CategoryTree *m_child;
+ CategoryTree *m_sibling;
+ CategoryTree *m_last;
+
+ int m_count;
+};
+
+#endif