#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
{
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
+ 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& );
+ /// 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
//=====================================================================