#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
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);
int mCurrentSelectionImageSize[4];
DicomDatabaseListType mDicomDatabaseList;
+ DicomDatabase* mFavoriteDatabase;
wxTreeListCtrl* mTreeListCtrl;
wxTreeItemId mTreeRootId;
// Help
- WxGimmickHelpWindow* mHelpWindow;
+ WxGimmickHelp* mHelp;
bool mJustStarted;
int mFirstDicomDatabaseIconIndex;
WxGimmickFieldsView* mFieldsView;
+ wxNotebook* mwxNotebook;
+
wxSplitterWindow *mSplitter1;
wxSplitterWindow *mSplitter2;
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);