]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/BaseMPRWindow.h
Parameters are now part of the pipeline update process
[cpPlugins.git] / lib / cpPlugins / Interface / BaseMPRWindow.h
index 37dd18eab94b84030a02601a5d6bb58e0e43ad2e..d0509671da4676f607e378eff898a5c88ae27bbe 100644 (file)
@@ -1,35 +1,36 @@
 #ifndef __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__
 #define __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__
 
+#include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
 #include <cpPlugins/Interface/Config.h>
 
 #ifdef cpPlugins_Interface_QT4
 
 #include <set>
+#include <string>
+#include <vector>
 
-#include <QMainWindow>
+#include <QApplication>
+#include <QMenu>
+#include <QVTKWidget.h>
 
 #include <vtkSmartPointer.h>
 
+#include <cpExtensions/QT/QuadSplitter.h>
 #include <cpExtensions/Visualization/MPRObjects.h>
 #include <cpPlugins/Interface/Interface.h>
 #include <cpPlugins/Interface/ProcessObject.h>
 #include <cpPlugins/Interface/Image.h>
 #include <cpPlugins/Interface/Mesh.h>
 
-namespace Ui
-{
-  class BaseMPRWindow;
-}
-
 namespace cpPlugins
 {
   namespace Interface
   {
     /**
      */
-    class BaseMPRWindow
-      : public QMainWindow
+    class cpPlugins_Interface_EXPORT BaseMPRWindow
+      : public cpExtensions::QT::QuadSplitter
     {
       Q_OBJECT;
 
@@ -40,30 +41,64 @@ namespace cpPlugins
       typedef cpPlugins::Interface::Image         TImage;
       typedef cpPlugins::Interface::Mesh          TMesh;
 
-      typedef std::set< TImage::Pointer > TImages;
-      typedef std::set< TMesh::Pointer >  TMeshes;
+      typedef std::vector< TImage::Pointer > TImages;
+      typedef std::vector< TMesh::Pointer >  TMeshes;
+      typedef std::set< std::string >     TOrderedStringContainer;
+      typedef std::map< std::string, std::set< std::string > > TFilters;
 
     public:
-      explicit BaseMPRWindow( QWidget* parent = NULL );
+      explicit BaseMPRWindow( QWidget* parent = 0 );
       virtual ~BaseMPRWindow( );
 
-    protected:
-      bool _LoadPlugins( const std::string& fname );
-      bool _LoadImage( const std::string& fname );
-      bool _LoadMesh( const std::string& fname );
+      void DialogLoadPlugins( );
+      void AssociatePluginsToMenu(
+        QMenu* menu, QObject* obj, const char* slot
+        );
+
+      inline void Block( )
+        {
+          QApplication::setOverrideCursor( Qt::WaitCursor );
+          this->setEnabled( false );
+        }
+      inline void Unblock( )
+        {
+          QApplication::restoreOverrideCursor( );
+          this->setEnabled( true );
+        }
+
+      bool LoadPlugins( const std::string& fname );
+      void LoadPlugins( );
+      bool LoadImage( );
+      bool LoadMesh( );
+
+      void ExecuteFilter(
+        const std::string& name,
+        int input_id, int output_id = -1
+        );
+
+      void ClearAll( );
 
     protected:
-      Ui::BaseMPRWindow* m_UI;
+      void _UpdatePlugins( );
 
+    protected:
       typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
       vtkSmartPointer< TMPRObjects > m_MPRObjects;
 
+      QVTKWidget* m_XVTK;
+      QVTKWidget* m_YVTK;
+      QVTKWidget* m_ZVTK;
+      QVTKWidget* m_WVTK;
+
       TInterface m_Interface;
+      TOrderedStringContainer m_LoadedPlugins;
+      std::string m_LastLoadedPlugin;
 
       TProcessObject::Pointer m_ImageReader;
       TProcessObject::Pointer m_ImageWriter;
       TProcessObject::Pointer m_MeshReader;
       TProcessObject::Pointer m_MeshWriter;
+      TFilters m_Filters;
 
       TImages m_Images;
       TMeshes m_Meshes;