[comp.windows.x] problem with Athena Widgets form widget resizing

rusty@GARNET.BERKELEY.EDU (06/29/89)

In my xysysmon program I'm having a problem where it seems that a
lower-level form widget is being set to the size (geometry) for the
top-level window only when I use the command line option -geometry or
use XSysmon.geometry in my .Xdefaults file.  The widget tree looks
like this:

top_shell
	mainForm
		mainLabel
		loadForm
			userCpuForm
			systemCpuForm
			idleCpuForm
			...

Where top_shell is the widget returned by XtInitialize, mainForm is a
form widget (whose parent is top_shell), mainLabel is a label widget
(whose parent is mainForm), loadForm is a form widget (whose parent is
mainForm), etc.

The loadForm widget is the widget that seems to be getting improperly
resized when I use -geometry.  It looks like its size is too small,
vertically, by about the height of mainLabel.  The "missing" part is
at the bottom, so that the lowest form widget in it is partly cut off.

It happens regardless of which window manager I run (twm or awm) or
none at all.

Could someone please tell me what is wrong and what I can do to fix
it?

The only resource I'm setting in the code is fromVert on
systemCpuForm, idleCpuForm, etc.  All the rest are being set in the
app defaults file:

*Form.internalHeight:				0
*Form.internalWidth:				0
*Form.defaultDistance:				1
*Form.borderWidth:				0
*Form.resizable:				True
*Form.left:					ChainLeft
*Form.right:					ChainRight

*Label.borderWidth:				0
*Label.internalHeight:				0
*Label.internalWidth:				0
*Label.resizable:				True
*Label.justify:					left
*Label.top:					ChainTop
*Label.bottom:					ChainTop
*Label.left:					ChainLeft
*Label.right:					ChainLeft

*Load.height:					50
*Load.width:					50
*Load.update:					3
*Load.borderWidth:				1
*Load.resizable:				True
*Load.left:					ChainLeft

*loadForm.fromVert:				mainLabel
*loadForm.top:					ChainTop
!doesn't help
!*loadForm.bottom:				ChainBottom

*userCpuForm*label1.label:			user
*userCpuForm*label2.label:			cpu
*userCpuForm*label2.fromVert:			label1

*userCpuLoad.fromHoriz:				label1

*systemCpuForm*label1.label:			system
*systemCpuForm*label2.label:			cpu
*systemCpuForm*label2.fromVert:			label1

*systemCpuLoad.fromHoriz:			label1

*idleCpuForm*label1.label:			idle
*idleCpuForm*label2.label:			cpu
*idleCpuForm*label2.fromVert:			label1

*idleCpuLoad.fromHoriz:				label1

*freeMemForm*label1.label:			free
*freeMemForm*label2.label:			memory
*freeMemForm*label2.fromVert:			label1

*freeMemLoad.fromHoriz:				label1

*diskTransForm*label1.label:			disk
*diskTransForm*label2.label:			transfers
*diskTransForm*label2.fromVert:			label1

*diskTransLoad.fromHoriz:			label1

*interruptsForm*label1.label:			interrupts
*interruptsForm*label2.label:	\ 
*interruptsForm*label2.fromVert:		label1

*interruptsLoad.fromHoriz:			label1

*inputPackForm*label1.label:			input
*inputPackForm*label2.label:			packets
*inputPackForm*label2.fromVert:			label1

*inputPackLoad.fromHoriz:			label1

*outputPackForm*label1.label:			output
*outputPackForm*label2.label:			packets
*outputPackForm*label2.fromVert:		label1

*outputPackLoad.fromHoriz:			label1

*collPackForm*label1.label:			collision
*collPackForm*label2.label:			packets
*collPackForm*label2.fromVert:			label1

*collPackLoad.fromHoriz:			label1