Index: /trunk/SophyaPI/PI/piapplgen.cc
===================================================================
--- /trunk/SophyaPI/PI/piapplgen.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/piapplgen.cc	(revision 1592)
@@ -136,13 +136,23 @@
 // void  PIApplicationPrefCompSize(int& szx, int& szy)
 //	Fonction globale
-// void  PrefCompSz(int& szx, int& szy)
+// void  PrefCompSize(int& szx, int& szy)
 //	Renvoie la taille préférée pour les composantes standard. "szx,szy" 
 //	est la taille (en pixels) pour un champ texte, ou un bouton "(PIText, PIButton)" 
 //	avec l'étiquette ou un contenu de 6 caractères (Ex: Cancel).
 //
-// void  PIApplicationScreenSize()
+// void  PIApplicationScreenSize(int& szx, int& szy)
 //	Fonction globale
-// void  ScreenSz(int& szx, int& szy)
-//	Renvoie la taille en pixels de l'écran
+// void  ScreenSize(int& szx, int& szy)
+//	Renvoie la taille de l'écran en pixels 
+//
+// void  PIApplicationScreenSizeMM(int& szx, int& szy)
+//	Fonction globale
+// void  ScreenSizeMM(int& szx, int& szy)
+//	Renvoie la taille de l'écran en mm 
+// 
+// void  PIApplicationScreenResolution(int& resolx, int& resoly)
+//	Fonction globale
+// void  ScreenResolution(int& resolx, int& resoly)
+//	Renvoie la resolution de l'ecran en pixels / cm
 //  
 //--
@@ -151,5 +161,5 @@
 {
 szx = szy = 10;
-if (curapp)  curapp->PrefCompSz(szx, szy);
+if (curapp)  curapp->PrefCompSize(szx, szy);
 return; 
 }
@@ -157,5 +167,17 @@
 {
 szx = szy = 500;
-if (curapp)  curapp->ScreenSz(szx, szy);
+if (curapp)  curapp->ScreenSize(szx, szy);
 return; 
 }
+void     PIApplicationScreenSizeMM(int& szx, int& szy)
+{
+szx = szy = 400;
+if (curapp)  curapp->ScreenSizeMM(szx, szy);
+return; 
+}
+void     PIApplicationScreenResolution(int& resolx, int& resoly)
+{
+resolx = resoly = 30;
+if (curapp)  curapp->ScreenResolution(resolx, resoly);
+return; 
+}
Index: /trunk/SophyaPI/PI/piapplgen.h
===================================================================
--- /trunk/SophyaPI/PI/piapplgen.h	(revision 1591)
+++ /trunk/SophyaPI/PI/piapplgen.h	(revision 1592)
@@ -30,6 +30,8 @@
         virtual void              AppendMenu(PIMenu *pdm);
 
-        virtual void              PrefCompSz(int& szx, int& szy) = 0;
-        virtual void              ScreenSz(int& szx, int& szy) = 0;
+        virtual void              PrefCompSize(int& szx, int& szy) = 0;
+        virtual void              ScreenSize(int& szx, int& szy) = 0;
+        virtual void              ScreenSizeMM(int& szx, int& szy) = 0;
+        virtual void              ScreenResolution(int& resolx, int& resoly) = 0;
 
         virtual void              RedirectOutStream(PIConsole* cons, unsigned char va= PIVA_Def)  = 0;
@@ -45,4 +47,6 @@
 void     PIApplicationPrefCompSize(int& szx, int& szy);  
 void     PIApplicationScreenSize(int& szx, int& szy);  
+void     PIApplicationScreenSizeMM(int& szx, int& szy);  
+void     PIApplicationScreenResolution(int& resolx, int& resoly);
 
 #endif
Index: /trunk/SophyaPI/PI/piapplx.cc
===================================================================
--- /trunk/SophyaPI/PI/piapplx.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/piapplx.cc	(revision 1592)
@@ -117,5 +117,5 @@
 
 int msx,msy;
-PrefCompSz(msx, msy);
+PrefCompSize(msx, msy);
 msy+=5;
 topwdg->SetSize(sx, sy+msy);
@@ -279,5 +279,5 @@
 
 /* --Methode-- */
