source: Sophya/trunk/Poubelle/PI/pimenubarx.cc

Last change on this file was 222, checked in by ansari, 26 years ago

Creation module DPC/PI Reza 09/04/99

File size: 2.0 KB
Line 
1#include<stdio.h>
2
3#include "pimenubarx.h"
4#include PIAPP_H
5
6#include <Xm/Xm.h>
7#include <Xm/RowColumn.h>
8#include <Xm/PushB.h>
9#include <Xm/ToggleB.h>
10#include <Xm/CascadeB.h>
11
12/************* PIMenubarX ************/
13
14#define NBITEMB 10
15
16/* --Methode-- */
17PIMenubarX::PIMenubarX(PIApplicationGen* par, char* nom)
18: PIMenubarGen(par, nom)
19{
20mNItem = 0; mNItemMax = NBITEMB;
21mMbb = new _pimbxit_[mNItemMax];
22
23XtWdg() = XmCreateMenuBar( ((PIApplicationX *)par)->MBCont()->XtWdg(),
24 nom, NULL, 0);
25
26wmis = k_wmi_normal ;
27stmng = 0;
28
29SetPos(0,0);
30SetBinding(PIBK_fixed, PIBK_fixed, PIBK_fixed, PIBK_free);
31
32Manage();
33}
34
35
36/* --Methode-- */
37PIMenubarX::~PIMenubarX()
38{
39for(int i=0; i<mNItem; i++)
40 XtDestroyWidget(mMbb[i].itb);
41delete[] mMbb ;
42}
43
44/* --Methode-- */
45void PIMenubarX::AppendMenu(PIMenu *pdm)
46{
47_pimbxit_ *buto;
48Arg wargs[2];
49
50if (mNItem >= mNItemMax)
51 {
52 buto = mMbb;
53 mNItemMax += NBITEMB;
54 mMbb = new _pimbxit_[mNItemMax];
55 for(int i=0; i<mNItem; i++) mMbb[i] = buto[i];
56 delete[] buto;
57 }
58XtSetArg(wargs[0], XmNsubMenuId, pdm->XtWdg());
59mMbb[mNItem].itb = XtCreateManagedWidget(pdm->Nom().c_str(), xmCascadeButtonWidgetClass,
60 this->XtWdg(), wargs, 1) ;
61mMbb[mNItem].pdm = pdm;
62mNItem++;
63
64pdm->SetMsgParent(this);
65return;
66}
67
68/* --Methode-- */
69void PIMenubarX::RemoveMenu(PIMenu *pdm)
70{
71int i,j;
72for(i=0; i<mNItem; i++)
73 if ( mMbb[i].pdm == pdm ) {
74 XtDestroyWidget(mMbb[i].itb);
75 for(j=i; j<mNItem-1; j++) mMbb[j] = mMbb[j+1];
76 mNItem--; break;
77 }
78return;
79}
80
81/* --Methode-- */
82void PIMenubarX::SetSensitivity(PIMenu *pdm, bool sens)
83{
84int i;
85for(i=0; i<mNItem; i++)
86 if ( mMbb[i].pdm == pdm ) {
87 if (sens) XtSetSensitive(mMbb[i].itb, TRUE);
88 else XtSetSensitive(mMbb[i].itb, FALSE);
89 break;
90 }
91return;
92}
93
94/* --Methode-- */
95bool PIMenubarX::IsSensitive(PIMenu *pdm)
96{
97int i;
98for(i=0; i<mNItem; i++)
99 if ( mMbb[i].pdm == pdm ) {
100 if (XtIsSensitive(mMbb[i].itb) == TRUE) return(true);
101 else return(false);
102 break;
103 }
104return(false);
105}
Note: See TracBrowser for help on using the repository browser.