]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/Object.h
Widget integration (step 5/6): generic widget controller finished and tested on linux...
[cpPlugins.git] / lib / cpPlugins / Interface / Object.h
index fe86f1bc7efbb140e4b0e4f571bcc72e811bfd54..c4a0bfba7bcb84e499728c58bf1b9046f754964c 100644 (file)
@@ -3,23 +3,24 @@
 
 #include <string>
 #include <Pluma/Pluma.hpp>
+#include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
+
 #include <itkObject.h>
 #include <itkObjectFactory.h>
-#include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
 
 // -------------------------------------------------------------------------
 #define CPPLUGINS_PROVIDER_HEADER_BEGIN( TYPE )                 \
   class cpPlugins_Interface_EXPORT TYPE##Provider               \
     : public pluma::Provider                                    \
   {                                                             \
-  private:                                                      \
+private:                                                        \
     friend class pluma::Pluma;                                  \
     static const unsigned int PLUMA_INTERFACE_VERSION;          \
     static const unsigned int PLUMA_INTERFACE_LOWEST_VERSION;   \
     static const std::string PLUMA_PROVIDER_TYPE;               \
     std::string plumaGetType( ) const                           \
     { return( PLUMA_PROVIDER_TYPE ); }                          \
-  public:                                                       \
+public:                                                         \
     unsigned int getVersion( ) const                            \
     { return( PLUMA_INTERFACE_VERSION ); }
 
@@ -29,7 +30,7 @@
 // -------------------------------------------------------------------------
 #define CPPLUGINS_PROVIDER_HEADER( TYPE )               \
   CPPLUGINS_PROVIDER_HEADER_BEGIN( TYPE )               \
-    virtual TYPE::Pointer create( ) const = 0;          \
+  virtual TYPE::Pointer create( ) const = 0;            \
   CPPLUGINS_PROVIDER_HEADER_END
 
 // -------------------------------------------------------------------------
     }                                                                   \
   };
 
+// -------------------------------------------------------------------------
+#define cpPlugins_Id_Macro( name, category )                            \
+  public:                                                               \
+  virtual std::string GetClassName( ) { return( #name ); }              \
+  virtual std::string GetClassCategory( ) { return( category ); }
+
 namespace cpPlugins
 {
   namespace Interface
@@ -68,10 +75,10 @@ namespace cpPlugins
     public:
       itkNewMacro( Self );
       itkTypeMacro( Object, itkObject );
+      cpPlugins_Id_Macro( cpPlugins::Interface::Object, "BaseObject" );
 
-    public:
-      virtual std::string GetClassName( ) const;
-      virtual std::string GetClassType( ) const;
+      itkGetStringMacro( Name );
+      itkSetStringMacro( Name );
 
     protected:
       Object( );
@@ -81,6 +88,9 @@ namespace cpPlugins
       // Purposely not implemented
       Object( const Self& );
       Self& operator=( const Self& );
+
+    protected:
+      std::string m_Name;
     };
 
     /**