//=====================================================================
/// Concrete derivative of GimmickView which implements a wxWidgets-based view
+
class WxGimmickView : public wxPanel, virtual public GimmickView
{
public:
+
typedef int EventType;
/// Ctor
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 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 *);
- ///Sends a request to read the currently selected node and the ones that surround it.
- void ReadImageThreaded(std::vector<tree::Node*> sel);
+ 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
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;
/// 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();
WxViewer* mViewer;
///Currently Displayed Node
tree::Node* mCurImageItemToShow;
+ //Pointer holders for images to be shown
+ std::vector<ImagePointerHolder*> pointers;
wxString mCurrentDirectory;