00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkSMStringVectorProperty_h
00029 #define __vtkSMStringVectorProperty_h
00030
00031 #include "vtkSMVectorProperty.h"
00032
00033
00034 struct vtkSMStringVectorPropertyInternals;
00035
00036
00037 class VTK_EXPORT vtkSMStringVectorProperty : public vtkSMVectorProperty
00038 {
00039 public:
00040 static vtkSMStringVectorProperty* New();
00041 vtkTypeRevisionMacro(vtkSMStringVectorProperty, vtkSMVectorProperty);
00042 void PrintSelf(ostream& os, vtkIndent indent);
00043
00045 virtual unsigned int GetNumberOfElements();
00046
00049 virtual void SetNumberOfElements(unsigned int num);
00050
00054 int SetElement(unsigned int idx, const char* value);
00055
00057 const char* GetElement(unsigned int idx);
00058
00061 unsigned int GetElementIndex(const char *value, int& exists);
00062
00064
00069 void SetElementType(unsigned int idx, int type);
00070 int GetElementType(unsigned int idx);
00072
00077 const char* GetUncheckedElement(unsigned int idx);
00078
00082 void SetUncheckedElement(unsigned int idx, const char* value);
00083
00087 virtual unsigned int GetNumberOfUncheckedElements();
00088
00089
00090 enum ElementTypes{ INT, DOUBLE, STRING };
00091
00092
00094 virtual void Copy(vtkSMProperty* src);
00095
00096 protected:
00097 vtkSMStringVectorProperty();
00098 ~vtkSMStringVectorProperty();
00099
00100 vtkSMStringVectorPropertyInternals* Internals;
00101
00105 virtual void SetNumberOfUncheckedElements(unsigned int num);
00106
00107
00109
00111 virtual void AppendCommandToStream(
00112 vtkSMProxy*, vtkClientServerStream* stream, vtkClientServerID objectId );
00113
00115
00116 virtual int ReadXMLAttributes(vtkSMProxy* parent,
00117 vtkPVXMLElement* element);
00118
00119 virtual void SaveState(const char* name, ostream* file, vtkIndent indent);
00120
00121 private:
00122 vtkSMStringVectorProperty(const vtkSMStringVectorProperty&);
00123 void operator=(const vtkSMStringVectorProperty&);
00124 };
00125
00126 #endif