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_WIN_HH
00020 #define OST_GUI_SCENE_WIN_SCENE_WIN_HH
00021
00022
00023 #include <ost/mol/query_view_wrapper.hh>
00024
00025 #include <ost/gfx/gfx_node_fw.hh>
00026 #include <ost/gfx/entity_fw.hh>
00027
00028 #include <ost/gui/module_config.hh>
00029 #include <ost/gui/widget.hh>
00030
00031 #include <QTreeView>
00032 #include <QItemSelection>
00033
00034
00035
00036
00037
00038
00039 namespace ost { namespace gui {
00040
00041 class SceneWinModel;
00042 class ContextMenu;
00043
00044
00045 class DLLEXPORT_OST_GUI SceneWin: public Widget
00046 {
00047 Q_OBJECT;
00048 public:
00049 SceneWin(QWidget* parent=NULL);
00050 ~SceneWin();
00051
00052 signals:
00053 void ActiveNodesChanged(gfx::NodePtrList nodes, gfx::EntityP entity, mol::QueryViewWrapperList views);
00054 void ActiveNodesChanged();
00055
00056 public:
00057 virtual bool Save(const QString& prefix) { return true; }
00058 virtual bool Restore(const QString& prefix) { return true; }
00059
00060 void AddView(gfx::EntityP entity, mol::EntityView view);
00061
00062 ContextMenu* GetContextMenu();
00063
00064 public slots:
00065 void OnSelectionChange(const QItemSelection& sel, const QItemSelection& desel);
00066
00067 void ContextMenuRequested(const QPoint& pos);
00068
00069 SceneWinModel* GetModel() const;
00070
00071 void Update();
00072
00073 private slots:
00074 void RowsInserted(const QModelIndex & parent, int start, int end);
00075 void DoubleClicked(const QModelIndex & index);
00076
00077 private:
00078 SceneWinModel* model_;
00079 QTreeView* view_;
00080 ContextMenu* context_menu_;
00081 };
00082
00083 }}
00084
00085 #endif