Computer Assited Medical Intervention Tool Kit  version 3.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PropertyExplorer.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2013 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 #ifndef PROPERTYEXPLORER_H
26 #define PROPERTYEXPLORER_H
27 
28 // -- Core stuff
29 #include "Viewer.h"
30 #include "ObjectController.h"
31 #include "ActionViewer.h"
32 
33 // -- QT stuff
34 #include <qteditorfactory.h>
35 #include <QtTreePropertyBrowser>
36 #include <QtButtonPropertyBrowser>
37 #include <QtGroupBoxPropertyBrowser>
38 
39 // -- QT stuff classes
40 class QTabWidget;
41 class QPushButton;
42 
43 namespace camitk {
44 
45 
46 class ObjectController;
47 
77  Q_OBJECT
78  Q_ENUMS(camitk::ObjectController::ViewMode); // so that it can be used in property editor
79  Q_PROPERTY(camitk::ObjectController::ViewMode viewMode READ getViewMode WRITE setViewMode);
80 
81 public:
87 
89  virtual ~PropertyExplorer();
90 
92  static PropertyExplorer* getInstance();
94 
97  virtual unsigned int numberOfViewedComponent();
100 
102  virtual void refresh(Viewer *whoIsAsking = NULL);
103 
105  virtual QWidget * getWidget(QWidget * parent = NULL);
106 
108  virtual QObject * getPropertyObject();
110 
113  const ObjectController::ViewMode getViewMode();
116 
118  void setViewMode(ObjectController::ViewMode);
120 
121 private:
122 
125  QTabWidget *tabWidget;
126  QPushButton *revertButton;
127  QPushButton *applyButton;
128 
131 
132 
136  void clear();
137 };
138 }
139 #endif