Changeset 1971 in Sophya for trunk/SophyaPI/PIext/pintuple.cc


Ignore:
Timestamp:
Apr 30, 2002, 2:34:41 PM (23 years ago)
Author:
ansari
Message:

1/ Basculement de decodage des options de display aux methodes
PIDrawer/PIWdg::DecodeOptionString()
2/ Possibilite de Show/Hide de la partie Zoom/ColorMap/Stat du MainWindow

Reza 30/4/2002

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/pintuple.cc

    r1920 r1971  
    259259return;
    260260}
     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-- */
     273int 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.