Index: trunk/SophyaPI/PIext/pihisto.cc
===================================================================
--- trunk/SophyaPI/PIext/pihisto.cc	(revision 1644)
+++ trunk/SophyaPI/PIext/pihisto.cc	(revision 1645)
@@ -142,11 +142,11 @@
   PIGrCoord a, d;
   double cH = (double)g->GetFontHeight(a,d);
-  double cellHeight = cH * 3.6;
+  double cellHeight = 3.6 * cH;
 
   // Les labels et leurs longueurs -> largeur de la cellule
-  char *label, label1[32], label2[32], label3[32];
-  sprintf(label1, "N= %-6g",mHisto->NData());
-  sprintf(label2, "m= %-6g",mHisto->Mean());
-  sprintf(label3, "s= %-6g",mHisto->Sigma());
+  char *label, label1[64], label2[64], label3[64];
+  sprintf(label1, "N= %-g",mHisto->NData());
+  sprintf(label2, "m= %-g",mHisto->Mean());
+  sprintf(label3, "s= %-g",mHisto->Sigma());
   label = label1;
   if(strlen(label)<strlen(label2)) label = label2;
@@ -154,20 +154,24 @@
   double cellWidth =  1.1 * (double)g->CalcStringWidth(label);
 
-  double xu, yu;
+  double xu, yu, cw;
   // Les limites du cadre
-  xu = g->DeltaUCX(XMax(), - cellWidth);
-  yu = g->DeltaUCY(YMax(), - cellHeight);
-  g->DrawLine(xu, YMax(), xu, yu);
-  g->DrawLine(xu, yu, XMax(), yu);
+  xu = g->DeltaUCX(XMax(), -cellWidth);
+  yu = g->DeltaUCY(YMax(), -cellHeight);
+  g->DrawLine(xu,YMax(),xu,yu);
+  g->DrawLine(xu,yu,XMax(),yu);
 
-  // L'ecriture des labels
-  xu = g->DeltaUCX(XMax(), - cellWidth*0.95);
-  yu = g->DeltaUCY(YMax(), - cH*1.15);
-  g->DrawString(xu, yu, label1);
-  yu = g->DeltaUCY(YMax(), - cH*2.3);
-  g->DrawString(xu, yu, label2);
-  yu = g->DeltaUCY(YMax(), - cH*3.45);
-  g->DrawString(xu, yu, label3);
+  // L'ecriture des labels (attention aux inversions possibles des axes!)
+  cw = (g->isAxeXDirRtoL()) ? -0.05*cellWidth : -0.95*cellWidth;
+  xu = g->DeltaUCX(XMax(),cw);
+
+  cw = (g->isAxeYDirUpDown()) ? -0.15*cH : -1.15*cH;
+  yu = g->DeltaUCY(YMax(),cw);
+  g->DrawString(xu, yu,label1);
+    cw +=  -1.15*cH;
+    yu = g->DeltaUCY(YMax(),cw);
+    g->DrawString(xu, yu,label2);
+      cw +=  -1.15*cH;
+      yu = g->DeltaUCY(YMax(),cw);
+      g->DrawString(xu, yu,label3);
                        
 }
-
Index: trunk/SophyaPI/PIext/pihisto2d.cc
===================================================================
--- trunk/SophyaPI/PIext/pihisto2d.cc	(revision 1644)
+++ trunk/SophyaPI/PIext/pihisto2d.cc	(revision 1645)
@@ -61,4 +61,5 @@
 //      en couleur. Cette option est incontournable dans le cas
 //      d'un display par des carres de taille fixe.
