Index: /trunk/SophyaPI/PI/Tests/pit1.cc
===================================================================
--- /trunk/SophyaPI/PI/Tests/pit1.cc	(revision 322)
+++ /trunk/SophyaPI/PI/Tests/pit1.cc	(revision 323)
@@ -378,7 +378,7 @@
 
 // Creation d' zone texte multiligne
-txt = new PIText(MainWin(), "mltext", 290, 90, 5, 5);
+txt = new PIText(MainWin(), "mltext", true, true, 290, 90, 5, 5);
 txt->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-txt->SetMutiLineMode(true);
+// txt->SetMutiLineMode(true);
 txt->SetTextEditable(false);
 txt->SetText("");
Index: /trunk/SophyaPI/PI/pigraphx.cc
===================================================================
--- /trunk/SophyaPI/PI/pigraphx.cc	(revision 322)
+++ /trunk/SophyaPI/PI/pigraphx.cc	(revision 323)
@@ -4,4 +4,5 @@
 
 #include <stdio.h>
+#include <math.h>
 
 #include <X11/Intrinsic.h>
@@ -247,4 +248,7 @@
 }
 
+// Coordonnees pour tracer une etoile a 5 branches 
+static float starcoordx[10], starcoordy[10];
+
 /* --Methode-- */
 void PIGraphicX::DrawMarker(PIGrCoord x0, PIGrCoord y0)
@@ -252,5 +256,6 @@
 float hmsz = mMrkSz/2;
 float dmsz = mMrkSz-hmsz;
-PIGrCoord x[4],y[4];
+PIGrCoord x[11],y[11];
+int k;
 PILineAtt clatt;
 
@@ -291,4 +296,14 @@
       x[3] = -dmsz; y[3] = +mMrkSz; x[0] = (float)x0-hmsz; y[0] = (float)y0+hmsz;  
       DrawFPolygon(x, y, 4);
+      break;
+    case  PI_StarMarker :
+    case  PI_FStarMarker :
+      for(k=0; k<10; k++) {
+        x[k] = (int)(starcoordx[k]*(float)mMrkSz+(float)x0+0.5);
+        y[k] = (int)(starcoordy[k]*(float)mMrkSz+(float)y0+0.5);
+        }
+      x[10] = x[0];   y[10] = y[0];
+      if (mMrk == PI_StarMarker)  DrawPolygon(x, y, 11, false);
+      else DrawFPolygon(x, y, 11, false);
       break;
     default :
@@ -691,8 +706,20 @@
 dpxgc = XCreateGC(mdsp, DefaultRootWindow(mdsp), GCFunction | GCPlaneMask, &xgv);
 
-return;
-}
-
-
-
-
+/* Coordonnees pour une etoile a 5 branches */
+double pio5 = M_PI/2.5;  
+double pio52 = pio5/2.;
+double cpi2 = M_PI/2.-pio5;  
+double re = 1.2;  // Rayon externe
+double ri = 0.5; //  rayon interne pour rext=1.2
+for(int k=0; k<5; k++) {
+  starcoordx[2*k] = cos(k*pio5+cpi2)*re;
+  starcoordy[2*k] = -sin(k*pio5+cpi2)*re;
+  starcoordx[2*k+1] = cos(k*pio5+pio52+cpi2)*ri;
+  starcoordy[2*k+1] = -sin(k*pio5+pio52+cpi2)*ri;
+  }
+
+}
+
+
+
+
Index: /trunk/SophyaPI/PI/pistdwdggen.cc
===================================================================
--- /trunk/SophyaPI/PI/pistdwdggen.cc	(revision 322)
+++ /trunk/SophyaPI/PI/pistdwdggen.cc	(revision 323)
@@ -70,9 +70,8 @@
 
 PIButtonGen::PIButtonGen(PIContainerGen *par, char *nom, PIMessage msg,
-                         int sx, int sy, int px, int py, PIBtnSign bsgn)
-: PIWdg(par, nom, sx, sy, px, py)
-{
-SetMsg(msg);
-mSgn = bsgn;
+                         int sx, int sy, int px, int py)
+: PIWdg(par, nom, sx, sy, px, py)
+{
+SetMsg(msg);
 }
 
