Changeset 110 in Sophya for trunk/SophyaPI


Ignore:
Timestamp:
Jun 12, 1998, 6:37:41 PM (27 years ago)
Author:
ansari
Message:

Suppression des PIPUMenu et PIPDMenu (Version X11) - A faire pour Mac
Modification des PIOptMenu, en particulier PIOptMenuX Reza 12/06/98

Location:
trunk/SophyaPI/PI
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/piapplgen.cc

    r106 r110  
    4444// PIMenubar*   Menubar()
    4545//      Renvoie le pointeur de l'objet "PIMenubar" associé à l'application.
    46 // void AppendMenu(PIPDMenu *pdm)
    47 //      Ajoute le "PIPDMenu *pdm" au Menubar de l'application. Le titre
     46// void AppendMenu(PIMenu *pdm)
     47//      Ajoute le "PIMenu *pdm" au Menubar de l'application. Le titre
    4848//      du menu dans le menubar est le nom de l'objet menu.
    4949// void Run() Stop
     
    6868
    6969
    70 void PIApplicationGen::AppendMenu(PIPDMenu *pdm)
     70void PIApplicationGen::AppendMenu(PIMenu *pdm)
    7171{
    7272if (menubar)
  • trunk/SophyaPI/PI/piapplgen.h

    r92 r110  
    2828        virtual PIMenubar*        Menubar() {return menubar;}
    2929
    30         virtual void              AppendMenu(PIPDMenu *pdm);
     30        virtual void              AppendMenu(PIMenu *pdm);
    3131
    3232        virtual void              PrefCompSz(int& szx, int& szy) = 0;
  • trunk/SophyaPI/PI/piapplx.cc

    r106 r110  
    9999XtAppContext * appctx = PIXtAppCtx(szx, szy);
    100100
     101// Pour appeler FinishCreate() des objets dans la fenetre principale
     102MBCont()->FinishCreate();
    101103while (mStop)
    102104  {
  • trunk/SophyaPI/PI/picons.cc

    r106 r110  
    1212//  Le menu qui va servir a changer de fontes, couleurs, ...
    1313// de bouton-3
    14 static PIPUMenu* opmc=NULL;
     14static PIMenu* opmc=NULL;
    1515static int nb_opmc = 0;
    1616
     
    3636mCCP = mCLC = 0;
    3737mDCOff = 0;
     38mScb = NULL;
    3839
    3940SetMsg(msg);
     
    7172// Pour le menu des options : Fontes, couleur, ...
    7273if (!opmc) {
    73   opmc = new PIPUMenu((PIMsgHandler *)this, "OptCons");
     74  opmc = new PIMenu(this, "OptCons", k_PopupMenu);
    7475  opmc->AppendItem("SmallFont", 3101);
    7576  opmc->AppendItem("NormalFont", 3102);
  • trunk/SophyaPI/PI/picontainerx.cc

    r60 r110  
    2626{}
    2727
     28/* --Methode-- */
     29void PIContainerX::FinishCreate()
     30{
     31int k;
     32for(k=0; k<mNCh; k++)  mChilds[k]->FinishCreate();
     33}
     34
    2835/* --Methode--
    2936void PIContainerX::Show()
  • trunk/SophyaPI/PI/picontainerx.h

    r52 r110  
    1616                           int sx=10, int sy=10, int px=0, int py=0);
    1717
     18  virtual void   FinishCreate(); // apelle FinishCreate() pour les descendants
     19
    1820  virtual     ~PIContainerX();
    1921
  • trunk/SophyaPI/PI/pihisto2d.cc

    r107 r110  
    501501
    502502// menus bar
    503 mPop[0] = new PIPUMenu((PIMsgHandler *)this,"Display");
    504 mPop[0]->AppendItem("Carres Var."  , 6101);
    505 mPop[0]->AppendItem("....."        , 6102);
    506 mPop[0]->AppendItem(".+12..Z*"     , 6103);
    507 mPop[0]->AppendItem("Carres Pleins", 6104);
    508 mOPop[0] = new PIOptMenu(this,mPop[0],100,25,10,10);
     503mOPop[0] = new PIOptMenu(this, "optmen-h2d-1" ,100,25,10,10);
     504mOPop[0]->AppendItem("Carres Var."  , 6101);
     505mOPop[0]->AppendItem("....."        , 6102);
     506mOPop[0]->AppendItem(".+12..Z*"     , 6103);
     507mOPop[0]->AppendItem("Carres Pleins", 6104);
    509508sdum = "Carres Var."; mOPop[0]->SetValueStr(sdum);
    510509
    511 mPop[1] = new PIPUMenu((PIMsgHandler *)this,"Scale");
    512 mPop[1]->AppendItem("Lineaire", 6201);
    513 mPop[1]->AppendItem("Log10"   , 6202);
    514 mOPop[1] = new PIOptMenu(this,mPop[1],100,25,10,40);
     510mOPop[1] = new PIOptMenu(this, "optmen-h2d-2", 100,25,10,40);
     511mOPop[1]->AppendItem("Lineaire", 6201);
     512mOPop[1]->AppendItem("Log10"   , 6202);
    515513sdum = "Lineaire"; mOPop[1]->SetValueStr(sdum);
    516514
    517 mPop[2] = new PIPUMenu((PIMsgHandler *)this,"Color");
    518 mPop[2]->AppendItem("B&W"      , 6301);
    519 mPop[2]->AppendItem("Grey32"   , 6302);
    520 mPop[2]->AppendItem("GreyInv32", 6303);
    521 mPop[2]->AppendItem("RJ32"     , 6304);
    522 mPop[2]->AppendItem("BR32"     , 6305);
    523 mPop[2]->AppendItem("RV32"     , 6306);
    524 mPop[2]->AppendItem("Arc16"    , 6307);
    525 mOPop[2] = new PIOptMenu(this,mPop[2],100,25,10,70);
     515mOPop[2] = new PIOptMenu(this, "optmen-h2d-3", 100,25,10,70);
     516mOPop[2]->AppendItem("B&W"      , 6301);
     517mOPop[2]->AppendItem("Grey32"   , 6302);
     518mOPop[2]->AppendItem("GreyInv32", 6303);
     519mOPop[2]->AppendItem("RJ32"     , 6304);
     520mOPop[2]->AppendItem("BR32"     , 6305);
     521mOPop[2]->AppendItem("RV32"     , 6306);
     522mOPop[2]->AppendItem("Arc16"    , 6307);
    526523sdum = "B&W"; mOPop[2]->SetValueStr(sdum);
    527524
     
    559556int i;
    560557if(dbg) printf("H2WinArg::~H2WinArg %lx\n",(long)this);
    561 for(i=0;i<3;i++) {delete mPop[i]; delete mOPop[i];}
     558for(i=0;i<3;i++) delete mOPop[i];
    562559for(i=0;i<4;i++) delete mBut[i];
    563560for(i=0;i<4;i++) delete mLab[i];
  • trunk/SophyaPI/PI/pihisto2d.h

    r107 r110  
    8484  PIH2DWdg  * mH2Wdg;
    8585
    86   PIPUMenu  * mPop[3];
    8786  PIOptMenu * mOPop[3];
    8887  PIButton  * mBut[4];
  • trunk/SophyaPI/PI/pimenubargen.h

    r106 r110  
    1414                    ~PIMenubarGen();
    1515                                   
    16   virtual void      AppendMenu(PIPDMenu *pdm)=0;
    17   virtual void      RemoveMenu(PIPDMenu *pdm)=0;
    18   virtual void      SetSensitivity(PIPDMenu *pdm, bool sens=true)=0;
    19   virtual bool      IsSensitive(PIPDMenu *pdm)=0;
     16  virtual void      AppendMenu(PIMenu *pdm)=0;
     17  virtual void      RemoveMenu(PIMenu *pdm)=0;
     18  virtual void      SetSensitivity(PIMenu *pdm, bool sens=true)=0;
     19  virtual bool      IsSensitive(PIMenu *pdm)=0;
    2020
    2121  virtual long      kind() {return ClassId; }
  • trunk/SophyaPI/PI/pimenubarx.cc

    r106 r110  
    4343
    4444/* --Methode-- */
    45 void PIMenubarX::AppendMenu(PIPDMenu *pdm)
     45void PIMenubarX::AppendMenu(PIMenu *pdm)
    4646{
    4747_pimbxit_ *buto;
     
    6767
    6868/* --Methode-- */
    69 void PIMenubarX::RemoveMenu(PIPDMenu *pdm)
     69void PIMenubarX::RemoveMenu(PIMenu *pdm)
    7070{
    7171int i,j;
     
    8080
    8181/* --Methode-- */
    82 void PIMenubarX::SetSensitivity(PIPDMenu *pdm, bool sens)
     82void PIMenubarX::SetSensitivity(PIMenu *pdm, bool sens)
    8383{
    8484int i;
     
    9393
    9494/* --Methode-- */
    95 bool PIMenubarX::IsSensitive(PIPDMenu *pdm)
     95bool PIMenubarX::IsSensitive(PIMenu *pdm)
    9696{
    9797int i;
  • trunk/SophyaPI/PI/pimenubarx.h

    r106 r110  
    77{
    88SysDWdg itb;
    9 PIPDMenu *pdm;
     9PIMenu *pdm;
    1010};
    1111
     
    1515                    ~PIMenubarX();
    1616
    17   virtual void      AppendMenu(PIPDMenu *pdm);
    18   virtual void      RemoveMenu(PIPDMenu *pdm);
    19   virtual void      SetSensitivity(PIPDMenu *pdm, bool sens=true);
    20   virtual bool      IsSensitive(PIPDMenu *pdm);
     17  virtual void      AppendMenu(PIMenu *pdm);
     18  virtual void      RemoveMenu(PIMenu *pdm);
     19  virtual void      SetSensitivity(PIMenu *pdm, bool sens=true);
     20  virtual bool      IsSensitive(PIMenu *pdm);
    2121
    2222 protected:
  • trunk/SophyaPI/PI/pimenugen.cc

    r2 r110  
    11#include "pimenugen.h"
    22
    3 PIMenuGen::PIMenuGen(PIMsgHandler* par, char* nom, PIMenuType pdpu)
     3PIMenuGen::PIMenuGen(PIWdg* par, char* nom, PIMenuType pdpu)
    44: PIWdg(NULL, nom) , mMTyp(pdpu)
    55{
  • trunk/SophyaPI/PI/pimenugen.h

    r106 r110  
    55#include PIWDG_H
    66
    7 enum PIMenuType { k_PopupMenu = 1, k_PulldownMenu = 2 };
     7enum PIMenuType { k_UTMenu = 0, k_PopupMenu = 1, k_PulldownMenu = 2 };
    88
    99
     
    1212  enum {ClassId = 2500};
    1313
    14                   PIMenuGen(PIMsgHandler* par, char* nom, PIMenuType pdpu);
     14                  PIMenuGen(PIWdg* par, char* nom, PIMenuType pdpu=k_UTMenu);
    1515                  ~PIMenuGen();
    1616                                   
     
    4141  virtual void    Show()=0;
    4242  virtual void    Show(PIWdg *w, int px, int py)=0;
    43   virtual void    Hide()=0;
    4443
    4544  virtual long    kind() {return ClassId; }
  • trunk/SophyaPI/PI/pimenux.cc

    r106 r110  
    22#include<iostream.h>
    33
    4 #include "pimenux.h"
     4#include "pisysdep.h"
     5#include PIMENUBAR_H
    56
    67#include <Xm/Xm.h>
     
    3940pim = (PIMenuX *) (cusd->pmen);
    4041// pim->Hide();
    41 pim->Send(cusd->msg, PIMsg_Click );
     42pim->SendSelf(cusd->msg, PIMsg_Click );
    4243#ifdef DEBUG_PIMenuX
    4344printf("%%%Debug_menu_action: Msg= %d  %lx\n", (int)cusd->msg, (long)pim);
     
    5960if (calld->set == True)  cusd->togstate = toggmenbut = true;
    6061else  cusd->togstate = toggmenbut = false;
    61 pim->Send(cusd->msg, PIMsg_DataChanged, (void *)(&toggmenbut));
     62pim->SendSelf(cusd->msg, PIMsg_DataChanged, (void *)(&toggmenbut));
    6263return;
    6364}
     
    6869
    6970/* --Methode-- */
    70 PIMenuX::PIMenuX(PIMsgHandler *par, char *nom, PIMenuType pdpu)
     71PIMenuX::PIMenuX(PIWdg* par, char *nom, PIMenuType pdpu)
    7172: PIMenuGen(par, nom, pdpu)
    7273{
     
    7475mBut = new _pimxit_[mNItemMax];
    7576
    76 SysDWdg tw= menuXTopWdg;
    77 if (tw == NULL) tw = PIXtTopWdg();
    78 
     77SysDWdg tw;
     78if (par == NULL) {
     79  tw = menuXTopWdg;
     80  if (tw == NULL) tw = PIXtTopWdg();
     81}
     82else  tw = par->XtWdg();
     83// Si le type de menu pdpu n'est pas specifie, on le decide
     84// en fonction du type de l'objet parent
     85if (pdpu == k_UTMenu) {
     86  if  ( (par->kind() == PIMenu::ClassId) || (par->kind() == PIMenubar::ClassId) )  pdpu = k_PulldownMenu ;
     87  else pdpu = k_PopupMenu ;
     88}
    7989if (pdpu == k_PopupMenu)
    8090  XtWdg() = XmCreatePopupMenu( tw, nom, NULL, 0);
     
    8292  XtWdg() = XmCreatePulldownMenu( tw, nom, NULL, 0);
    8393
     94mMTyp = pdpu;
    8495wmis = k_wmi_normal ;
    8596stmng = 0;
     
    111122{
    112123if (pdm->MType() !=  k_PulldownMenu) {
    113   cerr << "PIMenuX::AppendPDMenu()/Erreur: PullDownMenu PIPDMenu seulement ... " << endl;
     124  cerr << "PIMenuX::AppendPDMenu()/Erreur: PullDownMenu seulement ... " << endl;
    114125  return;
    115126  }
     
    238249}
    239250
    240 
    241 /* --Methode-- */
    242 void PIMenuX::Show()
    243 {
    244 Manage();
    245 }
    246 
    247 /* --Methode-- */
    248 void PIMenuX::Show(PIWdg* /*w*/, int /*px*/, int /*py*/)
    249 {
    250 Manage();
    251 }
    252 
    253 
    254 /* --Methode-- */
    255 void PIMenuX::Hide()
    256 {
    257 // UnManage();
    258 }
    259251
    260252
     
    410402
    411403
    412 /* --Methode-- */
    413 PIPUMenuX::PIPUMenuX(PIMsgHandler* par, char* nom)
    414 : PIMenuX(par, nom, k_PopupMenu)
    415 {
    416 }
    417 
    418 /* --Methode-- */
    419 PIPUMenuX::~PIPUMenuX()
    420 {
    421 }
    422 
    423 void PIPUMenuX::Show()
    424 {
     404
     405void PIMenuX::Show()
     406{
     407if (MType() !=  k_PopupMenu) {
     408  cerr << "PIMenuX::Show()/Erreur: PopupMenu seulement ... " << endl;
     409  return;
     410  }
     411
    425412// XEvent  mevt;
    426413XButtonEvent evt;
     
    449436
    450437/* --Methode-- */
    451 void PIPUMenuX::Show(PIWdg *w, int px, int py)
    452 {
     438void PIMenuX::Show(PIWdg *w, int px, int py)
     439{
     440if (MType() !=  k_PopupMenu) {
     441  cerr << "PIMenuX::Show(w, px, py)/Erreur: PopupMenu seulement ... " << endl;
     442  return;
     443  }
    453444// This method should only be used by a button press ...
    454445int xr, yr;
     
    483474
    484475
    485 /* --Methode-- */
    486 PIPDMenuX::PIPDMenuX(PIMsgHandler* par, char* nom)
    487 : PIMenuX(par, nom, k_PulldownMenu)
    488 {
    489 }
    490 
    491 /* --Methode-- */
    492 PIPDMenuX::~PIPDMenuX()
    493 {
    494 }
    495 
    496 
     476
     477
  • trunk/SophyaPI/PI/pimenux.h

    r106 r110  
    2020class PIMenuX : public PIMenuGen {
    2121public:
    22                   PIMenuX(PIMsgHandler* par, char* nom, PIMenuType pdpu);
     22                  PIMenuX(PIWdg* par, char* nom, PIMenuType pdpu=k_UTMenu);
    2323                  ~PIMenuX();
    2424                                   
     
    4949  virtual void    Show();
    5050  virtual void    Show(PIWdg *w, int px, int py);
    51   virtual void    Hide();
     51
    5252
    5353// Pour usage prive et par OptionMenu, ...
     
    6767};
    6868
    69 class PIPUMenuX : public PIMenuX
    70 {
    71 public:
    72                  PIPUMenuX(PIMsgHandler* par, char* nom);
    73                  ~PIPUMenuX();
    74 
    75   virtual void   Show();
    76   virtual void   Show(PIWdg *w, int px, int py);
    77 
    78 protected:
    79      
    80 };
    81 
    82 class PIPDMenuX : public PIMenuX
    83 {
    84 public:
    85                  PIPDMenuX(PIMsgHandler* par, char* nom);
    86                  ~PIPDMenuX();
    87 
    88 protected:
    89      
    90 };
    9169
    9270typedef PIMenuX        PIMenu;
    93 typedef PIPUMenuX      PIPUMenu;
    94 typedef PIPDMenuX      PIPDMenu;
    95 
    9671
    9772
  • trunk/SophyaPI/PI/pimsghandler.cc

    r59 r110  
    6969//      optionnel "data" au parent, déclenchant ainsi l'execution
    7070//      de la méthode "Process(...)" du père.
     71// void  SendSelf(PIMessage msg, PIMsgMod mm=0, void* data=NULL)
     72//      Envoie le message "msg" avec le modifier "mm", et l'argument
     73//      optionnel "data" à l'objet lui-même, déclenchant ainsi l'execution
     74//      de la méthode "Process(...)" de l'objet.
    7175//--
    7276
  • trunk/SophyaPI/PI/pimsghandler.h

    r80 r110  
    4747
    4848        virtual void         Send(PIMessage msg, PIMsgMod mm=0, void* data=NULL);
     49        inline  void         SendSelf(PIMessage msg, PIMsgMod mm=0, void* data=NULL)
     50                                  { Process(BuildMsg(msg, mm), this, data); }
    4951
    5052        inline  PIMessage    UserMsg(PIMessage msg) { return (msg >> 8); }
  • trunk/SophyaPI/PI/pioptmenugen.cc

    r8 r110  
    22
    33
    4 PIOptMenuGen::PIOptMenuGen(PIContainerGen* par, PIPUMenu *pdm,
    5                          int sx, int sy, int px, int py)
    6 : PIContainer(par, (char*) pdm->Nom().c_str(), sx, sy, px, py) // Attention au const !
     4PIOptMenuGen::PIOptMenuGen(PIContainerGen* par, char* nom, int sx, int sy, int px, int py)
     5: PIWdg(par, nom, sx, sy, px, py) // Attention au const !
    76{
    87}
  • trunk/SophyaPI/PI/pioptmenugen.h

    r23 r110  
    44#include <string>
    55#include "pisysdep.h"
    6 #include PICONT_H
    76#include PIMENU_H
    87
    9 class PIOptMenuGen : public PIContainer {
     8class PIOptMenuGen : public PIWdg {
    109public:
    1110  enum {ClassId = 1100};
    1211
    13                      PIOptMenuGen(PIContainerGen* par, PIPUMenu *pdm,
    14                                   int sx=10, int sy=10, int px=0, int py=0);
     12                     PIOptMenuGen(PIContainerGen* par, char* nom, int sx=50, int sy=15, int px=0, int py=0);
    1513                     ~PIOptMenuGen();
    1614                                   
    1715  virtual long       kind() {return ClassId; }
    1816
    19   virtual string     GetValueStr() = 0;    // Option choisie
    20   virtual PIMessage  GetValue() = 0;       // Message correspondant a l'option choisie
     17  inline  PIMenu*    Menu() {return mMen; }     // Renvoie un pointeur sur le menu associe
     18  inline  void       AppendItem(char* nom, PIMessage msg)
     19                                   { mMen->AppendItem(nom, msg); }
     20
     21  virtual string     GetValueStr() = 0;         // Option choisie
     22  virtual PIMessage  GetValue() = 0;            // Message correspondant a l option choisie
    2123  virtual void       SetValueStr(string & s) = 0;
    2224  virtual void       SetValue(PIMessage msg) = 0;
    2325
    2426protected:
     27  PIMenu* mMen;
    2528
    2629};
  • trunk/SophyaPI/PI/pioptmenux.cc

    r23 r110  
    11#include<stdio.h>
     2
     3#include <Xm/Xm.h>
     4#include <Xm/PushB.h>
    25
    36#include "pisysdep.h"
    47#include "pioptmenux.h"
    5 #include PICONT_H
    6 #include PISTDWDG_H
     8#include "piapplx.h"
    79
    8 #include <Xm/Xm.h>
    9 #include <Xm/RowColumn.h>
    1010
    1111/************* PIOptionMenuX ************/
     12static int rsx=0, rsy=0;
     13
     14/* Nouvelle-Fonction */
     15static void mouse_handler_optmenux (Widget wdgp, XtPointer ud,
     16                                    XEvent* evt, Boolean* cont){
     17*cont = FALSE ;
     18// printf("---  mouse_handler_optmenux ud = %lx ----- EvtType=%d (%d) \n", (long)ud, evt->type, Expose );
     19if ( evt->type == Expose ) {
     20  PIOptMenuX* opm = (PIOptMenuX*) ud;
     21  Display* dis = PIXDisplay();
     22  Window w = XtWindow(opm->XtWdg()) ;
     23  XFillRectangle(dis, w, opm->myGC(), rsy, (opm->YSize()-rsy)/2, rsy, rsy);
     24  }
     25else if ( (evt->type == ButtonPress) && (evt->xbutton.button == 1))  {
     26  PIXSetLastEventTimeSerial(evt->xbutton.time,  evt->xbutton.serial);
     27  PIOptMenuX* opm = (PIOptMenuX*) ud;
     28  opm->Menu()->Show(opm, rsy/2, opm->YSize());
     29  }
     30}
    1231
    1332
    1433/* --Methode-- */
    15 PIOptMenuX::PIOptMenuX(PIContainerGen* par, PIPUMenu *pum,
    16                      int sx, int sy, int px, int py)
    17 : PIOptMenuGen(par, pum, sx-2, sy-2, px, py)
     34PIOptMenuX::PIOptMenuX(PIContainerGen* par, char* nom, int sx, int sy, int px, int py)
     35: PIOptMenuGen(par, nom, sx, sy, px, py)
    1836{
    19 sx -= 2;
    20 sy -= 2;
    21 SetBorderWidth(1);
    22 mAB = new PIButton(this, "?", 0, sy-2, sy-2, 1, 1);
    23 mAB->SetBinding(PIBK_fixed, PIBK_fixed, PIBK_free, PIBK_fixed);
    24 mAB->ActivatePress(true);
    25 mLab = new PILabel(this, "OptLabel", sx-sy-1, sy, sy+1, 0);
    26 mLab->SetBinding(PIBK_fixed, PIBK_fixed, PIBK_fixed, PIBK_fixed);
    27 mMen = pum;
    28 SetValue(mMen->ItemMsg(0));
     37mSmsg = 0;
     38mStext = "";
     39
     40if (rsx == 0) {
     41  PIApplicationPrefCompSize(rsx, rsy);
     42  rsy = rsy/3-2;
     43  }
     44Arg warg[10];
     45int n = 0;
     46CreateXtWdg(nom, xmPushButtonWidgetClass, NULL, sx, sy, px, py);
     47XtSetArg(warg[n], XmNrecomputeSize, FALSE); n++;
     48XtSetArg(warg[n],XmNnavigationType,XmNONE);  n++;
     49XtSetArg(warg[n],XmNtraversalOn,FALSE);  n++;
     50XtSetArg(warg[n],XmNmarginLeft,rsy*3);  n++;
     51XtSetValues(XtWdg(), warg, n);
     52XtUninstallTranslations(XtWdg());
     53XtAddEventHandler( XtWdg(), ButtonPressMask|ExposureMask, FALSE, mouse_handler_optmenux, this);
     54SetBinding(PIBK_fixed, PIBK_fixed, PIBK_free, PIBK_fixed);
     55mgc = 0;
     56char buff[128];
     57strncpy(buff, nom, 64);
     58strcat(buff,"_Menu");
     59mMen = new PIMenu((PIWdg*)par, buff, k_PopupMenu);
     60mMen->SetMsgParent(this);
    2961Manage();
    3062}
     
    3466PIOptMenuX::~PIOptMenuX()
    3567{
    36 delete mAB;
    37 delete mLab;
     68delete mMen;
     69}
     70
     71/* --Methode-- */
     72void PIOptMenuX::FinishCreate()
     73{
     74if (mSmsg == 0)  SetValue(mMen->ItemMsg(0));
    3875}
    3976
     
    4279{
    4380// printf("PIOptMenuX::Process Msg= %d Sender= %lx \n", (int)msg, (long)sender);
    44 if ((sender == mAB) && (ModMsg(msg) == PIMsg_Press)) 
    45   {  mMen->SetMsgParent(this);    mMen->Show(this, 0, YSize()); }
    46 else if (sender == mMen)
    47   {
    48   mAB->ReleaseButton();
     81if (sender == mMen)   {
    4982  SetValue(UserMsg(msg));
    50   ReSend(msg, this, data);
    51   }
     83  ReSend(msg, this, NULL);
     84}
    5285return;
    5386}
     
    6699mStext = s;
    67100mSmsg  = mMen->ItemMsg(n);
    68 mLab->SetLabel(mStext);
     101
     102SetLabel(mStext);
     103
    69104return;
    70105}
     
    82117mStext = mMen->ItemName(n);
    83118mSmsg  = msg;
    84 mLab->SetLabel(mStext);
     119SetLabel(mStext);
    85120return;
    86121}
    87122
     123/* --Methode-- */
     124void PIOptMenuX::createmygc()
     125{
     126unsigned long fgc = 0;
     127Arg warg[2];
     128XtSetArg(warg[0], XmNforeground, &fgc);
     129XtGetValues(XtWdg(), warg, 1);
     130mgc = XCreateGC(PIXDisplay(), XtWindow(XtWdg()), 0, NULL);
     131XSetForeground(PIXDisplay(), mgc, fgc);
     132}
  • trunk/SophyaPI/PI/pioptmenux.h

    r23 r110  
    88class PIOptMenuX : public PIOptMenuGen {
    99public:
    10                     PIOptMenuX(PIContainerGen* par, PIPUMenu *pum, 
    11                                int sx=10, int sy=10, int px=0, int py=0);
     10                    PIOptMenuX(PIContainerGen* par, char* nom, int sx=50, int sy=15, int px=0, int py=0);
    1211                    ~PIOptMenuX();
     12
     13  virtual void      FinishCreate();
    1314
    1415  virtual void      Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
     
    1819  virtual void      SetValueStr(string & s);
    1920  virtual void      SetValue(PIMessage msg);
    20  
    21  
     21
     22//  Pour utilisation privee dans call-back   
     23  inline  GC        myGC() {if (mgc == 0) createmygc();  return(mgc); } 
    2224
    2325protected:
    24   PIButton *mAB;
    25   PILabel  *mLab;
    26   PIPUMenu *mMen;
    2726  string   mStext;
    2827  PIMessage mSmsg;
    29 
     28//  SysDWdg mLabel;
     29  GC mgc;
     30  void              createmygc();
    3031};
    3132
  • trunk/SophyaPI/PI/pistdwdgx.cc

    r106 r110  
    7171pib->myevt.type = pib->myevt.xbutton.type = ButtonRelease;
    7272pib->myevt.xbutton.serial += 10;
     73PIXSetLastEventTimeSerial(calld->event->xbutton.time,  calld->event->xbutton.serial);
    7374
    7475return;
  • trunk/SophyaPI/PI/pitestapp.cc

    r106 r110  
    4040        virtual void    Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
    4141
    42 //    PIMenubar * menb;
    43     PIPDMenu  *m[5];
    44     PIPDMenu  *mc[2];
     42    PIMenu  *m[5];
     43    PIMenu  *mc[2];
    4544    PICheckBox * ckb;
    4645    PIText * text;
     
    5049    PILabel * label;
    5150    PIScale * scl;
    52     PIPUMenu  * menu;
    53     PIPUMenu * pum[2];
    54     PIOptMenu * opt, * opt2, *opt3;
     51    PIMenu  * menu;
     52    PIOptMenu * opt, * opt2;
    5553    PIPixmap * zoom;
    5654    PILabel  * labimg;
     
    6159
    6260
    63 /*
    64 PITestWindow::PITestWindow(PIMsgHandler *par)
    65 : PIWindow(par, "Peida", PIWK_normal, 200, 200, 50, 50),
    66   text(this, "TEXTE", 100, 30, 20,10),
    67   label(this, "Label", 100, 20, 20,60),
    68   bouton(this, "OK", 66, 40, 20, 20, 100),
    69   bouton2(this, "Image", 133, 40, 20, 80, 100),
    70   bouton3(this, "Menu", 555, 40, 20, 140, 100),
    71   scl(this, "Scale", 88, 5, 45, 100, 20, 10, 130)
    72 {
    73   menu = new PIPUMenu((PIMsgHandler *)this, "myMenu");
    74   menu->AppendItem("DoIt-1", 4401);
    75   menu->AppendItem("DoIt-2", 4402);
    76   menu->AppendItem("DoIt-25", 4425);
    77   menu->AppendItem("DoIt-26", 4426);
    78   menu->AppendItem("Check-33", 4433);
    79   menu->AppendItem("Check-33", 4433);
    80 
    81   label.SetBorderWidth(3);
    82   FinishCreate();
    83 }
    84 
    85 */
    8661
    8762PITestApp::PITestApp(int sx, int sy)
     
    8964{
    9065char ans[128];
    91 //   menb = new PIMenubar(this, "MyMenubar");
    92    m[0] = new PIPDMenu((PIMsgHandler *)Menubar(),"File");
     66   m[0] = new PIMenu(Menubar(),"File");
    9367   m[0]->AppendItem("Open", 10101);
    9468   m[0]->AppendItem("Close", 10102);
     
    9670   m[0]->AppendItem("ScBar", 10105);
    9771   m[0]->AppendItem("Quit", 10104);
    98    m[1] = new PIPDMenu((PIMsgHandler *)Menubar(),"Edit");
     72   m[1] = new PIMenu(Menubar(),"Edit");
    9973   m[1]->AppendItem("Copier", 10201);
    10074   m[1]->AppendItem("Coller", 10202);
    10175   m[1]->AppendItem("Couper", 10203);
    10276   m[1]->AppendCheckItem("Check It", 10205);
    103    mc[0] = new PIPDMenu(m[1], "Cascade");
     77   mc[0] = new PIMenu(m[1], "Cascade");
    10478   mc[0]->AppendItem("EdeCas-1", 10221);
    10579   mc[0]->AppendItem("EdeCas-2", 10222);
     
    10781   m[1]->AppendPDMenu(mc[0]);
    10882
    109    m[2] = new PIPDMenu((PIMsgHandler *)Menubar(),"Operation");
     83   m[2] = new PIMenu(Menubar(),"Operation");
    11084   m[2]->AppendItem("AddItem", 10301);
    11185   m[2]->AppendItem("DelItemName", 10302);
    11286   m[2]->AppendItem("DelItemMsg", 10303);
    11387
    114    m[3] = new PIPDMenu((PIMsgHandler *)Menubar(),"Special");
     88   m[3] = new PIMenu(Menubar(),"Special");
    11589   m[3]->AppendItem("Spec-Opt1", 10401);
    11690   m[3]->AppendItem("Spec-Opt2", 10402);
    11791   m[3]->AppendItem("Spec-Cascade", 10403);
    118    mc[1] = new PIPDMenu(m[3], "Spec-Cascade");
     92   mc[1] = new PIMenu(m[3], "Spec-Cascade");
    11993   mc[1]->AppendItem("Spec-Cas-1", 10441);
    12094   mc[1]->AppendItem("Spec-Cas-2", 10442);
     
    12397   m[3]->AppendCheckItem("Checkable", 10414);
    12498
    125    m[4] = new PIPDMenu((PIMsgHandler *)Menubar(),"AddMenu2");
     99   m[4] = new PIMenu(Menubar(),"AddMenu2");
    126100   m[4]->AppendItem("option-A", 10501);
    127101   m[4]->AppendItem("option-B", 10502);
     
    137111  label  = new PILabel(this->MainWin(), "Label", 140, 20, 20,80);
    138112  label->SetBorderWidth(1);
    139   bouton = new PIButton(this->MainWin(), "OK", 33, 40, 25, 20, 120);
     113  bouton = new PIButton(this->MainWin(), "->Menu", 33, 40, 25, 20, 120);
    140114  bouton2 = new PIButton(this->MainWin(), "Image", 133, 40, 25, 80, 120);
    141115  bouton3 = new PIButton(this->MainWin(), "ExDess",  233, 40, 25, 140, 120);
     
    160134//  XSync(PIXDisplay(), FALSE);
    161135//  printf("Creation PIPUMenu DoIt-1... \n");   gets(ans);
    162   menu = new PIPUMenu((PIMsgHandler *)this->MainWin(), "myMenu");
     136  menu = new PIMenu(this->MainWin(), "myMenu");
    163137//  XSync(PIXDisplay(), FALSE);
    164138//  printf("Apres Creation PIPUMenu -AppendItem() 1 ... \n");   gets(ans);
     
    176150//  XSync(PIXDisplay(), FALSE);
    177151//  printf("Creation PIPUMenu Copier ... \n");   gets(ans);
    178   pum[1] = new PIPUMenu((PIMsgHandler *)this->MainWin(),"Edit");
    179   pum[1]->AppendItem("Copier", 80201);
    180   pum[1]->AppendItem("Coller", 80202);
    181   pum[1]->AppendItem("Couper", 80203);
    182   pum[1]->AppendItem("Undo", 80204);
    183   pum[1]->AppendItem("Select-All", 80205);
    184 
    185   pum[0] = new PIPUMenu((PIMsgHandler *)this->MainWin(), "myMenu");
    186   pum[0]->AppendItem("Linear", 5601);
    187   pum[0]->AppendItem("Log.", 5602);
    188   pum[0]->AppendItem("Sqrt", 5603);
    189   pum[0]->AppendItem("Expon", 5604);
    190   pum[0]->AppendItem("Polyn", 5605);
    191 
    192 
    193   opt = new PIOptMenu(this->MainWin(), pum[0], 90, 25, 110, 150);
     152
     153
     154  opt = new PIOptMenu(this->MainWin(), "Option-Menu-1", 90, 25, 110, 150);
     155  opt->AppendItem("Linear", 5601);
     156  opt->AppendItem("Log.", 5602);
     157  opt->AppendItem("Sqrt", 5603);
     158  opt->AppendItem("Expon", 5604);
     159  opt->AppendItem("Polyn", 5605);
     160
    194161  string ops = "Sqrt";
    195162  opt->SetValueStr(ops);
    196   opt2 = new PIOptMenu(this->MainWin(), pum[1], 90, 25, 150, 200);
    197 
    198   opt3 = new PIOptMenu(this->MainWin(), pum[0], 80, 25, 110, 250);
    199   ops = "Linear";
    200   opt3->SetValueStr(ops);
     163
     164  opt2 = new PIOptMenu(this->MainWin(), "Option-Menu-1", 90, 25, 150, 200);
     165  opt2->AppendItem("Copier", 80201);
     166  opt2->AppendItem("Coller", 80202);
     167  opt2->AppendItem("Couper", 80203);
     168  opt2->AppendItem("Undo", 80204);
     169  opt2->AppendItem("Select-All", 80205);
    201170 
    202171}
     
    223192  delete opt;
    224193  delete opt2;
    225   delete opt3;
    226   delete pum[0];  delete pum[1];
    227194  delete zoom;
    228195  delete labimg;
     
    274241
    275242  msg = UserMsg(msg);
    276   if (msg == 33) ckb->SetState(true);
     243  if (msg == 33) { ckb->SetState(true);  menu->Show(); }
    277244   
    278245  if (msg == 133)
  • trunk/SophyaPI/PI/piwdgx.h

    r106 r110  
    9090Time PIXGetLastEventTime();
    9191unsigned long PIXGetLastEventSerial();
     92void PIXSetLastEventTimeSerial(Time t, unsigned long ser);
     93
    9294
    9395#endif/* PIWDGX_SEEN */
  • trunk/SophyaPI/PI/pixtbase.cc

    r104 r110  
    9797
    9898
     99/*  Last XEvent Serial Number and Time-Stamp  */
    99100static Time last_time_xevt = 0;
    100101static unsigned long last_serial_xevt = 0;
     
    102103Time PIXGetLastEventTime() { return(last_time_xevt); }
    103104unsigned long PIXGetLastEventSerial() { return(last_serial_xevt); }
     105void PIXSetLastEventTimeSerial(Time t, unsigned long ser)
     106{ last_time_xevt = t;  last_serial_xevt = ser; }
    104107
    105108/* Nouvelle-Fonction */
Note: See TracChangeset for help on using the changeset viewer.