]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickView.h
Linux compat
[creaImageIO.git] / src2 / creaImageIOWxGimmickView.h
index 16048a41a3d677f2003884469e35d23a89dce215..fa2b3abcca4790b4d1d5664e6f305bb8b62350c8 100644 (file)
@@ -4,6 +4,7 @@
 #ifdef USE_WXWIDGETS
 
 #include <creaImageIOGimmickView.h>
+#include <creaImageIOWxViewer.h>
 #include <creaWx.h>
 
 #include <wx/splitter.h>
@@ -30,10 +31,30 @@ namespace creaImageIO
                    wxWindow *parent, 
                    const wxWindowID id,
                    const wxPoint& pos, const wxSize& size,
-                   int image_type = GIMMICK_3D_IMAGE_SELECTION,
+                   int min_dim = GIMMICK_2D_IMAGE_SELECTION,
+                       int max_dim = GIMMICK_3D_IMAGE_SELECTION,
                    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)
+      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
@@ -43,22 +64,65 @@ namespace creaImageIO
       /// (overloaded from GimmickView)
       void CreateTreeView( TreeHandler* );
 
+
     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;
       wxToolBarToolBase* mToolAddDir;
       wxToolBarToolBase* mToolRemove;
+      wxToolBarToolBase* mToolAddDatabase;
       wxToolBarToolBase* mToolHelp;
 
       wxSplitterWindow* mSplitter;
       wxPanel*          mBottomPanel;
+         wxStaticText *    mText;
       wxNotebook*       mNotebook;
 
       /// The list of icons 
       wxImageList *    mIcon;
       void CreateIconList();
 
+      Gimmick * mGimmick;
+      /// Callback for adding files
+      void OnAddFiles(wxCommandEvent& event);
+      /// Callback for adding dir
+      void OnAddDir(wxCommandEvent& event);
+         /// Callback for removing files
+      void OnRemove(wxCommandEvent& event);
+       
+         /// 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
+         int mSelectionMaxDimension;
+         ///The selection's minimum dimension
+         int mSelectionMinDimension;
+         ///Image previewer
+         WxViewer* mViewer;
+         ///Currently Displayed Node
+         tree::Node* mCurImageItemToShow;
+
+
+      wxString mCurrentDirectory;
+
+      DECLARE_EVENT_TABLE()
    };
     // EO class WxGimmickView
     //=====================================================================