Changeset 323 in Sophya


Ignore:
Timestamp:
Jun 23, 1999, 10:27:50 AM (26 years ago)
Author:
ercodmgr
Message:

Trace de Marker-Star et introduction PIText avec ascenseur - Reza 23/06/99

Location:
trunk/SophyaPI/PI
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/Tests/pit1.cc

    r181 r323  
    378378
    379379// Creation d' zone texte multiligne
    380 txt = new PIText(MainWin(), "mltext", 290, 90, 5, 5);
     380txt = new PIText(MainWin(), "mltext", true, true, 290, 90, 5, 5);
    381381txt->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
    382 txt->SetMutiLineMode(true);
     382// txt->SetMutiLineMode(true);
    383383txt->SetTextEditable(false);
    384384txt->SetText("");
  • trunk/SophyaPI/PI/pigraphx.cc

    r316 r323  
    44
    55#include <stdio.h>
     6#include <math.h>
    67
    78#include <X11/Intrinsic.h>
     
    247248}
    248249
     250// Coordonnees pour tracer une etoile a 5 branches
     251static float starcoordx[10], starcoordy[10];
     252
    249253/* --Methode-- */
    250254void PIGraphicX::DrawMarker(PIGrCoord x0, PIGrCoord y0)
     
    252256float hmsz = mMrkSz/2;
    253257float dmsz = mMrkSz-hmsz;
    254 PIGrCoord x[4],y[4];
     258PIGrCoord x[11],y[11];
     259int k;
    255260PILineAtt clatt;
    256261
     
    291296      x[3] = -dmsz; y[3] = +mMrkSz; x[0] = (float)x0-hmsz; y[0] = (float)y0+hmsz; 
    292297      DrawFPolygon(x, y, 4);
     298      break;
     299    case  PI_StarMarker :
     300    case  PI_FStarMarker :
     301      for(k=0; k<10; k++) {
     302        x[k] = (int)(starcoordx[k]*(float)mMrkSz+(float)x0+0.5);
     303        y[k] = (int)(starcoordy[k]*(float)mMrkSz+(float)y0+0.5);
     304        }
     305      x[10] = x[0];   y[10] = y[0];
     306      if (mMrk == PI_StarMarker)  DrawPolygon(x, y, 11, false);
     307      else DrawFPolygon(x, y, 11, false);
    293308      break;
    294309    default :
     
    691706dpxgc = XCreateGC(mdsp, DefaultRootWindow(mdsp), GCFunction | GCPlaneMask, &xgv);
    692707
    693 return;
    694 }
    695 
    696 
    697 
    698 
     708/* Coordonnees pour une etoile a 5 branches */
     709double pio5 = M_PI/2.5; 
     710double pio52 = pio5/2.;
     711double cpi2 = M_PI/2.-pio5; 
     712double re = 1.2;  // Rayon externe
     713double ri = 0.5; //  rayon interne pour rext=1.2
     714for(int k=0; k<5; k++) {
     715  starcoordx[2*k] = cos(k*pio5+cpi2)*re;
     716  starcoordy[2*k] = -sin(k*pio5+cpi2)*re;
     717  starcoordx[2*k+1] = cos(k*pio5+pio52+cpi2)*ri;
     718  starcoordy[2*k+1] = -sin(k*pio5+pio52+cpi2)*ri;
     719  }
     720
     721}
     722
     723
     724
     725
  • trunk/SophyaPI/PI/pistdwdggen.cc

    r126 r323  
    7070
    7171PIButtonGen::PIButtonGen(PIContainerGen *par, char *nom, PIMessage msg,
    72                          int sx, int sy, int px, int py, PIBtnSign bsgn)
    73 : PIWdg(par, nom, sx, sy, px, py)
    74 {
    75 SetMsg(msg);
    76 mSgn = bsgn;
     72                         int sx, int sy, int px, int py)
     73: PIWdg(par, nom, sx, sy, px, py)
     74{
     75SetMsg(msg);
    7776}
    7877
     
    108107//  PIText(PIContainerGen* par, char* nom, int sx=10, int sy=10, int px=0, int py=0)
    109108//      Création d'un objet PIText.
     109//  PIText(PIContainerGen* par, char* nom, bool vsb, bool hsb, -
     110//  int sx=10, int sy=10, int px=0, int py=0)
     111//      Création d'un objet PIText multiligne, muni d'ascenseurs
     112//      Vertical si "vsb == true", horizontal si "hsb == true".
    110113// void SetText(string const& txt)
    111114//      Modifie  le contenu du champ texte.
     
    119122
    120123PITextGen::PITextGen(PIContainerGen *par, char *nom,
     124                         int sx, int sy, int px, int py)
     125: PIWdg(par, nom, sx, sy, px, py)
     126{}
     127
     128PITextGen::PITextGen(PIContainerGen *par, char *nom, bool vsb, bool hsb,
    121129                         int sx, int sy, int px, int py)
    122130: PIWdg(par, nom, sx, sy, px, py)
  • trunk/SophyaPI/PI/pistdwdggen.h

    r163 r323  
    1818
    1919//  Les differents types de boutons avec un signe dessus ...
    20 enum PIBtnSign {  PIBtn_Label=0, PIBtn_ArrowUp=1, PIBtn_ArrowDown=2, 
    21                                  PIBtn_ArrowLeft=3, PIBtn_ArrowRight=4 };
     20// enum PIBtnSign {  PIBtn_Label=0, PIBtn_ArrowUp=1, PIBtn_ArrowDown=2, 
     21//                                 PIBtn_ArrowLeft=3, PIBtn_ArrowRight=4 };
    2222
    2323class PIButtonGen : public PIWdg
     
    2828                     PIButtonGen(PIContainerGen* par, char* nom,
    2929                                 PIMessage msg = PIMsg_Click,
    30                                  int sx=10, int sy=10, int px=0, int py=0,
    31                                  PIBtnSign bsgn = PIBtn_Label);
     30                                 int sx=10, int sy=10, int px=0, int py=0);
    3231  virtual            ~PIButtonGen();
    3332
     
    3534  virtual void       ActivatePress(bool acp=false)=0;
    3635
    37 protected:
    38   PIBtnSign mSgn;
    3936};
    4037
     
    4845                     PITextGen(PIContainerGen* par, char* nom,
    4946                               int sx=10, int sy=10, int px=0, int py=0);
     47                     PITextGen(PIContainerGen* par, char* nom, bool vsb, bool hsb,
     48                               int sx=100, int sy=100, int px=0, int py=0);
    5049  virtual            ~PITextGen();
    5150  virtual void       SetText(string const&) = 0;
  • trunk/SophyaPI/PI/pistdwdgx.cc

    r157 r323  
    7979/* --Methode-- */
    8080PIButtonX::PIButtonX(PIContainerGen *par, char *nom, PIMessage msg,
    81                      int sx, int sy, int px, int py, PIBtnSign bsgn)
    82 : PIButtonGen(par, nom, msg, sx, sy, px, py, bsgn)
     81                     int sx, int sy, int px, int py)
     82: PIButtonGen(par, nom, msg, sx, sy, px, py)
    8383{
    8484
     
    9090XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
    9191XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
    92 
     92CreateXtWdg(nom, xmPushButtonWidgetClass, NULL, sx, sy, px, py);
     93
     94/*
    9395if (bsgn == PIBtn_Label)
    9496  CreateXtWdg(nom, xmPushButtonWidgetClass, NULL, sx, sy, px, py);
     
    112114    }
    113115  }
    114 
     116*/
    115117XtSetValues(XtWdg(), warg, n);
    116118XtAddCallback(XtWdg(), XmNactivateCallback,
     
    160162int n = 0;
    161163CreateXtWdg(nom, xmTextWidgetClass, NULL, sx, sy, px, py);
     164mtext = XtWdg();
    162165XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
    163166// XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
    164 XtSetValues(XtWdg(), warg, n);
     167XtSetValues(mtext, warg, n);
    165168SetMutiLineMode(false);
    166169SetTextEditable(true);
     
    169172
    170173/* --Methode-- */
     174PITextX::PITextX(PIContainerGen *par, char *nom, bool vsb, bool hsb,
     175                 int sx, int sy, int px, int py)
     176: PITextGen(par, nom, vsb, hsb, sx, sy, px, py)
     177{
     178Arg warg[6];
     179int n = 0;
     180XtSetArg(warg[n],XmNeditMode, XmMULTI_LINE_EDIT);  n++;
     181XtSetArg(warg[n],XmNscrollBarDisplayPolicy, XmSTATIC); n++;
     182XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
     183if (vsb)
     184  XtSetArg(warg[n],XmNscrollHorizontal, True); n++;
     185if (hsb)
     186  XtSetArg(warg[n],XmNscrollVertical, True); n++;
     187mtext = XmCreateScrolledText(((PIWdgX *)par)->XtWdg(), nom, warg, n);
     188XtManageChild(mtext);
     189XtWdg() = XtParent(mtext);
     190SetSize(sx, sy);
     191SetPos(px, py);
     192wmis = k_wmi_normal ;
     193stmng = 0;
     194// XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
     195SetTextEditable(true);
     196Manage();
     197}
     198
     199/* --Methode-- */
    171200PITextX::~PITextX()
    172201{}
     
    175204void PITextX::SetText(string const& s)
    176205{
    177 XmTextSetString(XtWdg(), (char *)s.c_str());
     206XmTextSetString(mtext, (char *)s.c_str());
    178207return;
    179208}
     
    183212{
    184213char *txtb;
    185 txtb = XmTextGetString(XtWdg());
     214txtb = XmTextGetString(mtext);
    186215string s(txtb);
    187216XtFree(txtb);
     
    200229  { XtSetArg(warg[n],XmNeditMode, XmSINGLE_LINE_EDIT);  n++; }
    201230
    202 XtSetValues(XtWdg(), warg, n);
     231XtSetValues(mtext, warg, n);
    203232return;
    204233}
     
    215244  { XtSetArg(warg[n],XmNeditable, FALSE);  n++; }
    216245
    217 XtSetValues(XtWdg(), warg, n);
     246XtSetValues(mtext, warg, n);
    218247return;
    219248}
     
    236265
    237266if (Msg() && !msg)
    238   XtRemoveCallback(XtWdg(), XmNactivateCallback,
     267  XtRemoveCallback(mtext, XmNactivateCallback,
    239268                   (XtCallbackProc)text_action, (XtPointer)this);
    240269if (!Msg() && msg)
    241   XtAddCallback(XtWdg(), XmNactivateCallback,
     270  XtAddCallback(mtext, XmNactivateCallback,
    242271                (XtCallbackProc)text_action, (XtPointer)this);
    243272
  • trunk/SophyaPI/PI/pistdwdgx.h

    r126 r323  
    1919                     PIButtonX(PIContainerGen *par, char *nom,
    2020                               PIMessage msg = PIMsg_Click,
    21                                int sx=10, int sy=10, int px=0, int py=0,
    22                                PIBtnSign bsgn = PIBtn_Label);
     21                               int sx=10, int sy=10, int px=0, int py=0);
    2322  virtual            ~PIButtonX();
    2423
     
    3938                     PITextX(PIContainerGen *par, char *nom,
    4039                                  int sx=10, int sy=10, int px=0, int py=0);
     40                     PITextX(PIContainerGen* par, char* nom, bool vsb, bool hsb,
     41                             int sx=100, int sy=100, int px=0, int py=0);
    4142  virtual            ~PITextX();
    4243  virtual void       SetText(string const&);
     
    4748
    4849  virtual void       SetMsg(PIMessage msg=0);
     50
     51protected:
     52
     53SysDWdg mtext; 
    4954};
    5055
Note: See TracChangeset for help on using the changeset viewer.