]> AND Private Git Repository - blast.git/blob - BlockCategory.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
nearly finished GroupBlock VHDL gen
[blast.git] / BlockCategory.h
1 #ifndef BLOCKCATEGORY_H\r
2 #define BLOCKCATEGORY_H\r
3 \r
4 #include <iostream>\r
5 \r
6 #include <QtCore>\r
7 #include <QtXml>\r
8 #include "ReferenceBlock.h"\r
9 class ReferenceBlock;\r
10 \r
11 using namespace std;\r
12 using namespace Qt;\r
13 \r
14 class Block;\r
15 \r
16 class BlockCategory {\r
17 \r
18 public :\r
19   BlockCategory(QString _name, int _id, BlockCategory* _parent = NULL);\r
20   int id;\r
21   // getters\r
22   inline int getId() { return id; }\r
23   inline QString getName() { return name; }\r
24   inline BlockCategory* getParent() { return parent; }\r
25   inline QList<BlockCategory *> getChilds() { return childs; }\r
26   BlockCategory* getChild(QString name);\r
27   BlockCategory* getChild(int index);\r
28   QList<BlockCategory *> getAllChilds();\r
29   inline QList<ReferenceBlock*> getBlocks() { return blocks; }\r
30   ReferenceBlock *getBlockById(int index);\r
31   ReferenceBlock *getBlockByName(QString name);\r
32 \r
33   // setters\r
34   void addChild(BlockCategory* child);\r
35   inline void setParent(BlockCategory* _parent) { parent = _parent; }\r
36 \r
37   // I/O\r
38   QDomElement save(QDomDocument &doc);  \r
39 \r
40   BlockCategory *getRoot();\r
41 \r
42   //int id;\r
43   QList<BlockCategory *> childs;\r
44   BlockCategory* parent;\r
45   QList<ReferenceBlock*> blocks;\r
46 private:\r
47   QString name;\r
48 \r
49 };\r
50 \r
51 #endif // BLOCKCATEGORY_H\r