@@ -108,4 +107,8 @@
 //  PIText(PIContainerGen* par, char* nom, int sx=10, int sy=10, int px=0, int py=0)
 //	Création d'un objet PIText.
+//  PIText(PIContainerGen* par, char* nom, bool vsb, bool hsb, -
+//  int sx=10, int sy=10, int px=0, int py=0)
+//	Création d'un objet PIText multiligne, muni d'ascenseurs 
+//	Vertical si "vsb == true", horizontal si "hsb == true".
 // void SetText(string const& txt)
 //	Modifie  le contenu du champ texte.
@@ -119,4 +122,9 @@
 
 PITextGen::PITextGen(PIContainerGen *par, char *nom,
+                         int sx, int sy, int px, int py)
+: PIWdg(par, nom, sx, sy, px, py)
+{}
+
+PITextGen::PITextGen(PIContainerGen *par, char *nom, bool vsb, bool hsb, 
                          int sx, int sy, int px, int py)
 : PIWdg(par, nom, sx, sy, px, py)
Index: /trunk/SophyaPI/PI/pistdwdggen.h
===================================================================
--- /trunk/SophyaPI/PI/pistdwdggen.h	(revision 322)
+++ /trunk/SophyaPI/PI/pistdwdggen.h	(revision 323)
@@ -18,6 +18,6 @@
 
 //  Les differents types de boutons avec un signe dessus ... 
-enum PIBtnSign {  PIBtn_Label=0, PIBtn_ArrowUp=1, PIBtn_ArrowDown=2,  
-                                 PIBtn_ArrowLeft=3, PIBtn_ArrowRight=4 };
+// enum PIBtnSign {  PIBtn_Label=0, PIBtn_ArrowUp=1, PIBtn_ArrowDown=2,  
+//                                 PIBtn_ArrowLeft=3, PIBtn_ArrowRight=4 };
 
 class PIButtonGen : public PIWdg
@@ -28,6 +28,5 @@
                      PIButtonGen(PIContainerGen* par, char* nom, 
                                  PIMessage msg = PIMsg_Click,
-                                 int sx=10, int sy=10, int px=0, int py=0,
-                                 PIBtnSign bsgn = PIBtn_Label);
+                                 int sx=10, int sy=10, int px=0, int py=0);
   virtual            ~PIButtonGen();
 
@@ -35,6 +34,4 @@
   virtual void       ActivatePress(bool acp=false)=0;
 
-protected:
-  PIBtnSign mSgn;
 };
 
@@ -48,4 +45,6 @@
   		     PITextGen(PIContainerGen* par, char* nom,
          		       int sx=10, int sy=10, int px=0, int py=0);
+  		     PITextGen(PIContainerGen* par, char* nom, bool vsb, bool hsb,
+         		       int sx=100, int sy=100, int px=0, int py=0);
   virtual	     ~PITextGen();
   virtual void       SetText(string const&) = 0;
