00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00031 #ifndef __vtkSMStringListRangeDomain_h
00032 #define __vtkSMStringListRangeDomain_h
00033
00034 #include "vtkSMDomain.h"
00035
00036 class vtkSMIntRangeDomain;
00037 class vtkSMBooleanDomain;
00038 class vtkSMStringListDomain;
00039
00040 class VTK_EXPORT vtkSMStringListRangeDomain : public vtkSMDomain
00041 {
00042 public:
00043 static vtkSMStringListRangeDomain* New();
00044 vtkTypeRevisionMacro(vtkSMStringListRangeDomain, vtkSMDomain);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00049 virtual int IsInDomain(vtkSMProperty* property);
00050
00051
00052 enum Modes
00053 {
00054 RANGE,
00055 BOOLEAN
00056 };
00057
00058
00060
00061 vtkSetClampMacro(IntDomainMode, int, 0, 1);
00062 vtkGetMacro(IntDomainMode, int);
00064
00066 unsigned int GetNumberOfStrings();
00067
00070 const char* GetString(unsigned int idx);
00071
00073 unsigned int AddString(const char* string);
00074
00076 void RemoveString(const char* string);
00077
00079 void RemoveAllStrings();
00080
00084 int GetMinimum(unsigned int idx, int& exists);
00085
00089 int GetMaximum(unsigned int idx, int& exists);
00090
00092 void AddMinimum(unsigned int idx, int value);
00093
00096 void RemoveMinimum(unsigned int idx);
00097
00099 void RemoveAllMinima();
00100
00102 void AddMaximum(unsigned int idx, int value);
00103
00106 void RemoveMaximum(unsigned int idx);
00107
00109 void RemoveAllMaxima();
00110
00112
00113 virtual void SetAnimationValue(vtkSMProperty *property, int idx,
00114 double value);
00116
00117 protected:
00118 vtkSMStringListRangeDomain();
00119 ~vtkSMStringListRangeDomain();
00120
00123 virtual int ReadXMLAttributes(vtkSMProperty* prop, vtkPVXMLElement* element);
00124
00125 virtual void SaveState(const char* name, ostream* file, vtkIndent indent);
00126
00127 vtkSMIntRangeDomain* IRDomain;
00128 vtkSMBooleanDomain* BDomain;
00129 vtkSMStringListDomain* SLDomain;
00130
00131 int IntDomainMode;
00132
00133 private:
00134 vtkSMStringListRangeDomain(const vtkSMStringListRangeDomain&);
00135 void operator=(const vtkSMStringListRangeDomain&);
00136 };
00137
00138 #endif