Index: trunk/SophyaPI/PI/piaxestools.cc
===================================================================
--- trunk/SophyaPI/PI/piaxestools.cc	(revision 1915)
+++ trunk/SophyaPI/PI/piaxestools.cc	(revision 1916)
@@ -85,5 +85,5 @@
 spy = bsy/4;
 
-int wszx = 6*spx+4.*bsx; 
+int wszx = 6*spx+3.5*bsx; 
 int wszy = 7*bsy+9*spy;
 SetSize(wszx, wszy);
@@ -100,5 +100,5 @@
 
 cpy = spy*2;
-cpx += spx+1.25*bsx; 
+cpx += 2*spx+1.25*bsx; 
 mText[0] = new PIText(this, "x_min_max", 2.25*bsx, bsy, cpx, cpy);
 mText[0]->SetText("-1.0  1.0");
@@ -130,5 +130,5 @@
 cpx = spx+0.25*bsx;
 mBut[0] = new PIButton(this, "GetAxesInfo", 2100, bsx*1.5, bsy, cpx, cpy);
-cpx += bsx*1.5+3*spx;
+cpx += bsx*1.5+4*spx;
 mBut[1] = new PIButton(this, "AutoLimits", 2200, bsx*1.5, bsy, cpx, cpy);
 mBut[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
@@ -138,5 +138,5 @@
 cpx = spx+0.25*bsx;
 mBut[2] = new PIButton(this, "SetAxes", 2500, bsx*1.5, bsy, cpx, cpy);
-cpx += bsx*1.5+3*spx;
+cpx += bsx*1.5+4*spx;
 mBut[3] = new PIButton(this, "Dismiss", 2777, bsx*1.5, bsy, cpx, cpy);
 mBut[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
@@ -151,5 +151,5 @@
 mBut[5]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
  cpx += spx+0.5*bsx;
-mOpt = new PIOptMenu(this,"choix-action",2.*bsx,bsy,cpx,cpy);
+mOpt = new PIOptMenu(this,"choix-action",1.5*bsx,bsy,cpx,cpy);
 mOpt->AppendItem("Transl X",2850);  // mTypAction=0
 mOpt->AppendItem("Transl Y",2851);  // mTypAction=1
@@ -159,5 +159,5 @@
 mOpt->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
  string sdum="Transl X"; mOpt->SetValueStr(sdum); mTypAction=0;
- cpx += spx+2.*bsx;
+ cpx += spx+1.5*bsx;
 mBut[6] = new PIButton(this,">",2803,0.5*bsx,bsy,cpx,cpy);
 mBut[6]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
Index: trunk/SophyaPI/PI/pidrawer.cc
===================================================================
--- trunk/SophyaPI/PI/pidrawer.cc	(revision 1915)
+++ trunk/SophyaPI/PI/pidrawer.cc	(revision 1916)
@@ -286,6 +286,9 @@
 PIDrawer::DecodeOptionString(vector<string> & opt, bool rmdecop)
 {
-  // a faire un jour OP+Reza 30/11/01
-  return(0);
+  if (opt.size() == 0)  return(0);  
+  PIGraphicAtt gratt;
+  int ndec = gratt.DecodeAttStrings(opt, rmdecop);
+  UpdateGraphicAtt(gratt);
+  return(ndec);
 }
 
Index: trunk/SophyaPI/PI/pieldrw.cc
===================================================================
--- trunk/SophyaPI/PI/pieldrw.cc	(revision 1915)
+++ trunk/SophyaPI/PI/pieldrw.cc	(revision 1916)
@@ -76,6 +76,46 @@
 int PIElDrawer::DecodeOptionString(vector<string> & opt, bool rmdecopt)
 {
-  // AFAIRE Reza 01/03/2002 
-  return(0);
+  if (opt.size() == 0)  return(0);  
+  int ndec1 = PIDrawer::DecodeOptionString(opt, rmdecopt);
+  vector<string> udopt;
+  unsigned int k = 0;
+  int ndec = opt.size();
+  for( k=0; k<opt.size(); k++ ) {
+    string opts = opt[k];
+    if ( (opts == "stdaxes") || (opts == "defaxes") || (opts == "boxaxes") ) {
+      SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
+      continue;
+    }
+    if (opts == "simpleaxes") {
+      SetAxesFlags(kAxesDflt);
+      continue;      
+    }
+    if (opts == "boxaxesgrid") {
+      SetAxesFlags(kBoxAxes | kExtTicks | kLabels | kGridOn);
+      continue;      
+    }
+    if (opts == "fineaxes") {
+      SetAxesFlags(kBoxAxes | kTicks | kLabels | kMinTicks | kMajTicks);
+      continue;      
+    }
+    if ((opts == "grid") || (opts == "fineaxesgrid")) {
+      SetAxesFlags(kBoxAxes | kTicks | kLabels | kMinTicks | kMajTicks | kGridOn);
+      continue;      
+    }
+    if (opts == "axelabelautofontsize") {
+      SetAxesAutoFontSize(true);
+      continue;      
+    }
+    if (opts == "axelabelfixedfontsize") {
+      SetAxesAutoFontSize(false);
+      continue;      
+    }
+
+    ndec--;
+    if (rmdecopt)  udopt.push_back(opts);
+  }  
+
+  if (rmdecopt)  opt = udopt;
+  return(ndec+ndec1);
 }
 
Index: trunk/SophyaPI/PI/piimage.cc
===================================================================
--- trunk/SophyaPI/PI/piimage.cc	(revision 1915)
+++ trunk/SophyaPI/PI/piimage.cc	(revision 1916)
@@ -506,6 +506,44 @@
 int PIImage::DecodeOptionString(vector<string> & opt, bool rmdecopt)
 {
-  // AFAIRE - Reza 01/03/2002 
-  return(0);
+  vector<string> udopt;
+  unsigned int k = 0;
+  int ndec = opt.size();
+  for( k=0; k<opt.size(); k++ ) {
+    string opts = opt[k];
+    // Facteur de zoom
+    if (opts.substr(0,5) == "zoomx") {
+      int zf = atoi(opts.substr(5).c_str());
+      SetZoom(zf, false);
+      continue;
+    }
+    if (opts.substr(0,5) == "zoom/") {
+      int zf = -atoi(opts.substr(5).c_str());
+      SetZoom(zf, false);
+      continue;
+    }
+    // Table de couleur
+    bool fgcmap = false;
+    for(int kcc=0; kcc<PIColorMap::NumberStandardColorMaps(); kcc++) {
+      if (opts == PIColorMap::GetStandardColorMapName(kcc)) {
+	SetColMapId(PIColorMap::GetStandardColorMapId(kcc), false);
+	fgcmap = true;
+	break;
+      }
+    }
+    if (fgcmap) continue;
+
+    // Position du centre d'image
+    if (opts.substr(0,12) == "imagecenter=") {
+      int xc,yc;
+      sscanf(opts.substr(12).c_str(),"%d,%d",&xc, &yc);
+      SetPave(xc, yc, false, true);
+      continue;
+    }
+    ndec--;
+    if (rmdecopt)  udopt.push_back(opts);
+  }
+
+  if (rmdecopt)  opt = udopt;
+  return(ndec);
 }
 
Index: trunk/SophyaPI/PI/piversion.h
===================================================================
--- trunk/SophyaPI/PI/piversion.h	(revision 1915)
+++ trunk/SophyaPI/PI/piversion.h	(revision 1916)
@@ -2,5 +2,5 @@
 #define PIVERSION_H_SEEN
 
-#define PI_VERSIONNUMBER  3.44
+#define PI_VERSIONNUMBER  3.60
 
 #endif