Index: /trunk/SophyaPI/PI/pistdwdgx.cc
===================================================================
--- /trunk/SophyaPI/PI/pistdwdgx.cc	(revision 322)
+++ /trunk/SophyaPI/PI/pistdwdgx.cc	(revision 323)
@@ -79,6 +79,6 @@
 /* --Methode-- */
 PIButtonX::PIButtonX(PIContainerGen *par, char *nom, PIMessage msg, 
-                     int sx, int sy, int px, int py, PIBtnSign bsgn)
-: PIButtonGen(par, nom, msg, sx, sy, px, py, bsgn)
+                     int sx, int sy, int px, int py)
+: PIButtonGen(par, nom, msg, sx, sy, px, py)
 {
 
@@ -90,5 +90,7 @@
 XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
 XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
-
+CreateXtWdg(nom, xmPushButtonWidgetClass, NULL, sx, sy, px, py);
+
+/*
 if (bsgn == PIBtn_Label)
   CreateXtWdg(nom, xmPushButtonWidgetClass, NULL, sx, sy, px, py);
@@ -112,5 +114,5 @@
     }
   }
-
+*/
 XtSetValues(XtWdg(), warg, n);
 XtAddCallback(XtWdg(), XmNactivateCallback, 
@@ -160,7 +162,8 @@
 int n = 0;
 CreateXtWdg(nom, xmTextWidgetClass, NULL, sx, sy, px, py);
+mtext = XtWdg();
 XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
 // XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
-XtSetValues(XtWdg(), warg, n);
+XtSetValues(mtext, warg, n);
 SetMutiLineMode(false);
 SetTextEditable(true);
@@ -169,4 +172,30 @@
 
 /* --Methode-- */
+PITextX::PITextX(PIContainerGen *par, char *nom, bool vsb, bool hsb,
+                 int sx, int sy, int px, int py)
+: PITextGen(par, nom, vsb, hsb, sx, sy, px, py)
+{
+Arg warg[6];
+int n = 0;
+XtSetArg(warg[n],XmNeditMode, XmMULTI_LINE_EDIT);  n++; 
+XtSetArg(warg[n],XmNscrollBarDisplayPolicy, XmSTATIC); n++;
+XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
+if (vsb) 
+  XtSetArg(warg[n],XmNscrollHorizontal, True); n++;
+if (hsb)
+  XtSetArg(warg[n],XmNscrollVertical, True); n++;
+mtext = XmCreateScrolledText(((PIWdgX *)par)->XtWdg(), nom, warg, n);
+XtManageChild(mtext);
+XtWdg() = XtParent(mtext);
+SetSize(sx, sy);
+SetPos(px, py);
+wmis = k_wmi_normal ;
+stmng = 0;
+// XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
+SetTextEditable(true);
+Manage();
+}
+
+/* --Methode-- */
 PITextX::~PITextX()
 {}
@@ -175,5 +204,5 @@
 void PITextX::SetText(string const& s)
 {
-XmTextSetString(XtWdg(), (char *)s.c_str());
+XmTextSetString(mtext, (char *)s.c_str());
 return;
 }
@@ -183,5 +212,5 @@
 {
 char *txtb;
-txtb = XmTextGetString(XtWdg());
+txtb = XmTextGetString(mtext);
 string s(txtb);
 XtFree(txtb);
@@ -200,5 +229,5 @@
   { XtSetArg(warg[n],XmNeditMode, XmSINGLE_LINE_EDIT);  n++; }
 
-XtSetValues(XtWdg(), warg, n);
+XtSetValues(mtext, warg, n);
 return;
 }
@@ -215,5 +244,5 @@
   { XtSetArg(warg[n],XmNeditable, FALSE);  n++; }
 
-XtSetValues(XtWdg(), warg, n);
+XtSetValues(mtext, warg, n);
 return;
 }
@@ -236,8 +265,8 @@
 
 if (Msg() && !msg)
-  XtRemoveCallback(XtWdg(), XmNactivateCallback, 
+  XtRemoveCallback(mtext, XmNactivateCallback, 
                    (XtCallbackProc)text_action, (XtPointer)this);
 if (!Msg() && msg)
-  XtAddCallback(XtWdg(), XmNactivateCallback, 
+  XtAddCallback(mtext, XmNactivateCallback, 
                 (XtCallbackProc)text_action, (XtPointer)this);
 
Index: /trunk/SophyaPI/PI/pistdwdgx.h
===================================================================
--- /trunk/SophyaPI/PI/pistdwdgx.h	(revision 322)
+++ /trunk/SophyaPI/PI/pistdwdgx.h	(revision 323)
@@ -19,6 +19,5 @@
                      PIButtonX(PIContainerGen *par, char *nom, 
                                PIMessage msg = PIMsg_Click,
-                               int sx=10, int sy=10, int px=0, int py=0,
-                               PIBtnSign bsgn = PIBtn_Label);
+                               int sx=10, int sy=10, int px=0, int py=0);
   virtual            ~PIButtonX();
 
@@ -39,4 +38,6 @@
                      PITextX(PIContainerGen *par, char *nom, 
                                   int sx=10, int sy=10, int px=0, int py=0);
+  		     PITextX(PIContainerGen* par, char* nom, bool vsb, bool hsb,
+         		     int sx=100, int sy=100, int px=0, int py=0);
   virtual            ~PITextX();
   virtual void       SetText(string const&);
@@ -47,4 +48,8 @@
 
   virtual void       SetMsg(PIMessage msg=0);
+
+protected:
+
+SysDWdg mtext;  
 };
 
