Index: /trunk/SophyaPI/PI/pidrawer.cc
===================================================================
--- /trunk/SophyaPI/PI/pidrawer.cc	(revision 1567)
+++ /trunk/SophyaPI/PI/pidrawer.cc	(revision 1568)
@@ -49,4 +49,6 @@
   mDndfg = false;  // Pour controle de l'appel de Detach() si delete
 
+  mFgHighLight = false;  // Flag de control d'affichage en mode HighLight
+
   mFCol = mBCol = PI_NotDefColor;
   mLAtt = PI_NotDefLineAtt;
@@ -56,4 +58,6 @@
   mMrk = PI_NotDefMarker;
   mCmapid = CMAP_OTHER;
+  mRevCmap = false;
+  mFName = PI_DefaultFont;
 }
 
@@ -152,4 +156,7 @@
 //	Cette méthode doit calculer les limites (X/Y Min-Max) préferées par l'objet
 //	et doit appeler "SetLimits()". L'implementation par défaut ne fait rien.
+//  void  HighLight(bool fgh)
+//      Rafraichit le dessin du PIDrawer sur tous les PIBaseWdg auxquel il est attaché,
+//	en mode "HighLight" si "fgh==true", en mode normal sinon.
 //  void  AppendTextInfo(string& info, double xmin, double ymin, double xmax, double ymax)
 //	Méthode qui met à jour la chaîne "info", avec les informations (textuelles) de 
@@ -171,4 +178,11 @@
          (*it).wdg->CallDrawer((*it).id);
 
+}
+void
+PIDrawer::HighLight(bool fgh)
+{
+  mFgHighLight = fgh;
+  Refresh();
+  mFgHighLight = false;
 }
 
@@ -182,9 +196,11 @@
 //	Modifie l'attribut type de ligne
 // void  SetFontAtt(PIFontSize fsz=PI_NotDefFontSize, PIFontAtt fat=PI_NotDefFontAtt)
-//	L'attribut Type de fonte 
+//	Selection taille et attribut de fonte 
+// void  SetFont(PIFontName fn, PIFontSize fsz=PI_NotDefFontSize, PIFontAtt fat=PI_NotDefFontAtt)
+//	Selection de type, taile et attribut de fonte
 // void  SetMarkerAtt(int sz=-1, PIMarker mrk=PI_NotDefMarker)
 //	L'attribut type et taille de marker
-// void  SetColMapId(CMapId cid=CMAP_OTHER)
-//	L'attribut choix de la table de couleurs
+// void  SetColMapId(CMapId cid=CMAP_OTHER, bool rev=false)
+//	L'attribut choix de la table de couleurs, et son flag d'inversion
 // void  SelGraAtt(PIGraphicUC* g)
 //	Modifie les attributs graphiques de "g" à partir des attributs courant
@@ -207,4 +223,7 @@
 // CMapId GetColMapId()
 //	Renvoie l'attribut de type de table de couleur
+// CMapId GetColMapId(bool & rev)
+//	Renvoie l'attribut de type de table de couleur, 
+//	et le flag d'inversion de la table de couleur
 //--
 
@@ -230,4 +249,12 @@
 
 void 
