Index: /trunk/SophyaPI/PI/pigraphgen.cc
===================================================================
--- /trunk/SophyaPI/PI/pigraphgen.cc	(revision 1885)
+++ /trunk/SophyaPI/PI/pigraphgen.cc	(revision 1886)
@@ -6,4 +6,52 @@
 
 #include "pigraphgen.h"
+
+//++
+// Class	PILineAtt
+// Lib		PI
+// include	pigraphgen.h
+//--
+
+/* --Methode-- */
+PILineAtt::PILineAtt(PILineTyp ltyp)
+{
+  _ljoincap = PI_JoinMiter*PI_CapButt*256;
+  switch (ltyp) {
+    case PI_NotDefLineAtt :
+      _lwidth = 0; _ldash=PI_LineSolid; 
+      break;
+    case PI_NormalLine : 
+      _lwidth = 2*8; _ldash=PI_LineSolid; 
+      break;
+    case PI_ThinLine : 
+      _lwidth = 8; _ldash=PI_LineSolid; 
+      break;
+    case PI_ThickLine : 
+      _lwidth = 8*4; _ldash=PI_LineSolid; 
+      break;
+    case PI_DashedLine : 
+      _lwidth = 2*8; _ldash=PI_LineDashed; 
+      break;
+    case PI_ThinDashedLine : 
+      _lwidth = 8; _ldash=PI_LineDashed; 
+      break;
+    case PI_ThickDashedLine : 
+      _lwidth = 8*4; _ldash=PI_LineDashed; 
+      break;
+    case PI_DottedLine : 
+      _lwidth = 2*8; _ldash=PI_LineDotted; 
+      break;
+    case PI_ThinDottedLine : 
+      _lwidth = 8; _ldash=PI_LineDotted; 
+      break;
+    case PI_ThickDottedLine : 
+      _lwidth = 8*4; _ldash=PI_LineDotted; 
+      break;
+    default :
+      _lwidth = 0; _ldash=PI_LineSolid; 
+      break;
+    
+  }
+}
 
 //++
@@ -67,4 +115,5 @@
 myWdg = NULL;
 myGrb = NULL;
+SelArrowMarker();
 }
 
@@ -74,4 +123,5 @@
 myWdg = wdg;
 myGrb = NULL;
+SelArrowMarker();
 }
 
@@ -81,4 +131,5 @@
 myWdg = NULL;
 myGrb = grb;
+SelArrowMarker();
 }
 
@@ -127,4 +178,12 @@
 //|	PI_VerticalBottom PI_VerticalCenter PI_VerticalTop
 //--
+
+/* --Methode-- */
+void 
+PIGraphicGen::DrawCompString(PIGrCoord x, PIGrCoord y, const char* s,
+			     const char* s_up, const char* s_dn, int pos)
+{
+  // AFAIREREZA012002
+}
 
 //++ 
@@ -175,4 +234,11 @@
 //--
 
+/* --Methode-- */
+void 
+PIGraphicGen::DrawArrowMarker(PIGrCoord x1, PIGrCoord y1, PIGrCoord x2, PIGrCoord y2)
+{
+  // AFAIREREZA012002
+}
+
 //++
 // Titre	Tracé d'images (pixmap)
@@ -230,4 +296,11 @@
 // 
 //--
+
+void
+PIGraphicGen::SelArrowMarker(int arrsz, PIArrowMarker arrmrk)
+{
+  if (arrsz > 0) myArrowMrkSz = arrsz;
+  myArrowMrk = arrmrk;
+}
 
 //++
@@ -274,4 +347,16 @@
 
 /* --Methode-- */
+PIArrowMarker PIGraphicGen::GetArrowMarker()
+{
+  return(myArrowMrk);
+}
+
+/* --Methode-- */
+int PIGraphicGen::GetArrowMarkerSize()
+{
+  return(myArrowMrkSz);
+}
+
+/* --Methode-- */
 PIGrCoord PIGraphicGen::GetFontHeight(PIGrCoord& asc, PIGrCoord& desc)
 {
@@ -343,4 +428,6 @@
   sMrk = GetMarker();   
   sMrkSz = GetMarkerSize();
+  sArrowMrk = GetArrowMarker();
+  sArrowMrkSz = GetArrowMarkerSize();
   return;
 }
