Index: trunk/SophyaPI/PIext/pihisto2d.cc
===================================================================
--- trunk/SophyaPI/PIext/pihisto2d.cc	(revision 2234)
+++ trunk/SophyaPI/PIext/pihisto2d.cc	(revision 2237)
@@ -268,6 +268,7 @@
 
 // gestion Couleurs.
+PIColors fgcoul = GetGraphicAtt().GetFgColor();
+PIColors bgcoul = GetGraphicAtt().GetBgColor();
 PIColorMap* cmap=NULL;
-PIColors coul = g->GetForeground();
 int ncol = 0;
 if (mFgCol) {
@@ -280,9 +281,9 @@
 // gestion epaisseur de ligne
 PILineAtt LineAtt = GetGraphicAtt().GetLineAtt();
-if(LineAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
+if(LineAtt == PI_NotDefLineAtt) GetGraphicAtt().SetLineAtt(PI_ThinLine);
 
 // gestion Markers ou plot avec des points.
-PIMarker Mk = g->GetMarker();
-int MkSz = g->GetMarkerSize();
+PIMarker Mk = GetGraphicAtt().GetMarker();
+int MkSz = GetGraphicAtt().GetMarkerSize();
 int npt = 1;
 if(mTypDisp==1) {
@@ -292,6 +293,6 @@
 
 // gestion Font.
-PIFontAtt FontAtt = g->GetFont().GetFontAtt();
-int FontSize = g->GetFont().GetFontSize();
+PIFontAtt FontAtt = GetGraphicAtt().GetFontAtt();
+int FontSize = GetGraphicAtt().GetFontSzPt();
 if(mTypDisp==2) {
   double dxg,dyg,dg;
@@ -299,11 +300,7 @@
   dg =(dxg<dyg) ? dxg : dyg;
   int npix = (int) (dg*0.9); if(npix<8) npix = 8;
-  //printf("PIHisto2D::Draw_Font H dx=%g dy=%g, G dx=%g dy=%g, npix = %g,%d\n"
-  //      ,dx,dy,dxg,dyg,dg,npix);
-  g->SelFontSzPt(npix,PI_RomanFont);
+  g->SelFontSzPt(npix,FontAtt);
   fracmin = 0;
 }
-
-// Print();
 
 // Plot de l'histogramme
@@ -358,5 +355,5 @@
     double x = left0 + dx/2.;
     double y = bottom0 + dy/2.;
-    g->DrawString(x,y,c);
+    g->DrawString(x,y,c,PI_HorizontalCenter|PI_VerticalCenter);
   } else if(mTypDisp==3) {
     //..... carres de tailles fixes (avec gestion de continuite)
@@ -368,8 +365,8 @@
 
 // Remise dans les conditions ulterieures pour la suite du graphique.
-g->SelMarker(MkSz,Mk);
-g->SelForeground(coul);
+GetGraphicAtt().SetMarkerAtt(MkSz,Mk);
+GetGraphicAtt().SetColAtt(fgcoul,bgcoul);
 g->SelFontSzPt(FontSize,FontAtt);
-g->SelLine(LineAtt);
+GetGraphicAtt().SetLineAtt(LineAtt);
 if (cmap) delete cmap;
 
@@ -497,4 +494,5 @@
 //--
 {
+  // Decodage des options generales pidrawer
   int optsz1 = opt.size();
   if(optsz1<1) return(0); 
@@ -502,4 +500,11 @@
   if(optsz1-ndec1<1) return(ndec1);  // si tout a ete decode
 
+  // Options generales pidrawer interessant le display Histo2D
+  bool rev; 
+  if(GetGraphicAtt().GetColMapId(rev) != CMAP_OTHER) {
+    UseColors(true,GetGraphicAtt().GetColMapId(),rev);
+  } else UseColors(false);
+
+  // Decodage des options propres au display Histo2D
   vector<string> udopt;  // On gardera ici les options non decodees
   unsigned int k = 0;
@@ -543,15 +548,4 @@
       if(q<opts.length()-1) sscanf(opts.substr(q+1).c_str(),"%g",&fmax);
       UseFrac(fmin,fmax);
-    } else if(opts.substr(0,6)=="h2col=") {
-      bool fcol=Color(); CMapId cmid=ColMap(); bool rmap=IsColMapRev();
-      if(opts.find(",rev")<opts.length()-1) rmap=true;
-      if(opts.find(",nor")<opts.length()-1) rmap=false;
-      for(int k=0; k<PIColorMap::NumberStandardColorMaps(); k++) {
-        string cn=PIColorMap::GetStandardColorMapName(k);
-        for(unsigned int j=0; j<cn.length(); j++) cn[j]=tolower(cn[j]);
-        if(opts.find(cn)<opts.length()-1)
-          {fcol=true; cmid=PIColorMap::GetStandardColorMapId(k); break;}
-      }
-      UseColors(fcol,cmid,rmap);
    } else {
       ndec--;
@@ -560,9 +554,12 @@
     }
   }
+
   // S'il faut supprimer les options decodees, on remplace l'argument opt
   // par le vecteur des options non decodees.
   if (rmdecopt)  opt = udopt;
+
   // Liste des options si demande
   if(listopt) Print();
+
   return(ndec+ndec1);
 }
@@ -589,8 +586,7 @@
 info += "- h2scale=lin/log[,logscale]: choose linear or logarithmic scale\n";
 info += "- h2dyn=[hmin][,hmax]: choose histogramme range for display\n";
-info += "- h2col=[colname][,colsigne] : color table\n";
-info += "    colname: name of color table (ex: grey32,midas_heat,...)\n";
-info += "             (see general graphicatt description)\n";
-info += "    colsigne: reverse (\"rev\") or normal (\"nor\") color table\n";
+info += "- use general key to define color table (ex: grey32,midas_heat,...)\n";
+info += "            (see general graphicatt description)\n";
+info += "- use key \"revcmap\" to reverse color table\n";
 info += "- h2frac=[fmin][,fmax]: choose sub-range display [0,1]\n";
 return;
@@ -830,15 +826,4 @@
  if(dbg) printf("H2WinArg::Show() mH2DDrw=%p\n",mH2DDrw);
  // Pour recuperer les valeurs du Drawer sur lequel on fait ALT-O
- /*
- if(mH2DDrw) {
-   mFgCol = mH2DDrw->Color();
-   mCmap = mH2DDrw->ColMap(); mRevCmap = mH2DDrw->IsColMapRev();
-   mTypScal = mH2DDrw->TypScale(); mLogScale = mH2DDrw->LogScale();
-   mTypDisp = mH2DDrw->TypDisplay(); mFPoints = mH2DDrw->FPoints();
-   mHMin = mH2DDrw->HMin(); mHMax = mH2DDrw->HMax();
-   mFracMin = mH2DDrw->FMin(); mFracMax = mH2DDrw->FMax();
-   SetText();
- }
- */
  PIWindow::Show();
  return;
