There are totally eight widgets are present in a XmRowColoumn widget
say X. Out of eight four are labels and four are optionmenus. Thing is
out of four optionmenu widgets, one is smaller in size compared to
other three. Say the smaller optionmenu as Y. Now this is raised as a
problem at operator side. We need to solve this problem, by increasing
the size to its neighbour option menus. For more information I will
explain the containership of controls. Earlier I mention Y(smaller
optionmenu) is a control belongs to X(RowColumn). And this X is control
of Z(an XmForm), Z is control belongs to XmRowColumn say W, this U is
control of XmForm say V, this V is control belongs to XmRowColumn say
W, this W is control of XmScrolledWindow say P, and this P is a control
of XmForm say Q, this Q is a control of XmForm say TopForm, this
topForm is a control of XmForm say R. This R is the main object.

The WEC defined in the Optionmenu is rcOptionWEC which is user defined.
rcOptionWEC is inherited from guiOptionWEC also user defined one. In
the guiOptionWEC's SetOption method, widget get initialised. Means its
height, width and some more resources get setted using SetArg method. I
will embed the partial code related here below.
guiOptionWEC::SetOptions(...Parameters...)
{
// Get hold of the maximum length among the choices

int items = 0;
_maxLen = 0;
uiXmStringEnum *cp = (uiXmStringEnum *) choices;
while (cp->value) {
int len = XmStringLength(cp->value);
if ( _maxLen < len )
_maxLen = len;
items++;
cp++;
}

if (items == 0) {
uDEBUG(gui,OptionWEC, 1,(
"Error, no choices specified in
SetOptions"));
return;
}

// Create the menu of options

Cardinal num_args = 0;
Arg args[10];
Dimension height;
uiGetWidgetVar(widget, XmNheight, height);

XtSetArg(args[num_args], XmNpacking, XmPACK_COLUMN);
num_args++;
XtSetArg(args[num_args], XmNnumColumns, numColumns);
num_args++;
XtSetArg(args[num_args], XmNwidth, _maxLen); num_args++;
XtSetArg(args[num_args], XmNheight, height); num_args++;
XtSetArg(args[num_args], XmNx, 0); num_args++;
XtSetArg(args[num_args], XmNy, 0); num_args++;
XtSetArg(args[num_args], XmNentryAlignment,
XmALIGNMENT_BEGINNING);
num_args++;
_pulldown = (Widget) XmCreatePulldownMenu(widget,"pulldown1",
args,
num_args);
WidgetList options =
(WidgetList)XtMalloc(items*sizeof(Widget));
cp = (uiXmStringEnum *) choices;

for (i = 0; i < items; i++) {
char buf[80];
sprintf(buf, "optionPB%d", i);
num_args = 0;
XtSetArg(args[num_args], XmNuserData, &(cp->n));
num_args++;
XtSetArg(args[num_args], XmNlabelString, cp->value);
num_args++;
XtSetArg(args[num_args], XmNmarginWidth, 0);
num_args++;
XtSetArg(args[num_args], XmNalignment,
XmALIGNMENT_BEGINNING);
num_args++;
options[i] = XmCreatePushButtonGadget(_pulldown, buf,
args,
num_args);
XtAddCallback(options[i], XmNactivateCallback,
(XtCallbackProc) _PbActivate, (XtPointer)
this);
cp++;
}
XtManageChildren(options, items);
uiSetWidgetVar(widget, XmNsubMenuId, _pulldown);

.............}

The above code commonly executed for all the optionmenus. I tried to
change the width and height of one smaller one and one normal one using
the following code.
The code is added to the constructor of the optionmenu contained
Detailed View.
----------------
constructor()
{
Dimension mbwid,cellwid;
Dimension mbht,cellht;


XtVaGetValues(coincident_cellWE.widget,XmNheight,&cellht,XmNwidth,&cellwid,NULL);

XtVaGetValues(coincident_mbWE.widget,XmNheight,&mbht,XmNwidth,&mbwid,NULL);

uDEBUG(rfc,rfCellConfigForm,5,("\ncell Width is %d height %d
\n",(int)cellwid,(int)cellht));
uDEBUG(rfc,rfCellConfigForm,5,("\nmb Width is %d height %d
\n",(int)mbwid, (int)mbht));

cellwid=250;cellht=50;mbwid=250;mbht=50;
uDEBUG(rfc,rfCellConfigForm,5,("\ncell Width is %d height %d
\n",(int)cellwid,(int)cellht));
uDEBUG(rfc,rfCellConfigForm,5,("\nmb Width is %d height %d
\n",(int)mbwid, (int)mbht));


XtVaSetValues(coincident_cellWE.widget,XmNheight,c ellht,XmNwidth,cellwid,NULL);

XtVaSetValues(coincident_mbWE.widget,XmNheight,mbh t,XmNwidth,mbwid,NULL);


XtVaGetValues(coincident_cellWE.widget,XmNheight,&cellht,XmNwidth,&cellwid,NULL);

XtVaGetValues(coincident_mbWE.widget,XmNheight,&mbht,XmNwidth,&mbwid,NULL);


uDEBUG(rfc,rfCellConfigForm,5,("\ncell Width is %d height %d
\n",(int)cellwid,(int)cellht));
uDEBUG(rfc,rfCellConfigForm,5,("\nmb Width is %d height %d
\n",(int)mbwid, (int)mbht));
}
-------------------

and captured the DEBUG statements which are mentioned below:

-------------------
05/01/26 6:52:02.037, t@-1, rfCellConfigForm.C(1078), Feature:
rfc:rfCellConfigForm : Value of pane = 1

Before setting width and height:
05/01/26 6:52:02.038, t@-1, rfCellConfigForm.C(273), Feature:
rfc:rfCellConfigForm :
cell Width is 201 height 32

05/01/26 6:52:02.038, t@-1, rfCellConfigForm.C(274), Feature:
rfc:rfCellConfigForm :
mb Width is 201 height 32

After initialising width and height variables
05/01/26 6:52:02.038, t@-1, rfCellConfigForm.C(277), Feature:
rfc:rfCellConfigForm :
cell Width is 250 height 50

05/01/26 6:52:02.038, t@-1, rfCellConfigForm.C(278), Feature:
rfc:rfCellConfigForm :
mb Width is 250 height 50

After setting width and height
05/01/26 6:52:02.039, t@-1, rfCellConfigForm.C(287), Feature:
rfc:rfCellConfigForm :
cell Width is 201 height 32

05/01/26 6:52:02.039, t@-1, rfCellConfigForm.C(288), Feature:
rfc:rfCellConfigForm :
mb Width is 201 height 32

05/01/26 6:52:10.055, t@-1, rfCellConfigForm.C(658), Feature:
rfc:rfCellConfigForm : In SearchAtributes
05/01/26 6:52:10.056, t@-1, rfCellConfigForm.C(697), Feature:
rfc:rfCellConfigForm : In SearchAtributes(char * searchstr)
05/01/26 6:52:10.056, t@-1, rfCellConfigForm.C(712), Feature:
rfc:rfCellConfigForm : Search string is coin
05/01/26 6:52:10.056, t@-1, rfCellConfigForm.C(718), Feature:
rfc:rfCellConfigForm : New search string
05/01/26 6:52:10.057, t@-1, rfCellConfigForm.C(729), Feature:
rfc:rfCellConfigForm : retrieving BSS name set...
05/01/26 6:52:10.057, t@-1, rfCellConfigForm.C(740), Feature:
rfc:rfCellConfigForm : searching for name...
05/01/26 6:52:10.057, t@-1, rfCellConfigForm.C(776), Feature:
rfc:rfCellConfigForm : In SearchFromStart
05/01/26 6:52:10.073, t@-1, rfCellConfigForm.C(1076), Feature:
rfc:rfCellConfigForm : Entering SetBorder Function

05/01/26 6:52:10.073, t@-1, rfCellConfigForm.C(1078), Feature:
rfc:rfCellConfigForm : Value of pane = 1

05/01/26 6:52:22.604, t@-1, rfCellConfigForm.C(311), Feature:
rfc:rfCellConfigForm : In Destructor()

-------------------

It is very clear that, immediately after setting the height and width
of the optionmenu, if I try to get the resource values of the
optionmenu. It won't effect the changes and showing the older values.

In this connection kindly guide me and assist me to close this issue.
For futher info. plz contact me.

Regards
Shreeny