#ifndef __CPPLUGINS__INTERFACE__PLUGINS__H__ #define __CPPLUGINS__INTERFACE__PLUGINS__H__ #include #include #include #include #include #include #include #include class QObject; class QMenu; class QWidget; namespace cpPlugins { namespace Interface { /** */ class cpPlugins_Interface_EXPORT Plugins { public: typedef cpPlugins::Interface::Interface TInterface; typedef cpPlugins::Interface::ProcessObject TProcessObject; typedef cpPlugins::Interface::DataObject TDataObject; typedef cpPlugins::Interface::Image TImage; typedef cpPlugins::Interface::Mesh TMesh; typedef TProcessObject::TParameters TParameters; typedef std::set< std::string > TOrderedStringContainer; typedef std::map< std::string, std::set< std::string > > TFilters; public: Plugins( QWidget* widget = NULL ); virtual ~Plugins( ); QWidget* GetWidget( ); const QWidget* GetWidget( ) const; void SetWidget( QWidget* widget ); void BlockWidget( ); void UnblockWidget( ); void DialogLoadPlugins( ); void AssociatePluginsToMenu( QMenu* menu, QObject* obj, const char* slot ); bool LoadPlugins( const std::string& fname ); bool LoadPluginsConfigurationFile( const std::string& fname ); TParameters* GetImageReaderParameters( ); TParameters* GetMeshReaderParameters( ); TParameters* GetImageWriterParameters( ); TParameters* GetMeshWriterParameters( ); const TParameters* GetImageReaderParameters( ) const; const TParameters* GetMeshReaderParameters( ) const; const TParameters* GetImageWriterParameters( ) const; const TParameters* GetMeshWriterParameters( ) const; // Data IO bool ReadImage( TImage::Pointer& image, bool exec_qt = false ); bool ReadDicomSeries( TImage::Pointer& image ); bool ReadMesh( TMesh::Pointer& mesh, bool exec_qt = false ); bool WriteImage( TImage* image, bool exec_qt = false ); bool WriteMesh( TMesh* mesh, bool exec_qt = false ); // Filter acces bool CreateFilter( TProcessObject::Pointer& filter, const std::string& name ); protected: void _Update( ); protected: QWidget* m_Widget; 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; TProcessObject::Pointer m_DicomSeriesReader; TFilters m_Filters; }; } // ecapseman } // ecapseman #endif // __CPPLUGINS__INTERFACE__PLUGINS__H__ // eof - $RCSfile$