@@ -355,4 +442,5 @@
   SelLine(sLAtt);
   SelMarker(sMrkSz, sMrk);
+  SelArrowMarker(sArrowMrkSz, sArrowMrk);
   return;
 }
Index: /trunk/SophyaPI/PI/pigraphgen.h
===================================================================
--- /trunk/SophyaPI/PI/pigraphgen.h	(revision 1885)
+++ /trunk/SophyaPI/PI/pigraphgen.h	(revision 1886)
@@ -15,10 +15,16 @@
 #include "picolist.h"  // enum PIColors
 
-
-enum PILineAtt { PI_NotDefLineAtt = -1,
-                 PI_NormalLine = 0, PI_ThinLine = 1, PI_ThickLine = 2 ,
-                 PI_DashedLine = 64, PI_ThinDashedLine = 65, PI_ThickDashedLine = 66 ,
-                 PI_DottedLine = 128, PI_ThinDottedLine = 129, PI_ThickDottedLine = 130 };
-
+// Line drawing attributes
+enum PILineJoin { PI_JoinMiter=0, PI_JoinRound=1, PI_JoinBevel=2};
+enum PILineCap  { PI_CapButt=0, PI_CapRound=1, PI_CapProjecting=2};
+enum PILineDash { PI_LineSolid, PI_LineDashed, PI_LineDotted, 
+		  PI_LineDashedDotted};
+// Predefined line types
+enum PILineTyp { PI_NotDefLineAtt = -1,
+                 PI_NormalLine, PI_ThinLine, PI_ThickLine,
+                 PI_DashedLine, PI_ThinDashedLine, PI_ThickDashedLine,
+                 PI_DottedLine, PI_ThinDottedLine, PI_ThickDottedLine };
+
+// Marker types
 enum PIMarker  { PI_NotDefMarker = -1,
                  PI_DotMarker = 0, PI_PlusMarker=1, PI_CrossMarker=2,  
@@ -28,5 +34,10 @@
                  PI_StarMarker=9, PI_FStarMarker=10 };
 
-
+// ArrowMarker types (oriented markers)
+enum PIArrowMarker { PI_NotDefArrowMarker, PI_BasicArrowMarker, 
+		     PI_TriangleArrowMarker, PI_FTriangleArrowMarker,
+		     PI_ArrowShapedArrowMarker, PI_FArrowShapedArrowMarker };
+
+// Flag de positionnement 
 enum PIGrPosHorizontal // Flags de positionnement horizontal
 // PI_HorizontalPosition regroupe l'ensemble des bits utilisables
@@ -66,4 +77,51 @@
 };
 
