]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxGimmickSettings.h
Initial revision
[creaImageIO.git] / src / creaImageIOWxGimmickSettings.h
1 #ifndef __creaImageIOWxGimmickSettings_h_INCLUDED__
2 #define __creaImageIOWxGimmickSettings_h_INCLUDED__
3
4 #include <creaWx.h>
5 #include <vector>
6 #include <string>
7
8 #include <creaImageIODicomNode.h>
9
10 namespace creaImageIO
11 {
12
13   
14   //================================================================
15   class WxGimmickSettings
16   {
17   public : 
18     WxGimmickSettings();
19     ~WxGimmickSettings();
20     void Load(const std::string& filename);
21     void Save(const std::string& filename);
22
23     // Colours
24     wxColour& Colour(DicomNode::Type t) { return mColour[t]; }
25     wxColour& BgColour(DicomNode::Type t) { return mBgColour[t]; }
26     wxColour& LoadedImageColour() { return mLoadedImageColour; }
27     
28     // Columns
29     struct Column
30     {
31       Column(const std::string& key, const std::string& name) 
32         : Key(key), Name(name) {}
33       std::string Key;
34       std::string Name;
35     };
36     typedef std::vector<Column> ColumnListType;
37
38     ColumnListType& GetColumnList(DicomNode::Type t) { return mColumnList[t];}
39     int GetMaxNumberOfColumns();
40
41     // Merge study and series levels
42     bool MergeStudySeries() { return mMergeStudySeries; }
43
44     // Sorting criteria
45     typedef std::vector<LexicographicalDicomNodeComparator> ComparatorsList;
46     const ComparatorsList& GetComparatorsList(DicomNode::Type t) const
47     { return mComparatorsList[t]; }
48     ComparatorsList& GetComparatorsList(DicomNode::Type t) 
49     { return mComparatorsList[t]; }
50     
51     bool HasActiveComparator(DicomNode::Type t) 
52     {
53       return (mActiveComparator[t]>=0);
54     }
55     const LexicographicalDicomNodeComparator& GetActiveComparator(DicomNode::Type t) const 
56     { 
57       return mComparatorsList[t][mActiveComparator[t]];
58     }
59     void SetActiveComparatorIndex(DicomNode::Type t, int n) 
60     { 
61       mActiveComparator[t] = n;
62     }
63     int GetActiveComparatorIndex(DicomNode::Type t) const
64     { 
65       return mActiveComparator[t];
66     }
67      
68
69   protected:
70     wxColour mColour[5];
71     wxColour mBgColour[5];
72     wxColour mLoadedImageColour;
73
74     ColumnListType mColumnList[5]; 
75
76     bool mMergeStudySeries;
77
78     ComparatorsList mComparatorsList[5];
79     int mActiveComparator[5];
80   };
81   //================================================================
82
83
84 } // namespace creaImageIO
85
86
87 #endif // #ifndef __creaImageIOWxGimmickSettings_h_INCLUDED__
88