Index: /trunk/SophyaPI/PI/Makefile
===================================================================
--- /trunk/SophyaPI/PI/Makefile	(revision 1588)
+++ /trunk/SophyaPI/PI/Makefile	(revision 1589)
@@ -4,5 +4,5 @@
  
 all: $(LIB)libPI.a
-$(LIB)libPI.a : $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pievthandler.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pifontgen.o $(OBJ)pifontx.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)pitherm.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
+$(LIB)libPI.a : $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)piaxestools.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pievthandler.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pifontgen.o $(OBJ)pifontx.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)pitherm.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
 	$(AR) $(ARFLAGS)  $@ $? 
 ifeq ($(CXX),cxx)
@@ -11,5 +11,5 @@
  
 clean:
-	rm -f $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pievthandler.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pifontgen.o $(OBJ)pifontx.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)pitherm.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
+	rm -f $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)piaxestools.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pievthandler.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pifontgen.o $(OBJ)pifontx.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)pitherm.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
 ifeq ($(CXX),cxx)
 	cd $(REPM); rm -f *.o
@@ -42,4 +42,12 @@
  pigraphx.h pigraphgen.h pifontx.h pifontgen.h pigraphuc.h \
  pievthandler.h psfile.h pigraphps.h
+$(OBJ)piaxestools.o: piaxestools.cc piaxestools.h pisysdep.h \
+ $(INC)machdefs.h pistdwdgx.h pistdwdggen.h \
+ piwdgx.h piwdggen.h pimsghandler.h picolist.h pioptmenux.h \
+ pioptmenugen.h pimenux.h pimenugen.h piwindowx.h piwindowgen.h \
+ picontainerx.h picontainergen.h piapplx.h piapplgen.h pimenubarx.h \
+ pimenubargen.h picons.h pibwdgx.h pibwdggen.h picmap.h picmapx.h \
+ picmapgen.h pigraphx.h pigraphgen.h pifontx.h pifontgen.h pigraphuc.h \
+ pievthandler.h psfile.h pigraphps.h piscdrawwdg.h pidrawer.h
 $(OBJ)pibwdggen.o: pibwdggen.cc pibwdggen.h pisysdep.h \
  $(INC)machdefs.h piwdgx.h piwdggen.h \
@@ -219,5 +227,5 @@
  picontainergen.h pidrawer.h pidrwtools.h pioptmenux.h pioptmenugen.h \
  pimenux.h pimenugen.h piapplx.h piapplgen.h pimenubarx.h \
- pimenubargen.h picons.h parradapter.h lut.h
+ pimenubargen.h picons.h piaxestools.h parradapter.h lut.h
 $(OBJ)pistdwdggen.o: pistdwdggen.cc pistdwdggen.h pisysdep.h \
  $(INC)machdefs.h piwdgx.h piwdggen.h \
Index: /trunk/SophyaPI/PI/objlist.list
===================================================================
--- /trunk/SophyaPI/PI/objlist.list	(revision 1588)
+++ /trunk/SophyaPI/PI/objlist.list	(revision 1589)
@@ -4,4 +4,5 @@
 piapplgen.o
 piapplx.o
+piaxestools.o
 pibwdggen.o
 pibwdgx.o
Index: /trunk/SophyaPI/PI/pi3ddrw.cc
===================================================================
--- /trunk/SophyaPI/PI/pi3ddrw.cc	(revision 1588)
+++ /trunk/SophyaPI/PI/pi3ddrw.cc	(revision 1589)
@@ -117,4 +117,5 @@
   if (v3D_obs)  gr3d->Set3DCS_Obs(xO, yO, zO, tO, fO, pO, daxO, dayO, lCO, dlCO);
   else  gr3d->Set3DCS(xC,yC,zC, xO, yO, zO, daxO, dayO, dlCO, pO);
+  if (mFgHighLight) gr3d->SelGOMode(PI_GOInvert);  // $CHECK$ A changer , Reza 07/2001
   mGrUC = gr3d;
   return(gr3d); 
