00001 //------------------------------------------------------------------------------ 00002 // This file is part of the OpenStructure project <www.openstructure.org> 00003 // 00004 // Copyright (C) 2008-2010 by the OpenStructure authors 00005 // 00006 // This library is free software; you can redistribute it and/or modify it under 00007 // the terms of the GNU Lesser General Public License as published by the Free 00008 // Software Foundation; either version 3.0 of the License, or (at your option) 00009 // any later version. 00010 // This library is distributed in the hope that it will be useful, but WITHOUT 00011 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00012 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00013 // details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public License 00016 // along with this library; if not, write to the Free Software Foundation, Inc., 00017 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00018 //------------------------------------------------------------------------------ 00019 #ifndef OST_GUI_SCENE_WIN_SCENE_WIN_HH 00020 #define OST_GUI_SCENE_WIN_SCENE_WIN_HH 00021 00022 #include <QTreeView> 00023 #include <QItemSelection> 00024 00025 #include <ost/mol/query_view_wrapper.hh> 00026 00027 #include <ost/gfx/gfx_node_fw.hh> 00028 00029 #include <ost/gui/module_config.hh> 00030 #include <ost/gui/widget.hh> 00031 #include <ost/gui/scene_win/scene_win_model.hh> 00032 #include <ost/gui/scene_win/context_menu.hh> 00033 00034 /* 00035 Authors: Marco Biasini, Ansgar Philippsen, Stefan Scheuber 00036 */ 00037 00038 namespace ost { namespace gui { 00039 00040 // the display window for all graphical objects 00041 class DLLEXPORT_OST_GUI SceneWin: public Widget 00042 { 00043 Q_OBJECT; 00044 public: 00045 SceneWin(QWidget* parent=NULL); 00046 ~SceneWin(); 00047 00048 signals: 00049 void ActiveNodesChanged(gfx::NodePtrList nodes, gfx::EntityP entity, mol::QueryViewWrapperList views); 00050 void ActiveNodesChanged(); 00051 00052 public: 00053 virtual bool Save(const QString& prefix) { return true; } 00054 virtual bool Restore(const QString& prefix) { return true; } 00055 00056 void AddView(gfx::EntityP entity, mol::EntityView view); 00057 00058 ContextMenu* GetContextMenu(); 00059 00060 public slots: 00061 void OnSelectionChange(const QItemSelection& sel, const QItemSelection& desel); 00062 00063 void ContextMenuRequested(const QPoint& pos); 00064 00065 SceneWinModel* GetModel() const; 00066 00067 void Update(); 00068 00069 private slots: 00070 void RowsInserted(const QModelIndex & parent, int start, int end); 00071 void DoubleClicked(const QModelIndex & index); 00072 00073 private: 00074 SceneWinModel* model_; 00075 QTreeView* view_; 00076 ContextMenu* context_menu_; 00077 }; 00078 00079 }} // ns 00080 00081 #endif
1.5.8