+// Classe pour gerer les attributs de lignes
+class PILineAtt {
+public:
+  inline PILineAtt(int width=1, PILineDash dash=PI_LineSolid, 
+		   PILineJoin join=PI_JoinMiter, PILineCap cap=PI_CapButt)
+  { _lwidth = width*8; _ldash=dash; _ljoincap=join+cap*256; }   
+  inline PILineAtt(double width, PILineDash dash=PI_LineSolid, 
+		   PILineJoin join=PI_JoinMiter, PILineCap cap=PI_CapButt)
+  { _lwidth = (unsigned short)(width*8.); _ldash=dash; _ljoincap=join+cap*256; }   
+  inline PILineAtt(PILineAtt const& b)
+  { _lwidth=b._lwidth; _ldash=b._ldash; _ljoincap=b._ljoincap; }  
+ 
+  PILineAtt(PILineTyp ltyp);
+
+  inline ~PILineAtt() {}
+
+  inline PILineAtt& operator = (PILineAtt const& b)
+  { _lwidth=b._lwidth; _ldash=b._ldash; _ljoincap=b._ljoincap; return(*this); }   
+  inline bool operator == (PILineAtt const& b)
+  { return ((_lwidth==b._lwidth)&&(_ldash==b._ldash)&&(_ljoincap==b._ljoincap)); }
+  inline bool operator == (PILineTyp ltyp)
+  { return ((*this) == PILineAtt(ltyp)); }
+  inline bool operator != (PILineAtt const& b)
+  { return (!(_lwidth==b._lwidth)&&(_ldash==b._ldash)&&(_ljoincap==b._ljoincap)); }
+  inline bool operator != (PILineTyp ltyp)
+  { return ((*this) != PILineAtt(ltyp)); }
+
+  inline int GetLineWidth() const { return (_lwidth/8); }
+  inline int GetLineWidthx8() const { return (_lwidth); }
+  inline double GetLineWidthD() const { return ((double)_lwidth/8.); }
+  inline PILineDash GetLineDash() const { return _ldash; }
+  inline PILineJoin GetLineJoin() const { return (PILineJoin)(_ljoincap%256); }
+  inline PILineCap  GetLineCap() const { return (PILineCap)(_ljoincap/256); }
+
+  inline void SetLineWidth(int lw) { _lwidth = lw*8; }
+  inline void SetLineWidth(double lw) { _lwidth = (unsigned short)(lw*8.); }
+  inline void SetLineDash(PILineDash ld)  { _ldash = ld; }
+  inline void SetLineJoin(PILineJoin lj)  { _ljoincap = lj+(_ljoincap&0xFF00); }
+  inline void SetLineCap(PILineCap lc)  { _ljoincap = lc*256+(_ljoincap&0x00FF); }
+
+protected:
+  unsigned short _lwidth;  // en 1/8 de pixels (ou points)
+  unsigned short _ljoincap;
+  PILineDash _ldash;  
+};
+
+// Les differents types de classes PIGraphic
 enum PIGraphicsType { PI_UnknownGraphics = 0, 
                       PI_ScrWindowGraphics = 2, PI_ScrBufferGraphics = 3, 
@@ -88,6 +146,10 @@
 //  Trace graphiques
   virtual void       Erase(PIGrCoord x0, PIGrCoord y0, PIGrCoord dx, PIGrCoord dy)     = 0;
+
   virtual void       DrawString(PIGrCoord x, PIGrCoord y, const char* s, int pos = 0)        = 0;
   virtual void       DrawOpaqueString(PIGrCoord x, PIGrCoord y, const char* s, int pos = 0)  = 0;
+  virtual void       DrawCompString(PIGrCoord x, PIGrCoord y, const char* s, 
+                                    const char* s_up, const char* s_dn, int pos = 0);
+
   virtual void       DrawLine(PIGrCoord x1, PIGrCoord y1, PIGrCoord x2, PIGrCoord y2)  = 0;
   virtual void       DrawBox(PIGrCoord x0, PIGrCoord y0, PIGrCoord dx, PIGrCoord dy)   = 0;
@@ -103,6 +165,9 @@
   virtual void       DrawFArc(PIGrCoord x0, PIGrCoord y0, PIGrCoord dx, PIGrCoord dy, 
                               double degdeb, double degfin)                            = 0;
+
   virtual void       DrawMarker(PIGrCoord x0, PIGrCoord y0)                            = 0;
   virtual void       DrawMarkers(PIGrCoord *x, PIGrCoord *y, int n)                    = 0;
+  virtual void       DrawArrowMarker(PIGrCoord x1, PIGrCoord y1, PIGrCoord x2, PIGrCoord y2);
+
   virtual void       DrawPixmap(PIGrCoord x, PIGrCoord y, unsigned char *pix, 
                                 int sx, int sy, PIColorMap* cmap)              = 0;
@@ -115,5 +180,8 @@
   virtual void       SelGOMode(PIGOMode mod=PI_GOCopy)                         = 0;
   virtual void       SelLine(PILineAtt att=PI_NormalLine)                      = 0;
+  inline  void       SelLine(PILineTyp lt) { SelLine(PILineAtt(lt)); }
   virtual void       SelMarker(int msz=3, PIMarker mrk=PI_DotMarker)           = 0;
+  virtual void       SelArrowMarker(int arrsz=5, 
+                                    PIArrowMarker arrmrk=PI_BasicArrowMarker);
 // Modifications de fonte
   virtual void	     SelFont(PIFont & fnt)				       = 0; 
@@ -133,4 +201,6 @@
   virtual PIMarker   GetMarker()        = 0;
   virtual int        GetMarkerSize()    = 0;
+  virtual PIArrowMarker    GetArrowMarker();
+  virtual int        GetArrowMarkerSize();
 
 // Acces a la fonte et ses attributs
@@ -151,4 +221,6 @@
 
   PIFont myFont;
+  PIArrowMarker myArrowMrk;
+  int myArrowMrkSz;
   PIColors  sFCol, sBCol;
   PIGOMode sGOm;
@@ -158,4 +230,7 @@
   PIMarker sMrk;
   int sMrkSz;
+  PIArrowMarker sArrowMrk;
+  int sArrowMrkSz;
+
 };
 
