Changeset 1971 in Sophya for trunk/SophyaPI/PIext/pintuple.cc
- Timestamp:
- Apr 30, 2002, 2:34:41 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PIext/pintuple.cc
r1920 r1971 259 259 return; 260 260 } 261 262 /* La methode DecodeOptionString permet de decoder un ensemble d'options 263 et de parametre d'affichage specifie sous forme d'un vecteur de string. 264 Si rmdecopt == true, les options decodees sont supprimees du vecteur 265 de string fourni en entree - ce qui permet l'enchainement eventuel 266 de plusieurs decodages de string. 267 Les options peuvent etre sous forme de flag : "stat" "nostat" 268 ou plus complexes, par exemple "dynamic=-3,3" 269 Rc: La methode renvoie le nombre d'options decodees 270 */ 271 272 /* --Methode-- */ 273 int PINTuple::DecodeOptionString(vector<string> & opt, bool rmdecopt) 274 { 275 if (opt.size() < 1) return(0); 276 // On appelle d'abord le decodage de la classe PIDrawer de laquelle 277 // on herite. (Pas obligatoire) on decode donc ici les attributs de 278 // couleur, fontes ... 279 int ndec1 = PIDrawer::DecodeOptionString(opt, rmdecopt); 280 if ((opt.size() - ndec1) < 1) return(ndec1); // si tout a ete decode 281 282 vector<string> udopt; // On gardera ici les options non decodees 283 unsigned int k = 0; 284 int ndec = opt.size(); 285 for( k=0; k<opt.size(); k++ ) { 286 string opts = opt[k]; 287 if (opts == "stat") SetStats(true); 288 else if (opts == "nostat") SetStats(false); 289 else { 290 // Si option non decode 291 ndec--; 292 // S'il faut supprimer les options decodees 293 if (rmdecopt) udopt.push_back(opts); 294 } 295 } 296 // S'il faut supprimer les options decodees, on remplace l'argument opt 297 // par le vecteur des options non decodees. 298 if (rmdecopt) opt = udopt; 299 return(ndec+ndec1); 300 }
Note:
See TracChangeset
for help on using the changeset viewer.