]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickView.h
Linux compat
[creaImageIO.git] / src2 / creaImageIOWxGimmickView.h
index a156b164fdf3d91fced2062258cadb466ab3f119..fa2b3abcca4790b4d1d5664e6f305bb8b62350c8 100644 (file)
@@ -4,6 +4,7 @@
 #ifdef USE_WXWIDGETS
 
 #include <creaImageIOGimmickView.h>
+#include <creaImageIOWxViewer.h>
 #include <creaWx.h>
 
 #include <wx/splitter.h>
@@ -35,18 +36,25 @@ namespace creaImageIO
                    int number_of_threads = 0);
       /// Virtual destructor
       virtual ~WxGimmickView();
-
-         /// Returns the selected Images so that they comply with the given parameter(<4D)
-         ///(overloaded from GimmickView)
-         vtkImageData* GetSelectedImage(int dim);
-         /// Returns the selected files
-         ///(overloaded from GimmickView)
-         void GetSelectedFiles(std::vector<std::string>& s);
+      
+      /// Returns the selected Images so that they comply with the given parameter(<4D)
+      ///(overloaded from GimmickView)
+      vtkImageData* GetSelectedImage(int dim);
+      /// Returns the selected files
+      ///(overloaded from GimmickView)
+      void GetSelectedFiles(std::vector<std::string>& s);
       /// Returns the selected Images so that they comply with the given parameter(4D)
       //(overloaded from GimmickView)
-         void GetSelectedImages(std::vector<vtkImageData*>& s, int dim);
-         /// Validates the selected images
-         bool ValidateSelection(void *);
+      void GetSelectedImages(std::vector<vtkImageData*>& s, int dim);
+      /// Callback called when a selection from a TreeView has changed 
+      //(overloaded from GimmickView)
+      void OnSelectionChange(std::vector<tree::Node*>& s);
+
+
+
+      ///Sends a request to read the currently selected node and the ones that surround it.
+      void ReadImageThreaded(std::vector<tree::Node*> sel);
+      
 
     protected:
       /// Creates the tool bar
@@ -58,6 +66,10 @@ namespace creaImageIO
 
 
     private:
+      /// Is set to true at the end of constructor 
+      /// (in order to lock callbacks from threaded objects or event 
+      /// before everything is ok)
+      bool mConstructed;
       /// The ToolBar and the tools
       wxToolBar*         mToolBar;
       wxToolBarToolBase* mToolAddFile;
@@ -89,6 +101,12 @@ namespace creaImageIO
 
       /// AddProgress Gimmick callback
       void OnAddProgress( Gimmick::AddProgress& );
+         /// Processes the queue of image events 
+         /// Called in OnInternalIdle();
+      /// (locks the MultiThreadImageReaderEvent mutex)
+      void ProcessImageEvents();
+      /// Called upon to refresh the viewer once there are no actions to be done
+      void OnInternalIdle();
      
       /// Progress dialog
       wxProgressDialog* mProgressDialog;
@@ -96,6 +114,10 @@ namespace creaImageIO
          int mSelectionMaxDimension;
          ///The selection's minimum dimension
          int mSelectionMinDimension;
+         ///Image previewer
+         WxViewer* mViewer;
+         ///Currently Displayed Node
+         tree::Node* mCurImageItemToShow;
 
 
       wxString mCurrentDirectory;