]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/ParametersQtDialog.h
Merge branch 'master' of ssh://git.creatis.insa-lyon.fr/cpPlugins
[cpPlugins.git] / lib / cpPlugins / Interface / ParametersQtDialog.h
index ea9f84de53ebc017dc137c0949b57c1becc04164..365ec9ca1edda5eba97419f97a2983dd0aae6f9b 100644 (file)
@@ -8,17 +8,51 @@
 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
 #include <cpPlugins/Interface/Parameters.h>
 
-class QWidget;
+#include <vector>
+
+#include <QDialog>
+#include <QGridLayout>
+#include <QLabel>
+#include <QVBoxLayout>
+
+class vtkAbstractWidget;
+class vtkRenderWindowInteractor;
 
 namespace cpPlugins
 {
   namespace Interface
   {
-    bool cpPlugins_Interface_EXPORT ParametersQtDialog(
-      Parameters* parameters,
-      const std::string& title,
-      QWidget* parent = NULL
-      );
+    /**
+     */
+    class cpPlugins_Interface_EXPORT ParametersQtDialog
+      : public QDialog
+    {
+      Q_OBJECT;
+
+    public:
+      ParametersQtDialog( QWidget* parent = 0, Qt::WindowFlags f = 0 );
+      virtual ~ParametersQtDialog( );
+
+      bool IsModal( ) const;
+      Parameters* getParameters( ) const;
+      void setInteractor( vtkRenderWindowInteractor* interactor );
+      bool setParameters( Parameters* parameters );
+      void setTitle( const std::string& title );
+
+      virtual int exec( );
+      virtual void show( );
+      void syncParameters( );
+
+    protected:
+      Parameters* m_Parameters;
+      QLabel* m_Title;
+      QGridLayout* m_MainLayout;
+      QVBoxLayout* m_ToolsLayout;
+      bool m_IsModal;
+
+      vtkRenderWindowInteractor*        m_Interactor;
+      std::vector< vtkAbstractWidget* > m_Widgets;
+    };
 
   } // ecapseman