+//| -**- gestion dans H2WinArg par menu deroulant Black&White etc...
 //--
 {
@@ -84,4 +85,6 @@
 //|        f   -> lf = log10(1.+f*(logscale-1))/log10(logscale)
 //|   3. codage de lf=[0,1] sur la dynamique du display choisi
+//| -**- gestion dans H2WinArg par menu deroulant Lineaire/Log10
+//|         et "logscale" par saisie de valeur dans champ LogScal
 //--
 {
@@ -105,4 +108,6 @@
 //|            (cf detail PIHisto2D::HPrint2)
 //| Type = 3 : carres de taille fixe (couleur).
+//| -**- gestion dans H2WinArg par menu deroulant Carres_Var etc...
+//|         et "fnpt" par saisie de valeur dans champ PerPt
 //--
 {
@@ -122,7 +127,8 @@
 //|  [hmin,hmax] -> [0,1]
 //|       h      ->   f = (h-hmin)/(hmax-hmin)
-//|  Par la suite selon ce qui est demande, f va coder le display ou etre
-//|  transforme en une autre echelle [0,1].
+//|  Par la suite, selon ce qui est demande, f va coder le display 
+//|  ou etre transforme en une autre echelle [0,1] (ex: echelle log10).
 //|  Si hmax<=hmin, ils sont forces a la dynamique totale de l'histo2D.
+//| -**- gestion dans H2WinArg par saisie de valeurs dans champ Dyn
 //--
 {
@@ -136,5 +142,5 @@
 //
 //	Pour definir la fraction de la dynamique a dessiner:
-//| Certains type de display (f=[0,1] cf PIHisto2D::UseDyn),
+//| Selon le type de display (f=[0,1] cf PIHisto2D::UseDyn),
 //|  - on ne dessine rien si f <= frmin dans les cas de display avec
 //|    des nuages de points ou des carres de tailles variables.
@@ -146,7 +152,9 @@
 //|    le + grand qui pourra etre dessine dans un bin
 //|    aura une taille egale a 0.8*(taille du bin)).
-//--
-{
-if(frmax<=0. || frmax>1.) frmax = 1.;
+//| -**- gestion dans H2WinArg par saisie de valeurs dans champ Frac
+//--
+{
+if(frmin<0.  || frmin>=1.) frmin = 0.;
+if(frmax<=0. || frmax>1. ) frmax = 1.;
 if(frmin>=frmax) {frmin=0.1; frmax=0.9;}
 mFracMin = frmin; mFracMax = frmax;
@@ -183,12 +191,21 @@
 //
 //	Dessin de l'histogramme.
-//|  Code de dessin selon choix des options:
+//| -**- Code de dessin selon choix des options:
 //|  (detail voir UseColors UseScale UseDisplay UseDyn UseFrac)
-//|  [hmin,hmax] -> [0,1] [[ -> re-codage log10 entre [0,1] ]] -> f=[0,1]
-//|  Puis selon display:
-//|  0 carres variables : if(f>fracmin) taille carre = f*fracmax *taille_du_bin
-//|  1 nuage de points  : if(f>fracmin) npoints = f*PerPt *npoints_ecran_dans_bin
-//|  2 code hbook2      : if(f>0) map de f=]0,1] dans ".+...Z*"
-//|  3 carres fixes     : couleur = lut[f*nombre_d_entree_dans_la_lut]
+//|  - [hmin,hmax] -> f=[0,1]
+//|    (Choix hmin,hmax champ Dyn de H2WinArg)
+//|  - Eventuellement ech Log -> re-codage log10 entre f=[0,1]
+//|    (Choix menu deroulant et champ LogScal de H2WinArg)
+//|  - Restriction de f=[0,1] -> f=[Frac(min),Frac(max)]
+//|    (Choix champ Frac de H2WinArg)
+//| -**- Puis selon display:
+//|  0 carres variables, menu "Carres Var." de H2WinArg:
+//|      if(f>Frac(min)) taille carre = f * Frac(max) * taille_du_bin
+//|  1 nuage de points, menu "....." et champ PerPt de H2WinArg:
+//|      if(f>Frac(min)) npoints = f * PerPt * npoints_ecran_dans_bin
+//|  2 code hbook2, menu ".12..Z*" de H2WinArg:
+//|      if(f>0) map de f=]0,1] dans ".+...Z*"
+//|  3 carres pleins, menu "Carres Pleins" et couleurs de H2WinArg):
+//|      couleur = lut[ f * nombre_d_entree_dans_la_lut ]
 //--
 {
@@ -200,5 +217,5 @@
 double dx = mHisto->WBinX(),dy = mHisto->WBinY();
 double p1dx,p1dy;
-g->DGrC2UC(1.f,1.f,p1dx,p1dy);
+g->DGrC2UC(1.,1.,p1dx,p1dy);
 
 // Gamme a representer entre [0,1] mais >=fracmin et scale fracmax
@@ -325,19 +342,26 @@
   // La hauteur de la cellule
   PIGrCoord a, d;
-  double cellHeight = 1.2 * (double)g->GetFontHeight(a,d);
+  double cH = (double)g->GetFontHeight(a,d);
+  double cellHeight = 1.2 * cH;
 
   // Les labels et leurs longueurs -> largeur de la cellule
-  char label[32];
-  sprintf(label,"N= %-6g", mHisto->NData());
+  char label[64];
+  sprintf(label,"N= %-g", mHisto->NData());
   double cellWidth =  1.1 * (double)g->CalcStringWidth(label);
 
+  double xu, yu, cw;
   // Les limites du cadre
-  g->DrawLine(XMax() - cellWidth, YMax(),
-                       XMax() - cellWidth, YMax() - cellHeight);
-  g->DrawLine(XMax() - cellWidth, YMax() - cellHeight,
-                       XMax()            , YMax() - cellHeight);
+  xu = g->DeltaUCX(XMax(), -cellWidth);
+  yu = g->DeltaUCY(YMax(), -cellHeight);
+  g->DrawLine(xu,YMax(),xu,yu);
+  g->DrawLine(xu,yu,XMax(),yu);
 
   // L'ecriture des labels
-  g->DrawString(XMax() - cellWidth*0.95, YMax() - cellHeight*0.8,label);
+  cw = (g->isAxeXDirRtoL()) ? -0.05*cellWidth : -0.95*cellWidth;
+  xu = g->DeltaUCX(XMax(),cw);
+  cw = (g->isAxeYDirUpDown()) ? -0.1*cH : -1.1*cH;
+  yu = g->DeltaUCY(YMax(),cw);
+  g->DrawString(xu,yu,label);
+
   //  printf("H[%d,%d] Dynamique: [%g,%g] Frac [%g,%g]\n"
   //        ,mHisto->NBinX(),mHisto->NBinY(),HMin(),HMax(),FMin(),FMax());
@@ -577,4 +601,5 @@
 //| - Champ texte Dyn: Pour donner la dynamique, si min>=max
 //|     alors prend le min et le max de l'histogramme
+//|     (cf PIHisto2D::UseDyn)
 //| - Champ texte Frac: fraction mini et maxi
 //|     (cf PIHisto2D::UseFrac)
Index: trunk/SophyaPI/PIext/pintuple.cc
===================================================================
--- trunk/SophyaPI/PIext/pintuple.cc	(revision 1644)
+++ trunk/SophyaPI/PIext/pintuple.cc	(revision 1645)
@@ -205,19 +205,25 @@
 
 if (stats) { // Trace de stats 
-  char label[64];
-  sprintf(label, "Nd= %d/ Ntot= %d", nok, mNT->NbLines());
   g->SelFontSz((YMax() - YMin())/30, mFAtt);  
+  // La hauteur de la cellule
   PIGrCoord a,d;
   double cH = (double)g->GetFontHeight(a,d);
-  double cellHeight = cH * 1.2;
+  double cellHeight = 1.2 * cH;
+  // Les labels et leurs longueurs -> largeur de la cellule
+  char label[64];
+  sprintf(label, "Nd= %d / Ntot= %d", nok, mNT->NbLines());
   double cellWidth =   1.1 * (double)g->CalcStringWidth(label);
-  double xu, yu;
+  double xu, yu, cw;
+  // Les limites du cadre
   xu = g->DeltaUCX(XMax(), - cellWidth);
   yu = g->DeltaUCY(YMax(), - cellHeight);
   g->DrawLine(xu, YMax(), xu, yu);
   g->DrawLine(xu, yu, XMax(), yu);
-  xu = g->DeltaUCX(XMax(), - cellWidth*0.95);
-  yu = g->DeltaUCY(YMax(), - cH*1.15);
-  g->DrawString(xu, yu, label);
+  // L'ecriture des labels (attention aux inversions possibles des axes!)
+  cw = (g->isAxeXDirRtoL()) ? -0.05*cellWidth : -0.95*cellWidth;
+  xu = g->DeltaUCX(XMax(),cw);
+  cw = (g->isAxeYDirUpDown()) ? -0.1*cH : -1.1*cH;
+  yu = g->DeltaUCY(YMax(),cw);
+  g->DrawString(xu,yu,label);
 }
 
