1 // Copyright (C) 2014-2017 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or
18 // email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
21 #ifndef ModuleBase_ITreeNode_H
22 #define ModuleBase_ITreeNode_H
24 #include "ModuleBase.h"
26 #include <ModelAPI_Object.h>
32 class ModuleBase_ITreeNode;
34 typedef QList<ModuleBase_ITreeNode*> QTreeNodesList;
36 class ModuleBase_ITreeNode
39 /// Default constructor
40 ModuleBase_ITreeNode() : myParent(0) {}
42 /// Returns name of the node
43 virtual QString name() const { return "Item"; }
45 /// Returns icon of the node
46 virtual QIcon icon() const { return QIcon(); }
48 /// Returns foreground color of the node
49 virtual QColor color() const { return Qt::black; }
51 /// Returns properties flag of the item
52 virtual Qt::ItemFlags falg() const { return Qt::ItemIsSelectable | Qt::ItemIsEnabled; }
54 /// Returns parent node of the current node
55 ModuleBase_ITreeNode* parent() const { return myParent; }
57 /// Returns list of the node children
58 QTreeNodesList children() const { return myChildren; }
60 /// Returns object referenced by the node (can be null)
61 virtual ObjectPtr object() const { return ObjectPtr(); }
64 ModuleBase_ITreeNode* myParent; //!< Parent of the node
65 QTreeNodesList myChildren; //!< Children of the node