Changeset 110 in Sophya
- Timestamp:
- Jun 12, 1998, 6:37:41 PM (27 years ago)
- Location:
- trunk/SophyaPI/PI
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/piapplgen.cc
r106 r110 44 44 // PIMenubar* Menubar() 45 45 // Renvoie le pointeur de l'objet "PIMenubar" associé à l'application. 46 // void AppendMenu(PI PDMenu *pdm)47 // Ajoute le "PI PDMenu *pdm" au Menubar de l'application. Le titre46 // void AppendMenu(PIMenu *pdm) 47 // Ajoute le "PIMenu *pdm" au Menubar de l'application. Le titre 48 48 // du menu dans le menubar est le nom de l'objet menu. 49 49 // void Run() Stop … … 68 68 69 69 70 void PIApplicationGen::AppendMenu(PI PDMenu *pdm)70 void PIApplicationGen::AppendMenu(PIMenu *pdm) 71 71 { 72 72 if (menubar) -
trunk/SophyaPI/PI/piapplgen.h
r92 r110 28 28 virtual PIMenubar* Menubar() {return menubar;} 29 29 30 virtual void AppendMenu(PI PDMenu *pdm);30 virtual void AppendMenu(PIMenu *pdm); 31 31 32 32 virtual void PrefCompSz(int& szx, int& szy) = 0; -
trunk/SophyaPI/PI/piapplx.cc
r106 r110 99 99 XtAppContext * appctx = PIXtAppCtx(szx, szy); 100 100 101 // Pour appeler FinishCreate() des objets dans la fenetre principale 102 MBCont()->FinishCreate(); 101 103 while (mStop) 102 104 { -
trunk/SophyaPI/PI/picons.cc
r106 r110 12 12 // Le menu qui va servir a changer de fontes, couleurs, ... 13 13 // de bouton-3 14 static PI PUMenu* opmc=NULL;14 static PIMenu* opmc=NULL; 15 15 static int nb_opmc = 0; 16 16 … … 36 36 mCCP = mCLC = 0; 37 37 mDCOff = 0; 38 mScb = NULL; 38 39 39 40 SetMsg(msg); … … 71 72 // Pour le menu des options : Fontes, couleur, ... 72 73 if (!opmc) { 73 opmc = new PI PUMenu((PIMsgHandler *)this, "OptCons");74 opmc = new PIMenu(this, "OptCons", k_PopupMenu); 74 75 opmc->AppendItem("SmallFont", 3101); 75 76 opmc->AppendItem("NormalFont", 3102); -
trunk/SophyaPI/PI/picontainerx.cc
r60 r110 26 26 {} 27 27 28 /* --Methode-- */ 29 void PIContainerX::FinishCreate() 30 { 31 int k; 32 for(k=0; k<mNCh; k++) mChilds[k]->FinishCreate(); 33 } 34 28 35 /* --Methode-- 29 36 void PIContainerX::Show() -
trunk/SophyaPI/PI/picontainerx.h
r52 r110 16 16 int sx=10, int sy=10, int px=0, int py=0); 17 17 18 virtual void FinishCreate(); // apelle FinishCreate() pour les descendants 19 18 20 virtual ~PIContainerX(); 19 21 -
trunk/SophyaPI/PI/pihisto2d.cc
r107 r110 501 501 502 502 // 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); 503 mOPop[0] = new PIOptMenu(this, "optmen-h2d-1" ,100,25,10,10); 504 mOPop[0]->AppendItem("Carres Var." , 6101); 505 mOPop[0]->AppendItem("....." , 6102); 506 mOPop[0]->AppendItem(".+12..Z*" , 6103); 507 mOPop[0]->AppendItem("Carres Pleins", 6104); 509 508 sdum = "Carres Var."; mOPop[0]->SetValueStr(sdum); 510 509 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); 510 mOPop[1] = new PIOptMenu(this, "optmen-h2d-2", 100,25,10,40); 511 mOPop[1]->AppendItem("Lineaire", 6201); 512 mOPop[1]->AppendItem("Log10" , 6202); 515 513 sdum = "Lineaire"; mOPop[1]->SetValueStr(sdum); 516 514 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); 515 mOPop[2] = new PIOptMenu(this, "optmen-h2d-3", 100,25,10,70); 516 mOPop[2]->AppendItem("B&W" , 6301); 517 mOPop[2]->AppendItem("Grey32" , 6302); 518 mOPop[2]->AppendItem("GreyInv32", 6303); 519 mOPop[2]->AppendItem("RJ32" , 6304); 520 mOPop[2]->AppendItem("BR32" , 6305); 521 mOPop[2]->AppendItem("RV32" , 6306); 522 mOPop[2]->AppendItem("Arc16" , 6307); 526 523 sdum = "B&W"; mOPop[2]->SetValueStr(sdum); 527 524 … … 559 556 int i; 560 557 if(dbg) printf("H2WinArg::~H2WinArg %lx\n",(long)this); 561 for(i=0;i<3;i++) {delete mPop[i]; delete mOPop[i];}558 for(i=0;i<3;i++) delete mOPop[i]; 562 559 for(i=0;i<4;i++) delete mBut[i]; 563 560 for(i=0;i<4;i++) delete mLab[i]; -
trunk/SophyaPI/PI/pihisto2d.h
r107 r110 84 84 PIH2DWdg * mH2Wdg; 85 85 86 PIPUMenu * mPop[3];87 86 PIOptMenu * mOPop[3]; 88 87 PIButton * mBut[4]; -
trunk/SophyaPI/PI/pimenubargen.h
r106 r110 14 14 ~PIMenubarGen(); 15 15 16 virtual void AppendMenu(PI PDMenu *pdm)=0;17 virtual void RemoveMenu(PI PDMenu *pdm)=0;18 virtual void SetSensitivity(PI PDMenu *pdm, bool sens=true)=0;19 virtual bool IsSensitive(PI PDMenu *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; 20 20 21 21 virtual long kind() {return ClassId; } -
trunk/SophyaPI/PI/pimenubarx.cc
r106 r110 43 43 44 44 /* --Methode-- */ 45 void PIMenubarX::AppendMenu(PI PDMenu *pdm)45 void PIMenubarX::AppendMenu(PIMenu *pdm) 46 46 { 47 47 _pimbxit_ *buto; … … 67 67 68 68 /* --Methode-- */ 69 void PIMenubarX::RemoveMenu(PI PDMenu *pdm)69 void PIMenubarX::RemoveMenu(PIMenu *pdm) 70 70 { 71 71 int i,j; … … 80 80 81 81 /* --Methode-- */ 82 void PIMenubarX::SetSensitivity(PI PDMenu *pdm, bool sens)82 void PIMenubarX::SetSensitivity(PIMenu *pdm, bool sens) 83 83 { 84 84 int i; … … 93 93 94 94 /* --Methode-- */ 95 bool PIMenubarX::IsSensitive(PI PDMenu *pdm)95 bool PIMenubarX::IsSensitive(PIMenu *pdm) 96 96 { 97 97 int i; -
trunk/SophyaPI/PI/pimenubarx.h
r106 r110 7 7 { 8 8 SysDWdg itb; 9 PI PDMenu *pdm;9 PIMenu *pdm; 10 10 }; 11 11 … … 15 15 ~PIMenubarX(); 16 16 17 virtual void AppendMenu(PI PDMenu *pdm);18 virtual void RemoveMenu(PI PDMenu *pdm);19 virtual void SetSensitivity(PI PDMenu *pdm, bool sens=true);20 virtual bool IsSensitive(PI PDMenu *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); 21 21 22 22 protected: -
trunk/SophyaPI/PI/pimenugen.cc
r2 r110 1 1 #include "pimenugen.h" 2 2 3 PIMenuGen::PIMenuGen(PI MsgHandler* par, char* nom, PIMenuType pdpu)3 PIMenuGen::PIMenuGen(PIWdg* par, char* nom, PIMenuType pdpu) 4 4 : PIWdg(NULL, nom) , mMTyp(pdpu) 5 5 { -
trunk/SophyaPI/PI/pimenugen.h
r106 r110 5 5 #include PIWDG_H 6 6 7 enum PIMenuType { k_ PopupMenu = 1, k_PulldownMenu = 2 };7 enum PIMenuType { k_UTMenu = 0, k_PopupMenu = 1, k_PulldownMenu = 2 }; 8 8 9 9 … … 12 12 enum {ClassId = 2500}; 13 13 14 PIMenuGen(PI MsgHandler* par, char* nom, PIMenuType pdpu);14 PIMenuGen(PIWdg* par, char* nom, PIMenuType pdpu=k_UTMenu); 15 15 ~PIMenuGen(); 16 16 … … 41 41 virtual void Show()=0; 42 42 virtual void Show(PIWdg *w, int px, int py)=0; 43 virtual void Hide()=0;44 43 45 44 virtual long kind() {return ClassId; } -
trunk/SophyaPI/PI/pimenux.cc
r106 r110 2 2 #include<iostream.h> 3 3 4 #include "pimenux.h" 4 #include "pisysdep.h" 5 #include PIMENUBAR_H 5 6 6 7 #include <Xm/Xm.h> … … 39 40 pim = (PIMenuX *) (cusd->pmen); 40 41 // pim->Hide(); 41 pim->Send (cusd->msg, PIMsg_Click );42 pim->SendSelf(cusd->msg, PIMsg_Click ); 42 43 #ifdef DEBUG_PIMenuX 43 44 printf("%%%Debug_menu_action: Msg= %d %lx\n", (int)cusd->msg, (long)pim); … … 59 60 if (calld->set == True) cusd->togstate = toggmenbut = true; 60 61 else cusd->togstate = toggmenbut = false; 61 pim->Send (cusd->msg, PIMsg_DataChanged, (void *)(&toggmenbut));62 pim->SendSelf(cusd->msg, PIMsg_DataChanged, (void *)(&toggmenbut)); 62 63 return; 63 64 } … … 68 69 69 70 /* --Methode-- */ 70 PIMenuX::PIMenuX(PI MsgHandler *par, char *nom, PIMenuType pdpu)71 PIMenuX::PIMenuX(PIWdg* par, char *nom, PIMenuType pdpu) 71 72 : PIMenuGen(par, nom, pdpu) 72 73 { … … 74 75 mBut = new _pimxit_[mNItemMax]; 75 76 76 SysDWdg tw= menuXTopWdg; 77 if (tw == NULL) tw = PIXtTopWdg(); 78 77 SysDWdg tw; 78 if (par == NULL) { 79 tw = menuXTopWdg; 80 if (tw == NULL) tw = PIXtTopWdg(); 81 } 82 else 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 85 if (pdpu == k_UTMenu) { 86 if ( (par->kind() == PIMenu::ClassId) || (par->kind() == PIMenubar::ClassId) ) pdpu = k_PulldownMenu ; 87 else pdpu = k_PopupMenu ; 88 } 79 89 if (pdpu == k_PopupMenu) 80 90 XtWdg() = XmCreatePopupMenu( tw, nom, NULL, 0); … … 82 92 XtWdg() = XmCreatePulldownMenu( tw, nom, NULL, 0); 83 93 94 mMTyp = pdpu; 84 95 wmis = k_wmi_normal ; 85 96 stmng = 0; … … 111 122 { 112 123 if (pdm->MType() != k_PulldownMenu) { 113 cerr << "PIMenuX::AppendPDMenu()/Erreur: PullDownMenu PIPDMenuseulement ... " << endl;124 cerr << "PIMenuX::AppendPDMenu()/Erreur: PullDownMenu seulement ... " << endl; 114 125 return; 115 126 } … … 238 249 } 239 250 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 }259 251 260 252 … … 410 402 411 403 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 405 void PIMenuX::Show() 406 { 407 if (MType() != k_PopupMenu) { 408 cerr << "PIMenuX::Show()/Erreur: PopupMenu seulement ... " << endl; 409 return; 410 } 411 425 412 // XEvent mevt; 426 413 XButtonEvent evt; … … 449 436 450 437 /* --Methode-- */ 451 void PIPUMenuX::Show(PIWdg *w, int px, int py) 452 { 438 void PIMenuX::Show(PIWdg *w, int px, int py) 439 { 440 if (MType() != k_PopupMenu) { 441 cerr << "PIMenuX::Show(w, px, py)/Erreur: PopupMenu seulement ... " << endl; 442 return; 443 } 453 444 // This method should only be used by a button press ... 454 445 int xr, yr; … … 483 474 484 475 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 20 20 class PIMenuX : public PIMenuGen { 21 21 public: 22 PIMenuX(PI MsgHandler* par, char* nom, PIMenuType pdpu);22 PIMenuX(PIWdg* par, char* nom, PIMenuType pdpu=k_UTMenu); 23 23 ~PIMenuX(); 24 24 … … 49 49 virtual void Show(); 50 50 virtual void Show(PIWdg *w, int px, int py); 51 virtual void Hide(); 51 52 52 53 53 // Pour usage prive et par OptionMenu, ... … … 67 67 }; 68 68 69 class PIPUMenuX : public PIMenuX70 {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 PIMenuX83 {84 public:85 PIPDMenuX(PIMsgHandler* par, char* nom);86 ~PIPDMenuX();87 88 protected:89 90 };91 69 92 70 typedef PIMenuX PIMenu; 93 typedef PIPUMenuX PIPUMenu;94 typedef PIPDMenuX PIPDMenu;95 96 71 97 72 -
trunk/SophyaPI/PI/pimsghandler.cc
r59 r110 69 69 // optionnel "data" au parent, déclenchant ainsi l'execution 70 70 // 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. 71 75 //-- 72 76 -
trunk/SophyaPI/PI/pimsghandler.h
r80 r110 47 47 48 48 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); } 49 51 50 52 inline PIMessage UserMsg(PIMessage msg) { return (msg >> 8); } -
trunk/SophyaPI/PI/pioptmenugen.cc
r8 r110 2 2 3 3 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 ! 4 PIOptMenuGen::PIOptMenuGen(PIContainerGen* par, char* nom, int sx, int sy, int px, int py) 5 : PIWdg(par, nom, sx, sy, px, py) // Attention au const ! 7 6 { 8 7 } -
trunk/SophyaPI/PI/pioptmenugen.h
r23 r110 4 4 #include <string> 5 5 #include "pisysdep.h" 6 #include PICONT_H7 6 #include PIMENU_H 8 7 9 class PIOptMenuGen : public PI Container{8 class PIOptMenuGen : public PIWdg { 10 9 public: 11 10 enum {ClassId = 1100}; 12 11 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); 15 13 ~PIOptMenuGen(); 16 14 17 15 virtual long kind() {return ClassId; } 18 16 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 21 23 virtual void SetValueStr(string & s) = 0; 22 24 virtual void SetValue(PIMessage msg) = 0; 23 25 24 26 protected: 27 PIMenu* mMen; 25 28 26 29 }; -
trunk/SophyaPI/PI/pioptmenux.cc
r23 r110 1 1 #include<stdio.h> 2 3 #include <Xm/Xm.h> 4 #include <Xm/PushB.h> 2 5 3 6 #include "pisysdep.h" 4 7 #include "pioptmenux.h" 5 #include PICONT_H 6 #include PISTDWDG_H 8 #include "piapplx.h" 7 9 8 #include <Xm/Xm.h>9 #include <Xm/RowColumn.h>10 10 11 11 /************* PIOptionMenuX ************/ 12 static int rsx=0, rsy=0; 13 14 /* Nouvelle-Fonction */ 15 static 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 ); 19 if ( 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 } 25 else 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 } 12 31 13 32 14 33 /* --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) 34 PIOptMenuX::PIOptMenuX(PIContainerGen* par, char* nom, int sx, int sy, int px, int py) 35 : PIOptMenuGen(par, nom, sx, sy, px, py) 18 36 { 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)); 37 mSmsg = 0; 38 mStext = ""; 39 40 if (rsx == 0) { 41 PIApplicationPrefCompSize(rsx, rsy); 42 rsy = rsy/3-2; 43 } 44 Arg warg[10]; 45 int n = 0; 46 CreateXtWdg(nom, xmPushButtonWidgetClass, NULL, sx, sy, px, py); 47 XtSetArg(warg[n], XmNrecomputeSize, FALSE); n++; 48 XtSetArg(warg[n],XmNnavigationType,XmNONE); n++; 49 XtSetArg(warg[n],XmNtraversalOn,FALSE); n++; 50 XtSetArg(warg[n],XmNmarginLeft,rsy*3); n++; 51 XtSetValues(XtWdg(), warg, n); 52 XtUninstallTranslations(XtWdg()); 53 XtAddEventHandler( XtWdg(), ButtonPressMask|ExposureMask, FALSE, mouse_handler_optmenux, this); 54 SetBinding(PIBK_fixed, PIBK_fixed, PIBK_free, PIBK_fixed); 55 mgc = 0; 56 char buff[128]; 57 strncpy(buff, nom, 64); 58 strcat(buff,"_Menu"); 59 mMen = new PIMenu((PIWdg*)par, buff, k_PopupMenu); 60 mMen->SetMsgParent(this); 29 61 Manage(); 30 62 } … … 34 66 PIOptMenuX::~PIOptMenuX() 35 67 { 36 delete mAB; 37 delete mLab; 68 delete mMen; 69 } 70 71 /* --Methode-- */ 72 void PIOptMenuX::FinishCreate() 73 { 74 if (mSmsg == 0) SetValue(mMen->ItemMsg(0)); 38 75 } 39 76 … … 42 79 { 43 80 // 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(); 81 if (sender == mMen) { 49 82 SetValue(UserMsg(msg)); 50 ReSend(msg, this, data);51 83 ReSend(msg, this, NULL); 84 } 52 85 return; 53 86 } … … 66 99 mStext = s; 67 100 mSmsg = mMen->ItemMsg(n); 68 mLab->SetLabel(mStext); 101 102 SetLabel(mStext); 103 69 104 return; 70 105 } … … 82 117 mStext = mMen->ItemName(n); 83 118 mSmsg = msg; 84 mLab->SetLabel(mStext);119 SetLabel(mStext); 85 120 return; 86 121 } 87 122 123 /* --Methode-- */ 124 void PIOptMenuX::createmygc() 125 { 126 unsigned long fgc = 0; 127 Arg warg[2]; 128 XtSetArg(warg[0], XmNforeground, &fgc); 129 XtGetValues(XtWdg(), warg, 1); 130 mgc = XCreateGC(PIXDisplay(), XtWindow(XtWdg()), 0, NULL); 131 XSetForeground(PIXDisplay(), mgc, fgc); 132 } -
trunk/SophyaPI/PI/pioptmenux.h
r23 r110 8 8 class PIOptMenuX : public PIOptMenuGen { 9 9 public: 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); 12 11 ~PIOptMenuX(); 12 13 virtual void FinishCreate(); 13 14 14 15 virtual void Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL); … … 18 19 virtual void SetValueStr(string & s); 19 20 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); } 22 24 23 25 protected: 24 PIButton *mAB;25 PILabel *mLab;26 PIPUMenu *mMen;27 26 string mStext; 28 27 PIMessage mSmsg; 29 28 // SysDWdg mLabel; 29 GC mgc; 30 void createmygc(); 30 31 }; 31 32 -
trunk/SophyaPI/PI/pistdwdgx.cc
r106 r110 71 71 pib->myevt.type = pib->myevt.xbutton.type = ButtonRelease; 72 72 pib->myevt.xbutton.serial += 10; 73 PIXSetLastEventTimeSerial(calld->event->xbutton.time, calld->event->xbutton.serial); 73 74 74 75 return; -
trunk/SophyaPI/PI/pitestapp.cc
r106 r110 40 40 virtual void Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL); 41 41 42 // PIMenubar * menb; 43 PIPDMenu *m[5]; 44 PIPDMenu *mc[2]; 42 PIMenu *m[5]; 43 PIMenu *mc[2]; 45 44 PICheckBox * ckb; 46 45 PIText * text; … … 50 49 PILabel * label; 51 50 PIScale * scl; 52 PIPUMenu * menu; 53 PIPUMenu * pum[2]; 54 PIOptMenu * opt, * opt2, *opt3; 51 PIMenu * menu; 52 PIOptMenu * opt, * opt2; 55 53 PIPixmap * zoom; 56 54 PILabel * labimg; … … 61 59 62 60 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 */86 61 87 62 PITestApp::PITestApp(int sx, int sy) … … 89 64 { 90 65 char ans[128]; 91 // menb = new PIMenubar(this, "MyMenubar"); 92 m[0] = new PIPDMenu((PIMsgHandler *)Menubar(),"File"); 66 m[0] = new PIMenu(Menubar(),"File"); 93 67 m[0]->AppendItem("Open", 10101); 94 68 m[0]->AppendItem("Close", 10102); … … 96 70 m[0]->AppendItem("ScBar", 10105); 97 71 m[0]->AppendItem("Quit", 10104); 98 m[1] = new PI PDMenu((PIMsgHandler *)Menubar(),"Edit");72 m[1] = new PIMenu(Menubar(),"Edit"); 99 73 m[1]->AppendItem("Copier", 10201); 100 74 m[1]->AppendItem("Coller", 10202); 101 75 m[1]->AppendItem("Couper", 10203); 102 76 m[1]->AppendCheckItem("Check It", 10205); 103 mc[0] = new PI PDMenu(m[1], "Cascade");77 mc[0] = new PIMenu(m[1], "Cascade"); 104 78 mc[0]->AppendItem("EdeCas-1", 10221); 105 79 mc[0]->AppendItem("EdeCas-2", 10222); … … 107 81 m[1]->AppendPDMenu(mc[0]); 108 82 109 m[2] = new PI PDMenu((PIMsgHandler *)Menubar(),"Operation");83 m[2] = new PIMenu(Menubar(),"Operation"); 110 84 m[2]->AppendItem("AddItem", 10301); 111 85 m[2]->AppendItem("DelItemName", 10302); 112 86 m[2]->AppendItem("DelItemMsg", 10303); 113 87 114 m[3] = new PI PDMenu((PIMsgHandler *)Menubar(),"Special");88 m[3] = new PIMenu(Menubar(),"Special"); 115 89 m[3]->AppendItem("Spec-Opt1", 10401); 116 90 m[3]->AppendItem("Spec-Opt2", 10402); 117 91 m[3]->AppendItem("Spec-Cascade", 10403); 118 mc[1] = new PI PDMenu(m[3], "Spec-Cascade");92 mc[1] = new PIMenu(m[3], "Spec-Cascade"); 119 93 mc[1]->AppendItem("Spec-Cas-1", 10441); 120 94 mc[1]->AppendItem("Spec-Cas-2", 10442); … … 123 97 m[3]->AppendCheckItem("Checkable", 10414); 124 98 125 m[4] = new PI PDMenu((PIMsgHandler *)Menubar(),"AddMenu2");99 m[4] = new PIMenu(Menubar(),"AddMenu2"); 126 100 m[4]->AppendItem("option-A", 10501); 127 101 m[4]->AppendItem("option-B", 10502); … … 137 111 label = new PILabel(this->MainWin(), "Label", 140, 20, 20,80); 138 112 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); 140 114 bouton2 = new PIButton(this->MainWin(), "Image", 133, 40, 25, 80, 120); 141 115 bouton3 = new PIButton(this->MainWin(), "ExDess", 233, 40, 25, 140, 120); … … 160 134 // XSync(PIXDisplay(), FALSE); 161 135 // printf("Creation PIPUMenu DoIt-1... \n"); gets(ans); 162 menu = new PI PUMenu((PIMsgHandler *)this->MainWin(), "myMenu");136 menu = new PIMenu(this->MainWin(), "myMenu"); 163 137 // XSync(PIXDisplay(), FALSE); 164 138 // printf("Apres Creation PIPUMenu -AppendItem() 1 ... \n"); gets(ans); … … 176 150 // XSync(PIXDisplay(), FALSE); 177 151 // 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 194 161 string ops = "Sqrt"; 195 162 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); 201 170 202 171 } … … 223 192 delete opt; 224 193 delete opt2; 225 delete opt3;226 delete pum[0]; delete pum[1];227 194 delete zoom; 228 195 delete labimg; … … 274 241 275 242 msg = UserMsg(msg); 276 if (msg == 33) ckb->SetState(true);243 if (msg == 33) { ckb->SetState(true); menu->Show(); } 277 244 278 245 if (msg == 133) -
trunk/SophyaPI/PI/piwdgx.h
r106 r110 90 90 Time PIXGetLastEventTime(); 91 91 unsigned long PIXGetLastEventSerial(); 92 void PIXSetLastEventTimeSerial(Time t, unsigned long ser); 93 92 94 93 95 #endif/* PIWDGX_SEEN */ -
trunk/SophyaPI/PI/pixtbase.cc
r104 r110 97 97 98 98 99 /* Last XEvent Serial Number and Time-Stamp */ 99 100 static Time last_time_xevt = 0; 100 101 static unsigned long last_serial_xevt = 0; … … 102 103 Time PIXGetLastEventTime() { return(last_time_xevt); } 103 104 unsigned long PIXGetLastEventSerial() { return(last_serial_xevt); } 105 void PIXSetLastEventTimeSerial(Time t, unsigned long ser) 106 { last_time_xevt = t; last_serial_xevt = ser; } 104 107 105 108 /* Nouvelle-Fonction */
Note:
See TracChangeset
for help on using the changeset viewer.