MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLCSO/CSOBase/CSORules/CSOListRules.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00005 
00009 //----------------------------------------------------------------------------------
00010 
00011 #ifndef __CSOListRules_H
00012 #define __CSOListRules_H
00013 
00014 
00015 #include "MLCSOIncludes.h"
00016 
00017 
00018 ML_START_NAMESPACE
00019 
00020 class CSO;
00021 class CSOList;
00022 
00024 
00026 enum CSORemoveEmptyGroupHandling {
00027   REMOVE_EMPTY_ALWAYS   = 0,
00028   REMOVE_EMPTY_NEVER    = 1,
00029   NUM_REMOVE_EMPTY_MODES = 2
00030 };
00031 
00033 
00036 class MLCSO_EXPORT CSOListRules 
00037 {
00038 
00039 public:
00040 
00042   CSOListRules();
00044   ~CSOListRules();
00045 
00047   void reset();
00048 
00050   void setRemoveEmptyGroupHandling(CSORemoveEmptyGroupHandling handling) { _removeEmptyGroupHandling = handling; }
00052   CSORemoveEmptyGroupHandling getRemoveEmptyGroupHandling() const        { return _removeEmptyGroupHandling;     }
00053 
00054 
00056   void applyTo(CSOList& csoList);
00057 
00059   static CSORemoveEmptyGroupHandling getDefaultRemoveEmptyGroupHandling() { return REMOVE_EMPTY_ALWAYS;   }
00060 
00062   static const char* sRemoveEmptyGroupHandlingStrings[NUM_REMOVE_EMPTY_MODES];
00063 
00064 protected:
00065 
00066 
00067 private:
00068 
00070   CSORemoveEmptyGroupHandling _removeEmptyGroupHandling;
00071 
00072 };
00073 
00075 
00076 
00077 ML_END_NAMESPACE
00078 
00079 
00080 #endif // __CSORules_H
00081 
00082 
00083