The ConstructWidget method is used to create the components of a
widget instance. In the case of TixArrowButton, we want to create a
new button subwidget, whose name is button, and use a bitmap to
display an arrow on this button. Assuming the bitmap files are stored
in the files up.xbm, down.xbm, left.xbm and right.xbm, the string
substitution @$data(-direction).xbm will give us the appropriate
bitmap depending on the current direction option of the widget
instance.
proc tixArrowButton:ConstructWidget {w} {
upvar #0 $w data
tixChainMethod $w ConstructWidget
set data(w:button) \
[button $w.button \
-bitmap @$data(-direction).xbm]
pack $data(w:button) \
-expand yes -fill both
}
The tixArrowButton:ConstructWidget method shown above sets the
variable data(w:button) to be the pathname of the button subwidget. As
a convention of the Tix Intrinsics, we must declare a public subwidget
swid by storing its pathname in the variable data(w:swid).