Index: /trunk/SophyaPI/PI/pigraphx.cc
===================================================================
--- /trunk/SophyaPI/PI/pigraphx.cc	(revision 1885)
+++ /trunk/SophyaPI/PI/pigraphx.cc	(revision 1886)
@@ -472,67 +472,74 @@
 void PIGraphicX::SelLine(PILineAtt att)
 {
-unsigned int lt=0;
+
+if (att == mLAtt)  return;
+
+
+unsigned int lw = att.GetLineWidth();
 int lstyle=LineSolid;
-char dash[2]= {3,3};   
-
-if (att == mLAtt)  return;
-
-switch (att)
-  {
-  case PI_NormalLine :
-    lt = 2;
-    lstyle = LineSolid;
-    break;
-  case PI_ThickLine :
-    lt = 4;
-    lstyle = LineSolid;
-    break;
-  case  PI_ThinLine :
-    lt = 0;
-    lstyle = LineSolid;
-    break;
-
-  case PI_DashedLine :
-    lt = 2;
-    lstyle = LineOnOffDash;
-    dash[0] = dash[1] = 6;  
-    break;
-  case PI_ThickDashedLine :
-    lt = 4;
-    lstyle = LineOnOffDash;
-    dash[0] = dash[1] = 6;  
-    break;
-  case  PI_ThinDashedLine :
-    lt = 0;
-    lstyle = LineOnOffDash;
-    dash[0] = dash[1] = 6;  
-    break;
-
-  case PI_DottedLine :
-    lt = 2;
-    lstyle = LineOnOffDash;
-    dash[0] = 2; dash[1] = 6;  
-    break;
-  case PI_ThickDottedLine :
-    lt = 4;
-    lstyle = LineOnOffDash;
-    dash[0] = 2; dash[1] = 6;  
-    break;
-  case  PI_ThinDottedLine :
-    lt = 0;
-    lstyle = LineOnOffDash;
-    dash[0] = 2; dash[1] = 6;  
-    break;
-
-  default:
-    lt = 0;
-    lstyle=LineSolid;
-    break;
-  }
+int dashlen = 2;
+char dash[4]= {3,3,3,3};   
+
+switch (att.GetLineDash()) {
+ case PI_LineSolid :
+   lstyle = LineSolid;
+   break;
+ case PI_LineDashed :
+   lstyle = LineOnOffDash;
+   dash[0] = dash[1] = 6;     
+   dashlen = 2;
+   break;
+ case PI_LineDotted :
+   lstyle = LineOnOffDash;
+   dash[0] = 2; dash[1] = 6;  
+   dashlen = 2;
+   break;
+ case PI_LineDashedDotted :
+   lstyle = LineOnOffDash;
+   dash[0] = 2; dash[1] = 6;  
+   dash[2] = 6; dash[1] = 6;  
+   dashlen = 4;
+   break;
+ default :
+   lstyle = LineSolid;
+   break;
+}
+
+int ljoin = JoinMiter;
+switch (att.GetLineJoin()) {
+ case PI_JoinMiter :
+   ljoin = JoinMiter;
+   break;
+ case PI_JoinRound :
+   ljoin = JoinRound;
+   break;
+ case PI_JoinBevel :
+   ljoin = JoinBevel;
+   break;
+ default :
+   ljoin = JoinMiter;
+   break;
+}
+
+int lcap = CapButt;
+switch (att.GetLineCap()) {
+ case PI_CapButt :
+   lcap = CapButt;
+   break;
+ case PI_CapRound :
+   lcap = CapRound;
+   break;
+ case PI_CapProjecting :
+   lcap = CapProjecting;
+   break;
+ default :
+   lcap = CapButt;
+   break;
+}
 
 if (lstyle != LineSolid) 
-  XSetDashes( mDisp, DefGC(), 0, dash, 2);
+  XSetDashes( mDisp, DefGC(), 0, dash, dashlen);
   
-XSetLineAttributes(mDisp, DefGC(), lt, lstyle, CapButt, JoinMiter);
+XSetLineAttributes(mDisp, DefGC(), lw, lstyle, lcap, ljoin);
 mLAtt = att;
 return;
Index: /trunk/SophyaPI/PI/psfile.cc
===================================================================
--- /trunk/SophyaPI/PI/psfile.cc	(revision 1885)
+++ /trunk/SophyaPI/PI/psfile.cc	(revision 1886)
@@ -128,4 +128,10 @@
 /sc {scale}  bind def     /S  {gs 1 -1 sc show gr} bind def \n\
 /slw {setlinewidth} bind def\n\
+/sljoin {setlinejoin} bind def\n\
+/slcap {setlinecap} bind def\n\
+/slsolid {[] 0 setdash} bind def %% Solid-Line \n\
+/sldash {[6 6] 0 setdash} bind def %% Dashed-Line \n\
+/sldott {[2 6] 0 setdash} bind def %% Dotted-Line \n\
+/sldashdott {[2 6 6 6] 0 setdash} bind def %% Dash-Dotted-Line \n\
 /ff {findfont} bind def   /sf {setfont} bind def /scf {scalefont} bind def\n\
 /rl {rlineto} bind def    /tr {translate} bind def\n\
@@ -951,25 +957,8 @@
 			   PILineAtt LineAtt) {
 
-  int lw = 0 ; 
-
-  switch(LineAtt) {
-    case PI_NotDefLineAtt:
-      break ; 
-    case PI_NormalLine:
-      lw = 2. ; 
-      break ; 
-    case PI_ThinLine:
-      lw = 1 ; 
-      break ; 
-    case PI_ThickLine:
-      lw = 4 ;
-      break ; 
-  } 
-
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", lw) ; 
-    }
+
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
 
     /* Couleurs */
