#ifndef __creaImageIOWxGimmickSettings_h_INCLUDED__ #define __creaImageIOWxGimmickSettings_h_INCLUDED__ #include #include #include #include namespace creaImageIO { //================================================================ class WxGimmickSettings { public : WxGimmickSettings(); ~WxGimmickSettings(); void Load(const std::string& filename); void Save(const std::string& filename); // Colours wxColour& Colour(DicomNode::Type t) { return mColour[t]; } wxColour& BgColour(DicomNode::Type t) { return mBgColour[t]; } wxColour& LoadedImageColour() { return mLoadedImageColour; } // Columns struct Column { Column(const std::string& key, const std::string& name) : Key(key), Name(name) {} std::string Key; std::string Name; }; typedef std::vector ColumnListType; ColumnListType& GetColumnList(DicomNode::Type t) { return mColumnList[t];} int GetMaxNumberOfColumns(); // Merge study and series levels bool MergeStudySeries() { return mMergeStudySeries; } // Sorting criteria typedef std::vector ComparatorsList; const ComparatorsList& GetComparatorsList(DicomNode::Type t) const { return mComparatorsList[t]; } ComparatorsList& GetComparatorsList(DicomNode::Type t) { return mComparatorsList[t]; } bool HasActiveComparator(DicomNode::Type t) { return (mActiveComparator[t]>=0); } const LexicographicalDicomNodeComparator& GetActiveComparator(DicomNode::Type t) const { return mComparatorsList[t][mActiveComparator[t]]; } void SetActiveComparatorIndex(DicomNode::Type t, int n) { mActiveComparator[t] = n; } int GetActiveComparatorIndex(DicomNode::Type t) const { return mActiveComparator[t]; } protected: wxColour mColour[5]; wxColour mBgColour[5]; wxColour mLoadedImageColour; ColumnListType mColumnList[5]; bool mMergeStudySeries; ComparatorsList mComparatorsList[5]; int mActiveComparator[5]; }; //================================================================ } // namespace creaImageIO #endif // #ifndef __creaImageIOWxGimmickSettings_h_INCLUDED__