#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;
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;