@@ -990,4 +979,8 @@
 		      PILineAtt LineAtt) {
 
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
+
     /* Changement couleurs ? */
     if ( (DrawColor != PI_NotDefColor) || (DrawColor != mDrawColor) ) {
@@ -996,9 +989,4 @@
     }
 
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", mLineAtt) ; 
-    }
 
     /* On dessine */
@@ -1013,9 +1001,7 @@
 		   PILineAtt LineAtt) {
 
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", mLineAtt) ; 
-    }
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
 
     /* Dessin du fond */
@@ -1041,4 +1027,8 @@
 			   PILineAtt LineAtt) {
 
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
+
     /* Couleurs */
     if ( (DrawColor != PI_NotDefColor) || (DrawColor != mDrawColor) ) {
@@ -1047,9 +1037,4 @@
     }
 
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", mLineAtt); 
-    }
 
     /* Dessin */
@@ -1064,9 +1049,7 @@
 		   PILineAtt LineAtt) {
 
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", mLineAtt) ; 
-    }
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
 
     /* Dessin du fond */
@@ -1094,9 +1077,7 @@
 		   PILineAtt LineAtt, bool cinc) {
 
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", mLineAtt) ; 
-    }
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
 
     /* Couleur */
@@ -1124,9 +1105,7 @@
 		   PILineAtt LineAtt, bool cinc) {
 
-    /* Line Att */
-    if ( (LineAtt != PI_NotDefLineAtt) || (LineAtt != mLineAtt) ) {
-        mLineAtt = LineAtt;
-	fprintf(mPSFile, "%d slw ", mLineAtt) ; 
-    }
+    /* Line Att */  
+    if ( (LineAtt != PI_NotDefLineAtt) && (LineAtt != mLineAtt) ) 
+      SelectLine(LineAtt);
 
     const char* cmd ; 
@@ -1251,4 +1230,59 @@
 }
 