-void PIApplicationX::PrefCompSz(int& szx, int& szy)
+void PIApplicationX::PrefCompSize(int& szx, int& szy)
 {
 int szf;
@@ -287,5 +287,5 @@
 
 /* --Methode-- */
-void PIApplicationX::ScreenSz(int& szx, int& szy)
+void PIApplicationX::ScreenSize(int& szx, int& szy)
 {
 Display * dsp = PIXDisplay();
@@ -293,4 +293,24 @@
 szy = DisplayHeight(dsp, DefaultScreen(dsp));
 }
+
+/* --Methode-- */
+void PIApplicationX::ScreenSizeMM(int& szx, int& szy)
+{
+Display * dsp = PIXDisplay();
+szx = DisplayWidthMM(dsp, DefaultScreen(dsp));
+szy = DisplayHeightMM(dsp, DefaultScreen(dsp));
+}
+
+/* --Methode-- */
+void PIApplicationX::ScreenResolution(int& resolx, int& resoly)
+{
+Display * dsp = PIXDisplay();
+resolx = (int)((double)DisplayWidth(dsp, DefaultScreen(dsp))*10./
+  (double)DisplayWidthMM(dsp, DefaultScreen(dsp)));
+resoly = (int)((double)DisplayHeight(dsp, DefaultScreen(dsp))*10./
+  (double)DisplayHeightMM(dsp, DefaultScreen(dsp)));
+}
+
+
 
 
Index: /trunk/SophyaPI/PI/piapplx.h
===================================================================
--- /trunk/SophyaPI/PI/piapplx.h	(revision 1591)
+++ /trunk/SophyaPI/PI/piapplx.h	(revision 1592)
@@ -19,6 +19,8 @@
   virtual void              SetBlocked();
 
-  virtual void              PrefCompSz(int& szx, int& szy);
-  virtual void              ScreenSz(int& szx, int& szy);
+  virtual void              PrefCompSize(int& szx, int& szy);
+  virtual void              ScreenSize(int& szx, int& szy);
+  virtual void              ScreenSizeMM(int& szx, int& szy);
+  virtual void              ScreenResolution(int& resolx, int& resoly);
 
   virtual void              RedirectOutStream(PIConsole* cons, unsigned char va= PIVA_Def);
Index: /trunk/SophyaPI/PI/piaxestools.cc
===================================================================
--- /trunk/SophyaPI/PI/piaxestools.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/piaxestools.cc	(revision 1592)
@@ -80,5 +80,5 @@
 // On definit la taille a partir de la taille par defaut des composantes 
 // PIApplicationPrefCompSize(bsx, bsy);
-par->PrefCompSz(bsx, bsy);
+par->PrefCompSize(bsx, bsy);
 spx = bsx/10;
 spy = bsy/4;
Index: /trunk/SophyaPI/PI/pidrwtools.cc
===================================================================
--- /trunk/SophyaPI/PI/pidrwtools.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/pidrwtools.cc	(revision 1592)
@@ -97,5 +97,5 @@
 // On definit la taille a partir de la taille par defaut des composantes 
 // PIApplicationPrefCompSize(bsx, bsy);
-par->PrefCompSz(bsx, bsy);
+par->PrefCompSize(bsx, bsy);
 spx = bsx/10;
 spy = bsy/4;
Index: /trunk/SophyaPI/PI/pigraphgen.cc
===================================================================
--- /trunk/SophyaPI/PI/pigraphgen.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/pigraphgen.cc	(revision 1592)
@@ -112,8 +112,18 @@
 //	Trace la chaîne de caractères "s" à la position "x,y", 
 //	en utilisant la couleur d'avant-plan (Foreground)
+//	La chaine est trace avec une justification a gauche, ou droite,
+//	ou centree (horzontal) - bas, haut, milieu (vertical), en fonction de
+//	de la valeur du flag "pos"
+//|	PI_HorizontalLeft PI_HorizontalCenter PI_HorizontalRight
+//|	PI_VerticalBottom PI_VerticalCenter PI_VerticalTop
 // void  DrawOpaqueString(PIGrCoord x, PIGrCoord y, const char* s, int pos = 0) 
 //	Trace la chaîne de caractères "s" à la position "x,y" . La couleur d'
 //	arrière-plan est utilisée pour remplir la zone rectangulaire occupée par
 //	le tracé de texte.
+//	La chaine est trace avec une justification a gauche, ou droite,
+//	ou centree (horzontal) - bas, haut, milieu (vertical), en fonction de
+//	de la valeur du flag "pos"
+//|	PI_HorizontalLeft PI_HorizontalCenter PI_HorizontalRight
+//|	PI_VerticalBottom PI_VerticalCenter PI_VerticalTop
 //--
 
Index: /trunk/SophyaPI/PI/pigraphgen.h
===================================================================
--- /trunk/SophyaPI/PI/pigraphgen.h	(revision 1591)
+++ /trunk/SophyaPI/PI/pigraphgen.h	(revision 1592)
@@ -27,4 +27,9 @@
                  PI_TriangleMarker=7, PI_FTriangleMarker=8,
                  PI_StarMarker=9, PI_FStarMarker=10 };
