Next: The SetBindings Method Up: Chaining Methods Previous: Chaining Methods


The ConstructWidget Method

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).