]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickView.h
Linux compat
[creaImageIO.git] / src2 / creaImageIOWxGimmickView.h
index 235c8f0cd1f4619369e32205b328548a4efa3299..fa2b3abcca4790b4d1d5664e6f305bb8b62350c8 100644 (file)
@@ -4,6 +4,7 @@
 #ifdef USE_WXWIDGETS
 
 #include <creaImageIOGimmickView.h>
+#include <creaImageIOWxViewer.h>
 #include <creaWx.h>
 
 #include <wx/splitter.h>
@@ -32,17 +33,28 @@ namespace creaImageIO
                    const wxPoint& pos, const wxSize& size,
                    int min_dim = GIMMICK_2D_IMAGE_SELECTION,
                        int max_dim = GIMMICK_3D_IMAGE_SELECTION,
-                       int out_dim = NATIVE,
                    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 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);
+      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
@@ -54,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;
@@ -64,6 +80,7 @@ namespace creaImageIO
 
       wxSplitterWindow* mSplitter;
       wxPanel*          mBottomPanel;
+         wxStaticText *    mText;
       wxNotebook*       mNotebook;
 
       /// The list of icons 
@@ -77,20 +94,30 @@ namespace creaImageIO
       void OnAddDir(wxCommandEvent& event);
          /// Callback for removing files
       void OnRemove(wxCommandEvent& event);
-      /// Display a message box with the last addition statistics
+       
+         /// Display a message box with the last addition statistics
       void DisplayAddSummary();
 
 
       /// 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;
-         //The selection's maximum dimension
+         ///The selection's maximum dimension
          int mSelectionMaxDimension;
-         //The selection's minimum dimension
+         ///The selection's minimum dimension
          int mSelectionMinDimension;
-         //The user desired output dimension
-         int mOutputDimension;
+         ///Image previewer
+         WxViewer* mViewer;
+         ///Currently Displayed Node
+         tree::Node* mCurImageItemToShow;
 
 
       wxString mCurrentDirectory;