00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_SCENE_WIN_SCENE_NODE_HH
00020 #define OST_GUI_SCENE_WIN_SCENE_NODE_HH
00021
00022 #include <ost/gui/module_config.hh>
00023
00024 #include <QObject>
00025 #include <QVariant>
00026 #include <QModelIndex>
00027
00028
00029
00030
00031
00032 namespace ost { namespace gui {
00033
00034 class SceneNode;
00035 typedef QList<SceneNode*> SceneNodeList;
00036
00037 class DLLEXPORT_OST_GUI SceneNode : public QObject {
00038 Q_OBJECT
00039 public:
00040 SceneNode(SceneNode* node_parent);
00041 SceneNode(QObject* parent=0);
00042 virtual ~SceneNode();
00043
00044 SceneNode* GetParent() const { return dynamic_cast<SceneNode*>(this->parent()); }
00045 void AddChild(SceneNode* node) {
00046 node->setParent(this);
00047 }
00048 virtual SceneNode* GetChild(int row) const;
00049 virtual int GetChildRow(const SceneNode* node) const;
00050 virtual int GetRow() const;
00051 virtual QVariant GetData(int column, int role);
00052 virtual bool SetData(int column, const QVariant& value, int role);
00053 virtual Qt::ItemFlags Flags(int column) const;
00054 virtual int GetColumnCount() const;
00055 private:
00056 SceneNode* parent_;
00057 };
00058
00059 }}
00060
00061 #endif