]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/ActorPropertiesQtDialog.h
Visual properties dialog finished.
[cpPlugins.git] / lib / cpPlugins / ActorPropertiesQtDialog.h
1 #ifndef __CPPLUGINS__ACTORPROPERTIESQTDIALOG__H__
2 #define __CPPLUGINS__ACTORPROPERTIESQTDIALOG__H__
3
4 #include <cpPlugins/Config.h>
5
6 #ifdef cpPlugins_QT4
7
8 #include <set>
9 #include <vtkProp.h>
10 #include <vtkRenderWindow.h>
11 #include <vtkSmartPointer.h>
12
13 #include <QApplication>
14 #include <QDialog>
15 #include <QDialogButtonBox>
16 #include <QGridLayout>
17 #include <QLabel>
18 #include <QVBoxLayout>
19
20 class vtkProp;
21
22 namespace cpPlugins
23 {
24   /**
25    */
26   class cpPlugins_EXPORT ActorPropertiesQtDialog
27     : public QDialog
28   {
29     Q_OBJECT;
30
31   public:
32     template< class _TObj >
33     struct TCmp
34     {
35       bool operator()(
36         const vtkSmartPointer< _TObj >& a,
37         const vtkSmartPointer< _TObj >& b ) const
38         { return( a.GetPointer( ) < b.GetPointer( ) ); }
39     };
40     typedef vtkSmartPointer< vtkProp >                         TActor;
41     typedef vtkSmartPointer< vtkRenderWindow >                 TRenderWindow;
42     typedef std::set< TActor, TCmp< vtkProp > >                TActors;
43     typedef std::set< TRenderWindow, TCmp< vtkRenderWindow > > TWindows;
44
45   public:
46     ActorPropertiesQtDialog(
47       QWidget* parent = 0, Qt::WindowFlags f = 0
48       );
49     virtual ~ActorPropertiesQtDialog( );
50
51     virtual bool addActor( vtkProp* obj );
52     virtual bool addRenderWindow( vtkRenderWindow* win );
53     virtual int exec( );
54
55   protected:
56     virtual void _addButtons( );
57     virtual void _updateWidgets( );
58
59     virtual bool _configureForAxes( );
60     virtual bool _configureForImage( );
61     virtual bool _configureForMesh( );
62
63     void _setWindow( double w );
64     void _setLevel( double l );
65     void _render( );
66
67     template< class _TActor >
68       inline bool _addActor( vtkProp* obj );
69
70   protected slots:
71     void _boxWindow( double v );
72     void _sldWindow( int v );
73     void _boxLevel( double v );
74     void _sldLevel( int v );
75     void _sldOpacity( int v );
76     void _boxPointSize( int v );
77     void _boxLineWidth( int v );
78     void _scalarVisibility( int v );
79     void _color( );
80
81     /* TODO
82        virtual void updateParameters( );
83        virtual void updateView( );
84
85        protected:
86        virtual void _addButtons( );
87        virtual void _updateWidgets( );
88
89        protected slots:
90        virtual void _dlg_OpenSingleFile( );
91        virtual void _dlg_SaveSingleFile( );
92        virtual void _dlg_OpenSinglePath( );
93        virtual void _dlg_OpenMultipleFiles( );
94        virtual void _dlg_AddInt( );
95        virtual void _dlg_AddUint( );
96        virtual void _dlg_AddReal( );
97     */
98
99   protected:
100     TActors  m_Actors;
101     TWindows m_Windows;
102     bool m_WidgetsUpdated;
103     QLabel* m_Title;
104     QGridLayout* m_MainLayout;
105     QVBoxLayout* m_ToolsLayout;
106     QDialogButtonBox* m_Buttons;
107   };
108
109 } // ecapseman
110
111 #endif // cpPlugins_QT4
112
113 #endif // __CPPLUGINS__ACTORPROPERTIESQTDIALOG__H__
114
115 // eof - $RCSfile$