Index: /trunk/SophyaPI/PI/piaxestools.cc
===================================================================
--- /trunk/SophyaPI/PI/piaxestools.cc	(revision 1589)
+++ /trunk/SophyaPI/PI/piaxestools.cc	(revision 1589)
@@ -0,0 +1,302 @@
+// This may look like C code, but it is really -*- C++ -*-
+// Outils de manipulation des axes des PIScDrawWdg
+//                                   R. Ansari 07/2001
+// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
+
+#include <stdlib.h>
+#include <iostream.h>
+
+#include "piaxestools.h"
+
+//++
+// Class	PIAxesTools
+// Lib		PI
+// include	piaxestools.h
+//
+//	Classe de fenêtre de dialogue permettant de modifier interactivement
+//	Permet aussi de modifier les attributs d'axes pour les "PIScDrawWdg"
+//--
+// Links	Parents
+// PIWindow
+//--
+//++
+// Links	Voir aussi
+// PIScDrawWdg
+//--
+
+//++
+// Titre	Méthodes statiques
+//--
+//++
+// void  ShowPIAxesTools() 	
+//	Méthode statique permettant l'affichage de la fenêtre de contrôle des
+//	attributs graphiques des "Drawer". L'instance de la classe
+//	 "PIAxesTools" est créée si nécessaire.
+// void  HidePIAxesTools() 
+//	Désacative (cache) la fenêtre "PIAxesTools" (méthode statique).
+// void  SetCurrentBaseWdg(PIBaseWdgGen* cbw)
+//	Méthode statique permettant de sélectionner le "PIBaseWdg" courant.
+// PIBaseWdgGen*  GetCurrentBaseWdg()
+//	Retourne le "PIBaseWdg" courant (méthode statique).
+//--
+
+
+PIAxesTools* PIAxesTools::cwaxet = NULL;
+PIScDrawWdg* PIAxesTools::curscdwdg = NULL;
+
+/* --Methode-- */
+void PIAxesTools::ShowPIAxesTools() 
+{
+if (cwaxet == NULL)  cwaxet = new PIAxesTools(PIApplicationGetApp());
+cwaxet->Show();
+}
+
+/* --Methode-- */
+void PIAxesTools::HidePIAxesTools() 
+{
+if (cwaxet == NULL)  return; 
+cwaxet->Hide();
+}
+
+/* --Methode-- */
+void PIAxesTools::SetCurrentScDrawWdg(PIScDrawWdg* csw)
+{
+if (curscdwdg == csw) return;
+curscdwdg = csw;
+}
+
+/* --Methode-- */
+PIScDrawWdg* PIAxesTools::GetCurrentScDrawWdg()
+{
+return(curscdwdg);
+}
+
+/* --Methode-- */
+PIAxesTools::PIAxesTools(PIApplication* par)
+: PIWindow((PIMsgHandler*)par, "PIAxesTools", PIWK_normal, 240, 240, 150, 150)
+{
+int bsx, bsy, spx, spy;
+
+// On definit la taille a partir de la taille par defaut des composantes 
+// PIApplicationPrefCompSize(bsx, bsy);
+par->PrefCompSz(bsx, bsy);
+spx = bsx/10;
+spy = bsy/4;
+
+int wszx = 5*spx+3.5*bsx; 
+int wszy = 6*bsy+8*spy;
+SetSize(wszx, wszy);
+
+int cpx = spx*2;
+int cpy = spy*2;
+int csx = cpx;
+int csy = cpy;
+mLab[0] = new PILabel(this, "X Min Max", 1.25*bsx, bsy, cpx, cpy);
+cpy += spy+bsy; 
+mLab[1] = new PILabel(this, "Y Min Max", 1.25*bsx, bsy, cpx, cpy);
+mLab[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+mLab[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+
+cpy = spy*2;
+cpx += 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");
+cpy += spy+bsy; 
+mText[1] = new PIText(this, "y_min_max", 2.25*bsx, bsy, cpx, cpy);
+mText[1]->SetText("-1.0  1.0");
+mText[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+mText[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+
+cpx = spx+0.25*bsx;
+cpy += spy+bsy; 
+mCkb[0] = new PICheckBox(this,"X-RtoL", 2000, bsx, bsy, cpx, cpy);
+cpx += spx+bsx; 
+mCkb[1] = new PICheckBox(this,"Y-UpDn", 2001, bsx, bsy, cpx, cpy);
+cpx += spx+bsx; 
+mCkb[2] = new PICheckBox(this,"Grid", 2002, bsx, bsy, cpx, cpy);
+mCkb[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+mCkb[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+mCkb[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+cpy += spy+bsy; 
+cpx = spx+0.25*bsx;
+mCkb[3] = new PICheckBox(this,"LogScale-X", 2003, bsx*1.5, bsy, cpx, cpy);
+cpx += bsx*1.5+3*spx;
+mCkb[4] = new PICheckBox(this,"LogScale-Y", 2004, bsx*1.5, bsy, cpx, cpy);
+mCkb[3]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+mCkb[4]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+
+cpy += spy+bsy; 
+cpx = spx+0.25*bsx;
+mBut[0] = new PIButton(this, "GetAxesInfo", 2100, bsx*1.5, bsy, cpx, cpy);
+cpx += bsx*1.5+3*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);
+mBut[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+
+cpy += spy+bsy; 
+cpx = spx+0.25*bsx;
+mBut[2] = new PIButton(this, "SetAxes", 2500, bsx*1.5, bsy, cpx, cpy);
+cpx += bsx*1.5+3*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);
+mBut[3]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
+
+/*
+int offy = cpy+bsy+spy*2;
+
+//  Option-Menu  Marker, Line, couleur, etc...
+cpx = 2*spx;
+cpy += 3*spy+bsy;
+
+int bsyo = bsy;  
+int spyo = spy; 
+bsy = 0.85*bsy;   spy = 0.85*spy;
+
+mOpt[0] = new PIOptMenu(this, "bwt-opt-0", bsx*1.75, bsy, cpx, cpy);
+mOpt[0]->AppendItem("Def.Col", 100);
+mOpt[0]->AppendItem("Black", 101);
+mOpt[0]->AppendItem("White", 102);
+mOpt[0]->SetValue(100);
+mOpt[0]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
+
+cpx += spx+1.75*bsx; 
+mOpt[1] = new PIOptMenu(this, "bwt-opt-1", bsx*1.75, bsy, cpx, cpy);
+mOpt[1]->AppendItem("No.CMap", 200);
+*/
+
+
+cwaxet = this;
+}
+
+/* --Methode-- */
+PIAxesTools::~PIAxesTools()
+{
+if (cwaxet == this)  cwaxet = NULL;
+int i;
+for(i=0; i<2; i++)  {
+  delete mLab[i];
+  delete mBut[i];
+  delete mText[i];
+}
+for(i=0; i<4; i++)  delete mBut[i];
+for(i=0; i<5; i++)  delete mCkb[i];
+
+}
+
+
+/* --Methode-- */
+void PIAxesTools::Show()
+{
+PIWindow::Show();
+UpdateAxesInfoFromScWdg();
+return;
+}
+
+/* --Methode-- */
+void PIAxesTools::UpdateAxesInfoFromScWdg()
+{
+char buff[128];
+if (curscdwdg != NULL) {
+  PIScDrawWdg* scd = curscdwdg;
+  sprintf(buff, "%g  %g", scd->XMin(), scd->XMax());
+  mText[0]->SetText(buff);
+  sprintf(buff, "%g  %g", scd->YMin(), scd->YMax());
+  mText[1]->SetText(buff);
+  int xa, ya;
+  scd->GetAxesConfig(xa, ya);
+  if (xa & kAxeDirRtoL) mCkb[0]->SetState(true);
+  if (ya & kAxeDirUpDown)  mCkb[1]->SetState(true);
+  if (scd->GetAxesFlags() & kGridOn) mCkb[2]->SetState(true);
+  mCkb[3]->SetState(scd->isLogScaleX());
+  mCkb[4]->SetState(scd->isLogScaleY());
+  }
+else {
+  mText[0]->SetText("-1.0  1.0");
+  mText[1]->SetText("-1.0  1.0");
+  mCkb[0]->SetState(false);
+  mCkb[1]->SetState(false);
+  mCkb[2]->SetState(false);
+  mCkb[3]->SetState(false);
+  mCkb[4]->SetState(false);
+  }
+
+return;
+}
+
+void PIAxesTools::SetAxes(bool refr)
+{
+  double xmin, xmax, ymin, ymax;
+  int axrl = kAxeDirLtoR;
+  int ayud = kAxeDirDownUp;
+  PIScDrawWdg* scd = curscdwdg;
+  if ( scd == NULL )  return;
+  if (mText[0]->GetText().length() > 1) {
+    xmin = -1.;   xmax = 1.;
+    sscanf(mText[0]->GetText().c_str(), "%lg %lg" , &xmin, &xmax);
+  }
+  else {
+    xmin = scd->XMin();
+    xmax = scd->XMax();
+  }
+  if (mText[1]->GetText().length() > 1) {
+    ymin = -1.;   ymax = 1.;
+    sscanf(mText[1]->GetText().c_str(), "%lg %lg" , &ymin, &ymax);
+  }
+  else {
+    ymin = scd->YMin();
+    ymax = scd->YMax();
+  }      
+  if (mCkb[0]->GetState())  axrl = kAxeDirRtoL ;
+  if (mCkb[1]->GetState())  ayud = kAxeDirUpDown;
+  scd->SetLimits(xmin, xmax, ymin, ymax, axrl, ayud);
+  unsigned int flags = scd->GetAxesFlags();
+  if (mCkb[2]->GetState()) scd->SetAxesFlags(flags | kGridOn);
+  else  scd->SetAxesFlags(flags & ~kGridOn);
+  scd->SetLogScale(mCkb[3]->GetState(), mCkb[4]->GetState() );
+
+  if (refr) scd->Refresh();
+  return;
+}
+
+/* --Methode-- */
+void PIAxesTools::Process(PIMessage msg, PIMsgHandler* /*sender*/, void* /*data*/)
+{
+
+msg = UserMsg(msg);
+
+
+switch (msg) {
+  case 2100 :
+    UpdateAxesInfoFromScWdg();
+    break;
+
+  case 2200 :
+    if ( curscdwdg != NULL ) { 
+      curscdwdg->UpdateLimits();
+      UpdateAxesInfoFromScWdg();
+    }
+    /*
+      PIDraw3DWdg* dr3 = dynamic_cast<PIDraw3DWdg *>(curscdwdg);
+      if (dr3 != NULL) dr3->Update3DView();
+    */
+    break;
+
+  case 2500 :
+    SetAxes(true);
+    break;
+
+  case 2777 :
+    Hide();
+    break;
+
+  default :
+    break;
+  }
+
+return;
+}
+
+
+
+
+
Index: /trunk/SophyaPI/PI/piaxestools.h
===================================================================
--- /trunk/SophyaPI/PI/piaxestools.h	(revision 1589)
+++ /trunk/SophyaPI/PI/piaxestools.h	(revision 1589)
@@ -0,0 +1,48 @@
+// This may look like C code, but it is really -*- C++ -*-
+// Outils de manipulation des PIDrawer  R. Ansari 06/98
+// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
+
+#ifndef PIAXESTOOLS_H_SEEN
+#define PIAXESTOOLS_H_SEEN
+
+#include "pisysdep.h"
+#include PISTDWDG_H
+#include PIOPTMENU_H
+#include PIWIN_H
+#include PIAPP_H
+#include "piscdrawwdg.h"
+
+// ---------- fenetre de dialogue pour modifs limites et attributs d'axe ----------
+// --------------------------------------------------------------------------------
+
+
+class PIAxesTools : public PIWindow 
+{
+public :
+  PIAxesTools(PIApplication* par);
+  ~PIAxesTools();
+  virtual void  Show();
+
+  static PIAxesTools* curlutw;
+  static void ShowPIAxesTools();
+  static void HidePIAxesTools();
+  static void SetCurrentScDrawWdg(PIScDrawWdg* csw);
+  static PIScDrawWdg* GetCurrentScDrawWdg();
+
+protected:
+  virtual void  UpdateAxesInfoFromScWdg();
+  virtual void  SetAxes(bool refr);
+  virtual void  Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
+
+private:
+// Pour changer les axes
+  PILabel* mLab[2];
+  PIButton* mBut[4];
+  PIText* mText[2];
+  PICheckBox* mCkb[5];
+//
+  static PIScDrawWdg* curscdwdg;
+  static PIAxesTools* cwaxet;
+};
+
+#endif
Index: /trunk/SophyaPI/PI/pidrawer.cc
===================================================================
--- /trunk/SophyaPI/PI/pidrawer.cc	(revision 1588)
+++ /trunk/SophyaPI/PI/pidrawer.cc	(revision 1589)
@@ -321,5 +321,5 @@
   mGrUC->SetUCS(xMin, xMax, yMin, yMax, aXFlg, aYFlg);
   if (aXlog || aYlog) mGrUC->SetLogScale(aXlog, aYlog);
-  if (mFgHighLight) mGrUC->SelGOMode(PI_GOInvert);
+  if (mFgHighLight) mGrUC->SelGOMode(PI_GOInvert); // $CHECK$ A changer , Reza 07/2001
   return(mGrUC);
 }
Index: /trunk/SophyaPI/PI/pidrwtools.cc
===================================================================
--- /trunk/SophyaPI/PI/pidrwtools.cc	(revision 1588)
+++ /trunk/SophyaPI/PI/pidrwtools.cc	(revision 1589)
@@ -17,5 +17,4 @@
 //	Classe de fenêtre de dialogue permettant de modifier interactivement
 //	Les attributs graphique des "Drawer" attachés aux "PIBaseWdg".
-//	Permet aussi de modifier les attributs d'axes pour les "PIScDrawWdg"
 //--
 // Links	Parents
@@ -103,58 +102,13 @@
 
 int wszx = 5*spx+3.5*bsx; 
-int wszy = (8+3*0.85)*(spy+bsy);
+int wszy = (1+5*0.85)*bsy+(6+5*0.85)*spy;
 SetSize(wszx, wszy);
 
-int cpx = spx*2;
-int cpy = spy*2;
-int csx = cpx;
-int csy = cpy;
-mLab[0] = new PILabel(this, "X Min Max", 1.25*bsx, bsy, cpx, cpy);
-cpy += spy+bsy; 
-mLab[1] = new PILabel(this, "Y Min Max", 1.25*bsx, bsy, cpx, cpy);
-mLab[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mLab[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-cpy = spy*2;
-cpx += 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");
-cpy += spy+bsy; 
-mText[1] = new PIText(this, "y_min_max", 2.25*bsx, bsy, cpx, cpy);
-mText[1]->SetText("-1.0  1.0");
-mText[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mText[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-cpx = spx+0.25*bsx;
-cpy += spy+bsy; 
-mCkb[0] = new PICheckBox(this,"X-RtoL", 2000, bsx, bsy, cpx, cpy);
-cpx += spx+bsx; 
-mCkb[1] = new PICheckBox(this,"Y-UpDn", 2001, bsx, bsy, cpx, cpy);
-cpx += spx+bsx; 
-mCkb[2] = new PICheckBox(this,"Grid", 2002, bsx, bsy, cpx, cpy);
-mCkb[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mCkb[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mCkb[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-cpy += spy+bsy; 
-cpx = spx+0.25*bsx;
-mCkb[3] = new PICheckBox(this,"LogScale-X", 2003, bsx*1.5, bsy, cpx, cpy);
-cpx += bsx*1.5+3*spx;
-mCkb[4] = new PICheckBox(this,"LogScale-Y", 2004, bsx*1.5, bsy, cpx, cpy);
-mCkb[3]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mCkb[4]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-cpy += spy+bsy; 
-cpx = spx+0.25*bsx;
-mBut[0] = new PIButton(this, "SetAxes", 2600, bsx*1.5, bsy, cpx, cpy);
-cpx += bsx*1.5+3*spx;
-mBut[1] = new PIButton(this, "AutoLimits", 2700, bsx*1.5, bsy, cpx, cpy);
-mBut[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mBut[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-int offy = cpy+bsy+spy*2;
+//int cpx = spx*2;
+//int offy = cpy+bsy+spy*2;
 
 //  Option-Menu  Marker, Line, couleur, etc...
-cpx = 2*spx;
-cpy += 3*spy+bsy;
+int cpx = 2*spx;
+int cpy = 2*spy;
 
 int bsyo = bsy;  
@@ -249,16 +203,8 @@
 mOpt[4] = new PIOptMenu(this, "bwt-opt-4", bsx*1.75, bsy, cpx, cpy);
 mOpt[4]->AppendItem("Def.Font", 500);
-mOpt[4]->AppendItem("Normal-Font", 511);
-mOpt[4]->AppendItem("Bold", 512);
-mOpt[4]->AppendItem("Ital", 513);
-mOpt[4]->AppendItem("Small-Font", 521);
-mOpt[4]->AppendItem("Small-Bold", 522);
-mOpt[4]->AppendItem("Small-Ital", 523);
-mOpt[4]->AppendItem("Big-Font", 531);
-mOpt[4]->AppendItem("Big-Bold", 532);
-mOpt[4]->AppendItem("Big-Ital", 533);
-mOpt[4]->AppendItem("Huge-Font", 541);
-mOpt[4]->AppendItem("Huge-Bold", 542);
-mOpt[4]->AppendItem("Huge-Ital", 543);
+mOpt[4]->AppendItem("Courier", 501);
+mOpt[4]->AppendItem("Helvetica", 502);
+mOpt[4]->AppendItem("Times", 503);
+mOpt[4]->AppendItem("Symbol-Font", 504);
 mOpt[4]->SetValue(500);
 mOpt[4]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
@@ -280,4 +226,24 @@
 
 cpx = 2*spx;
+cpy += spy+bsy;
+mOpt[6] = new PIOptMenu(this, "bwt-opt-6", bsx*1.75, bsy, cpx, cpy);
+mOpt[6]->AppendItem("Def.FontAtt", 700);
+mOpt[6]->AppendItem("Roman-Font", 701);
+mOpt[6]->AppendItem("Bold-Font", 702);
+mOpt[6]->AppendItem("Italic-Font", 703);
+mOpt[6]->AppendItem("BoldItalic", 704);
+mOpt[6]->SetValue(700);
+mOpt[6]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
+
+cpx += spx+1.75*bsx; 
+mOpt[7] = new PIOptMenu(this, "bwt-opt-7", bsx*1.75, bsy, cpx, cpy);
+mOpt[7]->AppendItem("Def.FontSz", 800);
+mOpt[7]->AppendItem("Tiny FontSz", 801);
+mOpt[7]->AppendItem("Small FontSz", 802);
+mOpt[7]->AppendItem("Normal FontSz", 803);
+mOpt[7]->AppendItem("Big FontSz", 804);
+mOpt[7]->AppendItem("Huge FontSz", 805);
+
+cpx = 2*spx;
 cpy += spy+bsyo;
 bsy = bsyo; spy = spyo;
@@ -300,12 +266,15 @@
 mButcf[1]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
 
-cpx = spx+0.25*bsx;;
-cpy += spy+bsy;
-mButcf[2] = new PIButton(this, "Refresh", 3000, bsx*1.5, bsy, cpx, cpy);
+cpx = (wszx-3.2*bsx-2*spx)/2;
+cpy += 2*spy+bsy;
+mButcf[2] = new PIButton(this, "Refresh", 3100, bsx*1.2, bsyo, cpx, cpy);
 mButcf[2]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
-cpx += bsx*1.5+3*spx;
-mButcf[3] = new PIButton(this, "Dismiss", 3777, bsx*1.5, bsy, cpx, cpy);
-mButcf[2]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
+cpx += bsx*1.2+spx;
+mButcf[3] = new PIButton(this, "Select", 3200, bsx*0.8, bsyo, cpx, cpy);
+mButcf[3]->ActivatePress(true);
 mButcf[3]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
+cpx += bsx*0.8+spx;
+mButcf[4] = new PIButton(this, "Dismiss", 3777, bsx*1.2, bsyo, cpx, cpy);
+mButcf[4]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
 
 cwdrwt = this;
@@ -318,16 +287,7 @@
 if (cwdrwt == this)  cwdrwt = NULL;
 int i;
-for(i=0; i<2; i++)
-  {
-  delete mLab[i];
-  delete mBut[i];
-  delete mText[i];
-  delete mButcf[i];
-  }
-
-for(i=0; i<5; i++) delete mCkb[i];
-for(i=0; i<3; i++) delete mButcf[i]; 
-delete mButcf[3];
-for(i=0; i<6; i++)  delete mOpt[i];
+for(i=0; i<5; i++) delete mButcf[i]; 
+for(i=0; i<2; i++) delete mButdr[i]; 
+for(i=0; i<8; i++)  delete mOpt[i];
 for(i=0; i<2; i++)  delete mCasc[i];
 delete mNlb;
@@ -353,7 +313,10 @@
                               PI_ThinDottedLine, PI_DottedLine, PI_ThickDottedLine };
 
-static PIFontAtt fntatt[4] = { PI_NotDefFontAtt, PI_RomanFont, PI_BoldFont, PI_ItalicFont };
-static PIFontSize fntsz[5] = { PI_NotDefFontSize, PI_NormalSizeFont, PI_SmallSizeFont, 
-                               PI_BigSizeFont, PI_HugeSizeFont };
+static PIFontName fntname[5] = { PI_DefaultFont, PI_CourierFont, PI_HelveticaFont, 
+				 PI_TimesFont, PI_SymbolFont};
+static PIFontAtt fntatt[5] = { PI_NotDefFontAtt, PI_RomanFont, PI_BoldFont, 
+			       PI_ItalicFont, PI_BoldItalicFont };
+static PIFontSize fntsz[6] = { PI_NotDefFontSize, PI_TinySizeFont, PI_SmallSizeFont, 
+			       PI_NormalSizeFont, PI_BigSizeFont, PI_HugeSizeFont };
 
 /* --Methode-- */
@@ -361,43 +324,16 @@
 {
 PIWindow::Show();
-char buff[92]; 
+
 mNDr = 0;
-
 if (mCurBW != NULL)  { 
   mNDr = mCurBW->NbDrawers()-1;
   if (mNDr < 0)  mNDr = 0;
   }
+else mNDr = 0;
+char buff[32];
+sprintf(buff,"%d", mNDr);
+mNlb->SetLabel(buff);  
 
 UpdateAttFromDrawer();
-
-mCkb[0]->SetState(false);
-mCkb[1]->SetState(false);
-mCkb[2]->SetState(false);
-mCkb[3]->SetState(false);
-mCkb[4]->SetState(false);
-
-if ((mCurBW != NULL) && ( mCurBW->kind() == PIScDrawWdg::ClassId ) ) {
-  PIScDrawWdg* scd = ( PIScDrawWdg*)mCurBW;
-  sprintf(buff, "%g  %g", scd->XMin(), scd->XMax());
-  mText[0]->SetText(buff);
-  sprintf(buff, "%g  %g", scd->YMin(), scd->YMax());
-  mText[1]->SetText(buff);
-  int xa, ya;
-  scd->GetAxesConfig(xa, ya);
-  if (xa & kAxeDirRtoL) mCkb[0]->SetState(true);
-  if (ya & kAxeDirUpDown)  mCkb[1]->SetState(true);
-  if (scd->GetAxesFlags() & kGridOn) mCkb[2]->SetState(true);
-  mCkb[3]->SetState(scd->isLogScaleX());
-  mCkb[4]->SetState(scd->isLogScaleY());
-  }
-else {
-  mText[0]->SetText("-1.0  1.0");
-  mText[1]->SetText("-1.0  1.0");
-  }
-sprintf(buff, "%d", mNDr);
-mNlb->SetLabel(buff);
-
-
-
 return;
 }
@@ -415,4 +351,6 @@
 mOpt[4]->SetValue(500);
 mOpt[5]->SetValue(600);
+mOpt[6]->SetValue(700);
+mOpt[7]->SetValue(800);
 
 if ( (mCurBW != NULL) && (mCurBW->NbDrawers() > 0) ) 
@@ -420,5 +358,5 @@
 
 if (!dr)  return;
-int jj,kk;
+int ii,jj,kk;
 PIColors fc = dr->GetFgColAtt();
 for(kk=0; kk<17; kk++) 
@@ -436,14 +374,21 @@
 if (kk%2 == 0) kk++;
 mOpt[3]->SetValue(400+kk);
+PIFontName fnm = dr->GetFontName();
 PIFontAtt fat = dr->GetFontAtt();
 PIFontSize fsz = dr->GetFontSz();
-for(kk=0; kk<4; kk++)
+for(ii=0; ii<5; ii++)
+  if (fnm ==  fntname[ii]) break;
+for(kk=0; kk<5; kk++)
   if (fat ==  fntatt[kk]) break;
 for(jj=0; jj<5; jj++) 
   if (fsz == fntsz[jj])  break;
 
-if (kk >= 4) kk = 3;
-if (jj >= 5) jj = 4;
-mOpt[4]->SetValue(500+jj*10+kk);
+if (ii >= 5) ii = 1;
+if (kk >= 5) kk = 1;
+if (jj >= 6) jj = 3;
+mOpt[4]->SetValue(500+ii);
+mOpt[6]->SetValue(700+kk);
+mOpt[7]->SetValue(800+jj);
+
 PILineAtt lat = dr->GetLineAtt();
 for(kk=0; kk<10; kk++)
@@ -454,122 +399,89 @@
 
 /* --Methode-- */
+void PIDrwTools::SetGraphicAtt(bool fgref)
+{
+  if (mCurBW == NULL)   return;
+  PIDrawer* drw = mCurBW->GetDrawer(mNDr);
+  if (drw == NULL)  return;
+  int k,ii,jj,kk;
+  k = mOpt[0]->GetValue()-100;
+  if ( (k < 0) || (k > 16) )  k = 0;
+  drw->SetColAtt(cols[k]);
+  k = mOpt[1]->GetValue()-200;
+  if (k == 0) drw->SetColMapId(CMAP_OTHER);
+  else drw->SetColMapId(PIColorMap::GetStandardColorMapId(k-1));
+  k =  mOpt[2]->GetValue()-300;
+  if ( (k < 0) || (k > 11) )  k = 0;
+  kk =  mOpt[3]->GetValue()-400;
+  if ( (kk < 1) || (kk > 27) )  kk = 1;
+  //  if ((k > 0) && (kk < 3)) {  // Protection contre Marker taille 1 autre que Dotmarker
+  //    mOpt[3]->SetValue(403);
+  //   kk = 3;
+  //  }
+  drw->SetMarkerAtt(kk, mrk[k]);
+  ii =  (mOpt[4]->GetValue()-500);
+  jj =  (mOpt[6]->GetValue()-700);
+  kk =  (mOpt[7]->GetValue()-800);
+  drw->SetFont(fntname[ii], fntsz[kk], fntatt[jj]);
+
+  k =  mOpt[5]->GetValue()-600;
+  if ( (k < 0) || (k > 9) )  k = 0;
+  drw->SetLineAtt(line[k]);
+  if (fgref)  mCurBW->Refresh();
+  else drw->Refresh();
+}
+
+/* --Methode-- */
 void PIDrwTools::Process(PIMessage msg, PIMsgHandler* /*sender*/, void* /*data*/)
 {
-
-msg = UserMsg(msg);
-if (msg == 3777)  { Hide(); return; }
-
-if (mCurBW == NULL)   return;
-
-char strg[64];
-int k, kk, kkk;
-
-switch (msg) {
-
-  case 2600 :
-    {
-    double xmin, xmax, ymin, ymax;
-    int axrl = kAxeDirLtoR;
-    int ayud = kAxeDirDownUp;
-    PIScDrawWdg* scd=NULL;
-    scd = dynamic_cast<PIScDrawWdg*>(mCurBW);
-    if ( scd == NULL ) {
-      cerr << "PIDrwTools: SetAxes applicable to PIScDrawWdg only ! " << endl;
-      return;
+  char strg[64];
+
+  PIMessage mod = ModMsg(msg);
+  msg = UserMsg(msg);
+
+  switch (msg) {
+    case 2800 :
+      UpdateAttFromDrawer();
+      break;
+
+    case 2900 :
+      SetGraphicAtt(false);
+      break;
+
+    case 3100 :
+      SetGraphicAtt(true);
+      break;
+
+    case 3200 :
+      if ((mCurBW != NULL) && (mCurBW->GetDrawer(mNDr) != NULL) ) {
+	if (mod == PIMsg_Press)  mCurBW->GetDrawer(mNDr)->HighLight(true);
+	else  mCurBW->GetDrawer(mNDr)->HighLight(false);
       }
-    if (mText[0]->GetText().length() > 1) {
-      xmin = -1.;   xmax = 1.;
-      sscanf(mText[0]->GetText().c_str(), "%lg %lg" , &xmin, &xmax);
-    }
-    else {
-      xmin = scd->XMin();
-      xmax = scd->XMax();
-    }
-    if (mText[1]->GetText().length() > 1) {
-      ymin = -1.;   ymax = 1.;
-      sscanf(mText[1]->GetText().c_str(), "%lg %lg" , &ymin, &ymax);
-    }
-    else {
-      ymin = scd->YMin();
-      ymax = scd->YMax();
-    }      
-    if (mCkb[0]->GetState())  axrl = kAxeDirRtoL ;
-    if (mCkb[1]->GetState())  ayud = kAxeDirUpDown;
-    scd->SetLimits(xmin, xmax, ymin, ymax, axrl, ayud);
-    unsigned int flags = scd->GetAxesFlags();
-    if (mCkb[2]->GetState()) scd->SetAxesFlags(flags | kGridOn);
-    else  scd->SetAxesFlags(flags & ~kGridOn);
-    scd->SetLogScale(mCkb[3]->GetState(), mCkb[4]->GetState() );
-      
-    //    else mCurBW->SetDefaultDrawerLimits(xmin, xmax, ymin, ymax, axrl, ayud);
-    mCurBW->Refresh();
-    }
-    break;
-
-  case 2700 :
-    {
-    PIScDrawWdg* scd=NULL;
-    scd = dynamic_cast<PIScDrawWdg*>(mCurBW);
-    if ( scd != NULL ) scd->UpdateLimits();
-    else {
-      PIDraw3DWdg* dr3 = dynamic_cast<PIDraw3DWdg *>(mCurBW);
-      if (dr3 != NULL) dr3->Update3DView();
-    }
-    }
-    break;
-
-  case 2800 :
-    UpdateAttFromDrawer();
-    break;
-
-  case 2900 :
-  case 3000 :
-    {
-    PIDrawer* drw = mCurBW->GetDrawer(mNDr);
-    if (drw == NULL)  return;
-    k = mOpt[0]->GetValue()-100;
-    if ( (k < 0) || (k > 16) )  k = 0;
-    drw->SetColAtt(cols[k]);
-    k = mOpt[1]->GetValue()-200;
-    if (k == 0) drw->SetColMapId(CMAP_OTHER);
-    else drw->SetColMapId(PIColorMap::GetStandardColorMapId(k-1));
-    k =  mOpt[2]->GetValue()-300;
-    if ( (k < 0) || (k > 11) )  k = 0;
-    kk =  mOpt[3]->GetValue()-400;
-    if ( (kk < 1) || (kk > 27) )  kk = 1;
-    if ((k > 0) && (kk < 3)) {  // Protection contre Marker taille 1 autre que Dotmarker
-      mOpt[3]->SetValue(403);
-      kk = 3;
-    }
-    drw->SetMarkerAtt(kk, mrk[k]);
-    k =  (mOpt[4]->GetValue()-500);
-    kk = k/10;   kkk = k%10;
-    drw->SetFontAtt(fntsz[kk], fntatt[kkk]);
-    k =  mOpt[5]->GetValue()-600;
-    if ( (k < 0) || (k > 9) )  k = 0;
-    drw->SetLineAtt(line[k]);
-    if (msg == 2900) drw->Refresh();
-    else mCurBW->Refresh();
-    }
-    break;        
-
-  case 3501 :
-  case 3502 :
-    if (msg == 3501) {  mNDr--;   if (mNDr < 0)  mNDr = 0; }
-    else { mNDr++;  if (mNDr >= mCurBW->NbDrawers())  mNDr--; }
-    sprintf(strg, "%d", mNDr);
-    mNlb->SetLabel(strg);
-    /*   On ne change pas les options choisies   Reza+cmv 2/10/98  
-    mOpt[0]->SetValue(100);
-    mOpt[1]->SetValue(200);
-    mOpt[2]->SetValue(300);
-    mOpt[3]->SetValue(405);
-    mOpt[4]->SetValue(500);
-    mOpt[5]->SetValue(600);
+      break;
+
+    case 3777 :
+      Hide();
+      break;
+
+    case 3501 :
+    case 3502 :
+      if (mCurBW) {
+	if (msg == 3501) {  mNDr--;   if (mNDr < 0)  mNDr = 0; }
+	else { mNDr++;  if (mNDr >= mCurBW->NbDrawers())  mNDr--; }
+	sprintf(strg, "%d", mNDr);
+	mNlb->SetLabel(strg);
+      }
+      /*   On ne change pas les options choisies   Reza+cmv 2/10/98  
+	   mOpt[0]->SetValue(100);
+	   mOpt[1]->SetValue(200);
+	   mOpt[2]->SetValue(300);
+	   mOpt[3]->SetValue(405);
+	   mOpt[4]->SetValue(500);
+	   mOpt[5]->SetValue(600);
     */
-    break;
-
-  default :
-    break;
+      break;
+
+    default :
+      break;
   }
 
@@ -577,2 +489,4 @@
 }
 
+
+
Index: /trunk/SophyaPI/PI/pidrwtools.h
===================================================================
--- /trunk/SophyaPI/PI/pidrwtools.h	(revision 1588)
+++ /trunk/SophyaPI/PI/pidrwtools.h	(revision 1589)
@@ -32,18 +32,14 @@
 protected:
   virtual void  UpdateAttFromDrawer();
+  virtual void  SetGraphicAtt(bool fgref);
   virtual void  Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
 
 private:
-// Pour changer les axes
-  PILabel* mLab[2];
-  PIButton* mBut[2];
-  PIText* mText[2];
-  PICheckBox* mCkb[5];
 // Pour couleur, fontes, etc 
-  PIOptMenu* mOpt[6];
+  PIOptMenu* mOpt[8];
   PIMenu* mCasc[5];
   PILabel* mNlb;
   PIButton* mButdr[2];
-  PIButton* mButcf[4];
+  PIButton* mButcf[5];
   int mNDr;
   int mtyp, msz;
Index: /trunk/SophyaPI/PI/piscdrawwdg.cc
===================================================================
--- /trunk/SophyaPI/PI/piscdrawwdg.cc	(revision 1588)
+++ /trunk/SophyaPI/PI/piscdrawwdg.cc	(revision 1589)
@@ -9,4 +9,5 @@
 #include "piscdrawwdg.h"
 #include "pidrwtools.h"
+#include "piaxestools.h"
 #include "parradapter.h"
 
@@ -110,4 +111,7 @@
   if (mTrW)  delete mTrW;
   if (mInfoW) delete mInfoW;
+  if (PIAxesTools::GetCurrentScDrawWdg() == this) 
+    PIAxesTools::SetCurrentScDrawWdg(NULL);
+  // Pour PIDrwTools, c'est fait par le destructeur de PIBaseWdgGen
 }
 
@@ -125,4 +129,8 @@
     PIDrwTools::ShowPIDrwTools();   // Fentre axes et options de trace
     }
+  else if (key == 'A' || key == 'a') { 
+    PIAxesTools::SetCurrentScDrawWdg(this);
+    PIAxesTools::ShowPIAxesTools();  // Fenetre de gestion des axes
+  }
   else if (key == 'I' || key == 'i') UpdateInfoWindow();  // Fenetre Text-Info 
   }
@@ -316,4 +324,5 @@
   Send(Msg(), PIMsg_Active);
   PIDrwTools::SetCurrentBaseWdg(this);
+  PIAxesTools::SetCurrentScDrawWdg(this);
 }
 
@@ -393,4 +402,5 @@
   Send(Msg(), PIMsg_Active);
   PIDrwTools::SetCurrentBaseWdg(this);
+  PIAxesTools::SetCurrentScDrawWdg(this);
 }
 
@@ -454,4 +464,5 @@
   Send(Msg(), PIMsg_Active);
   PIDrwTools::SetCurrentBaseWdg(this);
+  PIAxesTools::SetCurrentScDrawWdg(this);
 }
 
