]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickView.h
Added pop up menus and tweaked the filter algorithm
[creaImageIO.git] / src2 / creaImageIOWxGimmickView.h
index 08710e6620c80ac3567d2e33eafe9a7aed02a7ec..314d1720b414b32bc66725f19e8d8e7ab9d54ed2 100644 (file)
@@ -4,8 +4,13 @@
 #ifdef USE_WXWIDGETS
 
 #include <creaImageIOGimmickView.h>
+#include <creaImageIOWxViewer.h>
 #include <creaWx.h>
 
+#include <wx/splitter.h>
+#include <wx/toolbar.h> 
+#include <wx/tbarbase.h> 
+#include <wx/notebook.h>
 
 namespace creaImageIO
 {
@@ -16,9 +21,11 @@ namespace creaImageIO
   
   //=====================================================================
   /// Concrete derivative of GimmickView which implements a wxWidgets-based view
+
   class WxGimmickView : public wxPanel, virtual public GimmickView
     {
     public:
+         
       typedef int EventType;
 
       /// Ctor
@@ -26,17 +33,97 @@ 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 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, bool isSelection, int selection, bool mProcess);
+         ///Stops the player
+         void StopPlayer(){mViewer->StopPlayer();}
+         ///Resets the default image
+         void ClearSelection();
+
+
+      ///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
+      void CreateToolBar(); 
+
+      /// Create the tree view for TreeHandler provided 
+      /// (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& );
+      /// 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;
+         //Pointer holders for images to be shown
+         std::vector<ImagePointerHolder*> pointers;
+
+
+      wxString mCurrentDirectory;
+
+      DECLARE_EVENT_TABLE()
+   };
     // EO class WxGimmickView
     //=====================================================================