]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOGimmick.h
Added pop up menus and tweaked the filter algorithm
[creaImageIO.git] / src2 / creaImageIOGimmick.h
index 4911b9913281802f0d9e654d235b456f13a73337..cdb76764fcb99f143b7ccac4c6d4c827f691151e 100644 (file)
@@ -2,6 +2,7 @@
 #define __creaImageIOGimmick_h_INCLUDED__
 
 #include <creaImageIOSQLiteTreeHandler.h>
+#include <creaImageIOTreeHandlerImageAdder.h>
 
 namespace creaImageIO
 {
@@ -17,6 +18,15 @@ namespace creaImageIO
        /**
        * \defgroup GUI Top level graphical user interfaces
        */
+       /**
+       * \defgroup IO Image I/O classes
+       */
+       /**
+       * \defgroup Tree Attributed tree management
+       */
+       /**
+       * \defgroup Previewer Preview related
+       */
 
        /**
        * \ingroup Controller
@@ -32,6 +42,24 @@ namespace creaImageIO
     /// Dtor
     ~Gimmick();
     
+    ///
+    typedef TreeHandlerImageAdder::Progress AddProgress;
+    typedef TreeHandlerImageAdder::ProgressCallbackType AddProgressCallbackType;
+    
+    /// Adds the function f to the list of functions to call 
+    /// when addition operations progres.
+    /// f is of type AddProgressCallbackType which is:
+    /// void (*AddProgressCallbackType)(AddProgress&)
+    /// To pass a member function 'f' of an instance 'c' of a class 'C' 
+    /// as callback you have to 'bind' it, i.e. call:
+    /// ConnectAddProgressObserver ( boost::bind( &C::f , c, _1 ) );
+     void ConnectAddProgressObserver( AddProgressCallbackType callback )
+    { mImageAdder.ConnectProgressObserver(callback); }
+    
+
+    ///
+    const AddProgress& GetAddProgress() const { return mImageAdder.GetProgress(); }
+
     /// Initialize (read/creates databases, etc.)
     void Initialize();
     
@@ -53,8 +81,10 @@ namespace creaImageIO
     { return mTreeHandlerMap; }
     
 
-    /// Add a file to the given TreeHandler
-    void AddFile(const std::string& handler, const std::string& filename);
+    /// Add the files to the given TreeHandler
+    void AddFiles(const std::string& handler,
+                 const std::vector<std::string>& filenames);
+
     /// Add a dir to the given TreeHandler
     void AddDir(const std::string& handler, const std::string& path, 
                bool recurse);
@@ -79,6 +109,8 @@ namespace creaImageIO
     void CreateUserSettingsDirectory();
     const std::string& GetLocalDatabasePath();
 
+
+    //=============================================
   private:
     SQLiteTreeHandler* mLocalDatabase;
     TreeHandlerMapType mTreeHandlerMap;
@@ -87,7 +119,8 @@ namespace creaImageIO
     std::string mHomeDirectory;
     std::string mUserSettingsDirectory;
     std::string mLocalDatabasePath;
-    
+
+    TreeHandlerImageAdder mImageAdder;
   };
   // EO class Gimmick
   //=======================================================================