]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxGimmick.h
No newline at end of file
[creaImageIO.git] / src / creaImageIOWxGimmick.h
index 13cdaf8e3109fc01749d4877339eaf98f5b0ef7f..75e969ef453c2ebcecb61cfd4032284716770526 100644 (file)
@@ -6,10 +6,11 @@
 #include <creaImageIODicomDatabase.h>
 
 // wx
-#include "wx/wx.h"
-#include "wx/image.h"
-#include "wx/imaglist.h"
+#include <creaWx.h>
+#include <wx/image.h>
+#include <wx/imaglist.h>
 #include <wx/splitter.h>
+#include <wx/notebook.h>
 #include "treelistctrl.h"
 
 // dicom fields view panel
@@ -19,7 +20,7 @@
 
 // For image preview 
 // vtk and wxvtk classes
-#include "wxVTKRenderWindowInteractor.h"
+#include "creawxVTKRenderWindowInteractor.h"
 #include "vtkImageViewer2.h"
 // multi-thread image reader
 #include <creaImageIOMultiThreadImageReader.h>
@@ -45,58 +46,96 @@ namespace creaImageIO
                                       public MultiThreadImageReaderUser
   {
   public:
-
+    /// Ctor
     WxGimmick(wxWindow *parent, const wxWindowID id,
              const wxPoint& pos, const wxSize& size,
              int image_type = GIMMICK_3D_IMAGE_SELECTION,
              int number_of_threads = 0);
-
+    /// Dtor
     virtual ~WxGimmick();
 
+    /// Returns the size of the current selection
     int GetSelectionSize() { return mTreeListCtrl->GetSelectionSize(); } 
+    /// Returns true if there is a valid selection
     bool IsSelectionValid();
+    /// Returns the vector of full filenames of selected images
     void GetSelectedFiles(std::vector<std::string>&);
+    /// Returns the vector of images corresponding to selection
     void GetSelectedImages(std::vector<vtkImageData*>&);
+    /// Returns the vector of DicomNode corresponding to selection
     void GetSelectedDicomNodes(std::vector<DicomNode*>&);
+    /// Returns the vector of wxTreeItemId corresponding to selection
     void GetSelectedItems(std::vector<wxTreeItemId>&);
+
+    /// Returns the DicomNode corresponding to the tree item
     DicomNode* GetDicomNodeOfItem(const wxTreeItemId& i);
 
+    /// Stores the first id of user menu
     static const int UserMenuFirstId;
 
+    /// The class storing WxGimmick settings
     typedef WxGimmickSettings Settings;
+    /// Returns the settings (const)
     const Settings& GetSettings() const { return mSettings; }
+    /// Returns the settings 
     Settings& GetSettings() { return mSettings; }
 
+
+    /// The type of event sent by WxGimmick
     typedef WxGimmickEvent EventType;
 
+    /// The type of list of DicomDatabase
     typedef std::vector<DicomDatabase*> DicomDatabaseListType;
 
+    /// Returns the list of DicomDatabase open
     DicomDatabaseListType& GetDicomDatabaseList() 
     { return mDicomDatabaseList; }
+    /// Returns the list of DicomDatabase open (const)
     const DicomDatabaseListType& GetDicomDatabaseList() const 
     { return mDicomDatabaseList; }
     
+    /// Returns the wxTreeListCtrl of the main view
     wxTreeListCtrl* GetTreeListCtrl() { return mTreeListCtrl; }
+    /// Returns the wxTreeListCtrl of the main view (const)
     const wxTreeListCtrl* GetTreeListCtrl() const { return mTreeListCtrl; }
 
+    /// 
     void SetConfigurationFile(const std::string& filename) 
     { mConfigurationFile = filename;}
     void LoadConfiguration();
     void SaveConfiguration();
     void SetSaveConfigurationOnClose(bool v) 
     { mSaveConfigurationOnClose = v; }
-
+    void LoadOrCreateFavoritesDatabase();
 
 
   protected:
+
+    /// Completely rebuilds the view (i.e. the wxTreeListCtrl) with 
+    /// current DicomDatabaseList
     void RebuildView();
+    /// Recursively updates the part of the view corresponding 
+    /// to the DicomDatabase passed
+    /// i.e. creates items for the DicomNode which do not have
+    ///      deletes obsolete items (whose DicomNode has been deleted)
     void UpdateDicomDatabaseView(DicomDatabase*);
+    /// Recursively updates the part of the view corresponding 
+    /// to the DicomNode provided.
+    /// parent is its parent in the tree (where to insert / remove it)
     void UpdateDicomNodeView(DicomNode* n, const wxTreeItemId& parent);
+    /// Recursively deletes 
     void DeleteObsoleteChildren(wxTreeItemId& id);
+    /// Create the column titles of the children of the item
     wxTreeItemId CreateChildrenColumnsTitles(wxTreeItemId& item,
                                             DicomNode::Type t);
+    /// 
     void UpdateColumnsTitles(wxTreeItemId& item, DicomNode::Type t);
+    /// 
     void UpdateColumns(wxTreeItemId& item, bool only_first = false);
+
+
+
+    /// General entry point for 
     void OpenOrNewDatabase(bool open);
 
     void InsertDicomDatabase(wxTreeItemId& id, DicomDatabase* r);
@@ -105,6 +144,8 @@ namespace creaImageIO
     void LoadChildren( wxTreeItemId& id );
     friend class WxGimmickEvent;
 
+    void ShowHelp();
+
   private:
 
     WxGimmick() { }
@@ -115,6 +156,7 @@ namespace creaImageIO
     int mCurrentSelectionImageSize[4];
 
     DicomDatabaseListType mDicomDatabaseList;
+    DicomDatabase* mFavoriteDatabase;
 
     wxTreeListCtrl* mTreeListCtrl;
     wxTreeItemId mTreeRootId;
@@ -132,8 +174,16 @@ namespace creaImageIO
     const std::string& GetDatabaseExtension() { return mDatabaseExtension; }
     void SetDatabaseExtension(const std::string& ext) 
     { mDatabaseExtension = ext; }
+
+
+    /// Settings
     Settings mSettings;
 
+
+    // Help 
+    WxGimmickHelp* mHelp;
+    bool mJustStarted;
+
     int  mFirstDicomDatabaseIconIndex;
     // Id of the item which activated the popup menu 
     wxTreeItemId mItemOfMenu;
@@ -145,6 +195,8 @@ namespace creaImageIO
 
     WxGimmickFieldsView* mFieldsView;
 
+    wxNotebook* mwxNotebook;
+
     wxSplitterWindow           *mSplitter1;
     wxSplitterWindow           *mSplitter2;
     
@@ -153,7 +205,7 @@ namespace creaImageIO
    // Previewer
     vtkImageViewer2* mViewer;
     // Associated wxvtk interactor
-    crea::wxVTKRenderWindowInteractor  *mInteractor;
+       crea::creawxVTKRenderWindowInteractor  *mInteractor;
   
     int mx1,mx2,my1,my2,mz1,mz2;
     double mspx,mspy,mspz;
@@ -226,6 +278,7 @@ namespace creaImageIO
     void OnPopUpAddFile(wxCommandEvent& event);
     void OnPopUpAddRawFile(wxCommandEvent& event);
     void OnPopUpAddDirectory(wxCommandEvent& event);
+    void OnPopUpAddToFavorites(wxCommandEvent& event);
     void OnPopUpRemove(wxCommandEvent& event);
     void OnPopUpSettings(wxCommandEvent& event);
     void OnPopUpAbout(wxCommandEvent& event);