49{
50
51
53 {
54 if (_EnumString == NULL)
56
57
58 stringstream EnumStream(_EnumString);
59 string Label;
60 vector<string> Labels;
61 while( getline(EnumStream, Label, ',') ) {
62
63 size_t Start = Label.find_first_not_of(" \n\r\t");
64 size_t End = Label.find_last_not_of(" \n\r\t");
65 if( Start==string::npos || End==string::npos )
66 Label = "";
67 else
68 Label = Label.substr(Start, (End-Start)+1);
69
70 Labels.push_back(Label);
71 }
72
73 vector<TwEnumVal> Vals(Labels.size());
74 for( int i=0; i<(int)Labels.size(); i++ )
75 {
76 Vals[i].Value = i;
77
78
79
80
81 char * c_label = new char[Labels[i].length()+1];
82 std::strcpy(c_label, Labels[i].c_str());
83 Vals[i].Label = c_label;
84 }
85
86 const TwType type =
87 ReTwDefineEnum(_Name, Vals.empty() ?
88 NULL :
89 &(Vals[0]), (unsigned int)Vals.size());
90 return type;
91 }
92}
TwType ReTwDefineEnum(const char *name, const TwEnumVal *enumValues, unsigned int nbValues)
Definition ReAntTweakBar.cpp:25