+PIDrawer::SetFont(PIFontName fn, PIFontSize fsz, PIFontAtt fat)
+{
+  mFName = fn;
+  mFSz = fsz;
+  mFAtt = fat;
+}
+
+void 
 PIDrawer::SetMarkerAtt(int sz, PIMarker mrk)
 {
@@ -237,7 +264,8 @@
 
 void 
-PIDrawer::SetColMapId(CMapId cid)
+PIDrawer::SetColMapId(CMapId cid, bool rev)
 {
   mCmapid = cid;
+  mRevCmap = rev;
 }
 
@@ -248,5 +276,11 @@
   if (mBCol != PI_NotDefColor)    g->SelBackground(mBCol);
   if (mLAtt != PI_NotDefLineAtt)  g->SelLine(mLAtt);
-  if ( (mFSz != PI_NotDefFontSize) || (mFAtt != PI_NotDefFontAtt) )
+  if (mFName != PI_DefaultFont) {
+    PIFont myfont(mFName);
+    myfont.SetFontAtt(mFAtt);
+    myfont.SetFontSz(mFSz);
+    g->SelFont(myfont);
+  }
+  else if ( (mFSz != PI_NotDefFontSize) || (mFAtt != PI_NotDefFontAtt)  )
                                   g->SelFont(mFSz, mFAtt);
   if ( (mMrk != PI_NotDefMarker) || (mMSz >= 0) )
@@ -287,4 +321,5 @@
   mGrUC->SetUCS(xMin, xMax, yMin, yMax, aXFlg, aYFlg);
   if (aXlog || aYlog) mGrUC->SetLogScale(aXlog, aYlog);
+  if (mFgHighLight) mGrUC->SelGOMode(PI_GOInvert);
   return(mGrUC);
 }
@@ -647,7 +682,8 @@
 void  PIElDrawer::Draw(PIGraphicUC* g, double /*xmin*/, double /*ymin*/, double /*xmax*/, double /*ymax*/)
 {
+SelGraAtt(g);   // DrawAxes change certains attributs graphiques
 DrawAxes(g);   // Trace des axes 
-
 SelGraAtt(g);   // DrawAxes change certains attributs graphiques
+
 if (mFSz == PI_NotDefFontSize) g->SelFont(PI_NormalSizeFont);
 // Trace des titres 
Index: /trunk/SophyaPI/PI/pidrawer.h
===================================================================
--- /trunk/SophyaPI/PI/pidrawer.h	(revision 1567)
+++ /trunk/SophyaPI/PI/pidrawer.h	(revision 1568)
@@ -45,4 +45,7 @@
   virtual void       UpdateLimits();   // Calcule et change les limites  
 
+  // Gestion d'affichage en mode HighLight : fgh=true -> highlight =false -> normal
+  virtual void	     HighLight(bool fgh);  
+
   inline double      XMin() const {return xMin;}
   inline double      XMax() const {return xMax;}
@@ -67,6 +70,8 @@
   virtual void       SetFontAtt(PIFontSize fsz=PI_NotDefFontSize,
                                 PIFontAtt fat=PI_NotDefFontAtt);
+  virtual void	     SetFont(PIFontName fn, PIFontSize fsz=PI_NotDefFontSize,
+			     PIFontAtt fat=PI_NotDefFontAtt);
   virtual void       SetMarkerAtt(int sz=-1, PIMarker mrk=PI_NotDefMarker);
-  virtual void       SetColMapId(CMapId cid=CMAP_OTHER);
+  virtual void       SetColMapId(CMapId cid=CMAP_OTHER, bool rev=false);
 
   void               SelGraAtt(PIGraphicUC* g);
@@ -78,7 +83,9 @@
   inline PIFontSize  GetFontSz()    { return(mFSz);  }
   inline PIFontAtt   GetFontAtt()   { return(mFAtt); }
+  inline PIFontName  GetFontName()  { return(mFName);} 
   inline int         GetMarkerSz()  { return(mMSz);  }
   inline PIMarker    GetMarker()    { return(mMrk);  } 
   inline CMapId      GetColMapId()  { return(mCmapid); }
+  inline CMapId      GetColMapId(bool & rev)  { rev = mRevCmap; return(mCmapid); }
 
 
@@ -127,4 +134,7 @@
   PIGraphicUC* mGrUC;
 
+// Flag de control d'affichage en mode HighLight
+  bool mFgHighLight;
+
   list<DrwBWId>  mBWdgList;
   bool mDndfg;
@@ -133,4 +143,5 @@
   PIColors           mFCol, mBCol;
   PILineAtt          mLAtt;
+  PIFontName	     mFName;
   PIFontSize         mFSz;
   PIFontAtt          mFAtt;
@@ -138,5 +149,6 @@
   PIMarker           mMrk;  
   CMapId             mCmapid;
-  
+  bool               mRevCmap;
+
 };
 
