]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/ParametersQtDialog.h
Merge ssh://git.creatis.insa-lyon.fr/cpPlugins
[cpPlugins.git] / lib / cpPlugins / Interface / ParametersQtDialog.h
index ea9f84de53ebc017dc137c0949b57c1becc04164..2dc62ed168a2542f9d0ffb035c470621ac89e7c4 100644 (file)
@@ -8,17 +8,59 @@
 #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;
+    };
+
+    /* TODO
+       bool cpPlugins_Interface_EXPORT ParametersQtDialog(
+       Parameters* parameters,
+       const std::string& title,
+       QWidget* parent = NULL
+       );
+    */
 
   } // ecapseman