+
+void  PSFile::SelectLine(PILineAtt att)
+{
+    
+      fprintf(mPSFile, "%d slw ", att.GetLineWidth()) ;
+      switch (att.GetLineDash()) {
+        case PI_LineSolid :
+	  fprintf(mPSFile, "slsolid ");
+	  break;
+        case PI_LineDashed :
+	  fprintf(mPSFile, "sldash ");
+	  break;
+        case PI_LineDotted :
+	  fprintf(mPSFile, "sldott ");
+	  break;
+        case PI_LineDashedDotted :
+	  fprintf(mPSFile, "sldashdott ");
+	  break;
+        default :
+	  fprintf(mPSFile, "slsolid ");
+	  break;
+      }
+
+      switch (att.GetLineJoin()) {
+        case PI_JoinMiter :
+	  fprintf(mPSFile, "0 sljoin ");
+	  break;
+        case PI_JoinRound :
+	  fprintf(mPSFile, "1 sljoin ");
+	  break;
+        case PI_JoinBevel :
+	  fprintf(mPSFile, "2 sljoin ");
+	  break;
+        default :
+	  fprintf(mPSFile, "0 sljoin ");
+	  break;
+      }
+
+      switch (att.GetLineCap()) {
+        case PI_CapButt :
+	  fprintf(mPSFile, "0 slcap \n");
+	  break;
+        case PI_CapRound :
+	  fprintf(mPSFile, "1 slcap \n");
+	  break;
+        case PI_CapProjecting :
+	  fprintf(mPSFile, "2 slcap \n");
+	  break;
+        default :
+	  fprintf(mPSFile, "0 slcap \n");	  
+	  break;
+      }
+      mLineAtt = att;
+}
+
 /* 
  *  Conversion
Index: /trunk/SophyaPI/PI/psfile.h
===================================================================
--- /trunk/SophyaPI/PI/psfile.h	(revision 1885)
+++ /trunk/SophyaPI/PI/psfile.h	(revision 1886)
@@ -180,4 +180,5 @@
 
 private:
+    void SelectLine(PILineAtt att);   // attributs de ligne ds le fichier PS
 
     /* Fichier ps/eps */
@@ -198,13 +199,13 @@
 
     /* Attributs graphiques, initialises par constructeur */
-    enum PIColors    mDrawColor;  /* Couleur de trace courante */
-    enum PIColors    mFillColor;  /* Couleur de remplissage courante */
-    enum PIFontAtt   mFontAtt; 
+    PIColors    mDrawColor;  /* Couleur de trace courante */
+    PIColors    mFillColor;  /* Couleur de remplissage courante */
+    PIFontAtt   mFontAtt; 
     //    enum PIFontSize  mFontSize; 
     int              mFontSize; 
-    enum PIFontName  mFontName; 
-    enum PILineAtt   mLineAtt;    /* Epaisseur d une ligne */
-    enum PIMarker    mMarker;     /* Marker courant */
-    int              mMarkerSize; /* Taille (en points) du marker courant */
+    PIFontName  mFontName; 
+    PILineAtt   mLineAtt;    /* Epaisseur d une ligne */
+    PIMarker    mMarker;     /* Marker courant */
+    int         mMarkerSize; /* Taille (en points) du marker courant */
     bool setFontDone ; /* Pour forcer la selection de Marker apres DrawString() */
 
