X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOWxGimmickView.h;h=3881c8543c1e07f1be260a0d14fe9c50134bd4e7;hb=9b19229069b38b9b14563f427554fa7c8fd9ac6f;hp=c462e8443b0d2616291c38fd4014f60d03c76924;hpb=6cac83c30fb8c3cd89c41685078eccff6e952a50;p=creaImageIO.git diff --git a/src2/creaImageIOWxGimmickView.h b/src2/creaImageIOWxGimmickView.h index c462e84..3881c85 100644 --- a/src2/creaImageIOWxGimmickView.h +++ b/src2/creaImageIOWxGimmickView.h @@ -21,105 +21,137 @@ namespace creaImageIO //===================================================================== /// Concrete derivative of GimmickView which implements a wxWidgets-based view + class WxGimmickView : public wxPanel, virtual public GimmickView - { - public: - typedef int EventType; - - /// Ctor - WxGimmickView(Gimmick*, - wxWindow *parent, - const wxWindowID id, - const wxPoint& pos, const wxSize& size, - 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& s); - /// Returns the selected Images so that they comply with the given parameter(4D) - //(overloaded from GimmickView) - void GetSelectedImages(std::vector& s, int dim); - /// Validates the selected images - bool ValidateSelection(void *); - ///Sends a request to read the currently selected node and the ones that surround it. - void ReadImageThreaded(std::vector sel); - - - protected: - /// Creates the tool bar - void CreateToolBar(); - - /// Create the tree view for TreeHandler provided - /// (overloaded from GimmickView) - void CreateTreeView( TreeHandler* ); - - - private: - /// 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 - //===================================================================== - + { + public: + + typedef int EventType; + + /// Ctor + WxGimmickView(Gimmick*, + wxWindow *parent, + const wxWindowID id, + const wxPoint& pos, const wxSize& size, + 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& s); + + /// Returns the selected Images so that they comply with the + /// given parameter(4D) (overloaded from GimmickView) + void GetSelectedImages(std::vector& s, int dim); + + /// Returns the images indicated by the filenames in the vector + /// so that they comply with the given parameter(dim) + //(overloaded from GimmickView) + void GetImages(int dim, const std::vector& files, + std::vector& s); + + /// Callback called when a selection from a TreeView has changed + //(overloaded from GimmickView) + void OnSelectionChange(const std::vector& s, + bool isSelection, int selection, bool mProcess); + ///Stops the player + void StopPlayer(){mViewer->StopPlayer();} + ///Adds a file to ignore + void AddIgnoreFile(tree::Node* toRemove); + ///Resets the default image + void ClearSelection(); + ///Copies selected files + void CopyFiles(const std::vector& filenames); + + + ///Sends a request to read the currently selected node and the ones that surround it. + void ReadImageThreaded(const std::vector& 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; + wxToolBarToolBase* mToolSynchronize; + + 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); + /// Callback for removing files + void OnSynchronize(wxCommandEvent& event); + + /// Display a message box with the last addition statistics + void DisplayAddSummary(); + + /// Test a directory to know if contains sub-directory to analyze + bool isNeedRecursive(std::string i_name); + + /// AddProgress Gimmick callback + void OnAddProgress( Gimmick::AddProgress& ); + /// Called upon to refresh the viewer once there are no actions to be done + void OnInternalIdle(); + // callback to add a database + void OnAddDB(wxCommandEvent& event); + + //Create a DB from an Attributes Descriptor files + void OnCreateDB(wxCommandEvent& event); + + /// 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 pointers; + + + wxString mCurrentDirectory; + + DECLARE_EVENT_TABLE() + }; + // EO class WxGimmickView + //===================================================================== + + /*