+
+enum PIGrPosHorizontal { PI_HorizontalLeft = 0, PI_HorizontalCenter = 1, 
+			 PI_HorizontalRight = 2 };
+enum PIGrPosVertical { PI_VerticalBottom = 32, PI_VerticalCenter = 36, 
+		       PI_VerticalTop = 40 };
 
 enum PIGOMode { PI_GOCopy = 0, PI_GOXOR = 1, PI_GOInvert = 2 }; 
Index: /trunk/SophyaPI/PI/piimgtools.cc
===================================================================
--- /trunk/SophyaPI/PI/piimgtools.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/piimgtools.cc	(revision 1592)
@@ -63,5 +63,5 @@
 // On definit la taille a partir de la taille par defaut des composantes 
 // PIApplicationPrefCompSize(bsx, bsy);
-par->PrefCompSz(bsx, bsy);
+par->PrefCompSize(bsx, bsy);
 spx = bsx/10;
 spy = bsy/4;
Index: /trunk/SophyaPI/PI/piversion.h
===================================================================
--- /trunk/SophyaPI/PI/piversion.h	(revision 1591)
+++ /trunk/SophyaPI/PI/piversion.h	(revision 1592)
@@ -2,5 +2,5 @@
 #define PIVERSION_H_SEEN
 
-#define PI_VERSIONNUMBER  2.98
+#define PI_VERSIONNUMBER  3.1
 
 #endif
Index: /trunk/SophyaPI/PI/psfile.cc
===================================================================
--- /trunk/SophyaPI/PI/psfile.cc	(revision 1591)
+++ /trunk/SophyaPI/PI/psfile.cc	(revision 1592)
@@ -293,4 +293,27 @@
 
 /* 
+   Utilisation de la resolution coordonnees utilisateur (resolution ecran)
+   pour definir correctement la taille des fontes 
+                                      R. Ansari - Juillet 2001
+*/
+/* Definition de la resolution coordonnees user par defaut (point/cm ou pixels/cm) */ 
+
+int PSFile::def_user_resol_X = 30;
+int PSFile::def_user_resol_Y = 30;
+void PSFile::SetDefaultUserResolution(int resx, int resy)
+{
+  if ((resx < 1) || (resy < 1)) return;
+  def_user_resol_X = resx;
+  def_user_resol_Y = resy;
+}
+void PSFile::GetDefaultUserResolution(int& resx, int& resy)
+{
+  if ((resx < 1) || (resy < 1)) return;
+  resx = def_user_resol_X;
+  resy = def_user_resol_Y;
+}
+
+
+/* 
  *   PostScript encapsule...
  * 
Index: /trunk/SophyaPI/PI/psfile.h
===================================================================
--- /trunk/SophyaPI/PI/psfile.h	(revision 1591)
+++ /trunk/SophyaPI/PI/psfile.h	(revision 1592)
@@ -27,5 +27,5 @@
 #include "pifontgen.h"
 
-#include "pigraphgen.h"      // Types enumeres repris de Peida:PIFontSize...
+#include "pigraphgen.h"      // Types enumeres repris de PI:PIFontSize...
 #include PICMAP_H
 
@@ -71,4 +71,8 @@
 
 public:
+    /* Definition de la resolution coordonnees user par defaut (point/cm) */ 
+    static void SetDefaultUserResolution(int resx, int resy);
+    static void GetDefaultUserResolution(int & resx, int & resy);
+
     /* Production fichier eps */
     PSFile (const char * FileName, double sc = 1.0);
@@ -201,4 +205,7 @@
     int              mMarkerSize; /* Taille (en points) du marker courant */
     bool setFontDone ; /* Pour forcer la selection de Marker apres DrawString() */
+
+  /* resolution coordonnees user (point/cm - pixels/cm) */
+    static int  def_user_resol_X, def_user_resol_Y; 
 } ;
 
