procedure
                        :choice-stack           name

Creates a choicestack widget within the current panel frame for the TCL
interpreter. A choicestack widget is a frame window containing a menubutton
window, menu, message window and (optionally) label window.
name is used to generate the path name of the windows to be created. It
should have the format of a widget name  (e.g.  :choicestack   CHSTK) and
should be unique within this interpreter. The name will be lower-cased (using
the string tolower command) in order to generate the path name used to
create the windows.
When a choice is selected by releasing mouse button 1 while the mouse
focus is on an item in the menu then the TCL command
click  FRAME “ ”  CHOICESTACK index item
will be executed where FRAME and CHOICESTACK are widget names,
index is the index of the selected menu item within the choicestack menu and
item is the contents of the menu item selected.
The selected menu item is written into the message window.
The path names generated have the root framename.panelname.choice-
stackname and the items menu, message and label.
The :choice-stack procedure may also be used directly within a frame window (i.e. before any
panel window has been created).


The :choice-stack procedure may have a number of arguments however
none of these is mandatory.

        arguments
                        :x                      number
        number is the x-co-ordinate within the current panel of the choicestack
widget in pixels
        e.g.    :x 400

                        :y                      number
        number is the y-co-ordinate within the current panel of the choicestack
widget in pixels
        e.g.    :y 200
The :x and :y parameters may be omitted in which case the packer geometry manager will be
used and the position of the window will be determined by the contents of the master (panel)
window. If however the :x and :y parameters are supplied then the placer geometry manager
will be used to position the window within the master (panel) window.
Warning:        Note that it is not possible to mix use of the packer and placer geometry
managers within the same window. Thus all windows within a panel must request or imply that
the same geometry manager is used.

                        :value                  value
        value is the index of the initially selected item within the choice menu.
The selected menu item is written into the message window.
The default value is 0.

                        :valuex         value
        value is the position of the left hand edge of the menubutton window
with relation to the left hand edge of the checkbox widget. It is thus the space
available to write the label string but also allows alignment of the menubutton
windows of several checkbox widgets. The value may be expressed in units
of pixels or characters.
        e.g.    :valuex 100    (pixels);        :valuex 15c    (characters)
The default value is 0. If :valuex is specified then a label window will be created even if :label
is not specified (in which case the label will be a single space character).

                        :label                  string
        string is a text string to be written into the label component of the
choice-stack widget.
By default no label window is created. A non null :label string (a single space is adequate)
causes the label window to be created (see also :valuex).

                        :strings                list
        list is a simple TCL list of text strings which form the elements of the
menu.
The default is a null list and hence an empty menu.

                        :menu           list
        list is a TCL list of items which form the elements of the menu. Each
item may be a simple string in which case it is appended as the name of a
command in the current menu. However an item may itself be a list in which
case the first element of the item is appended as the name of a cascade in
the current menu and the remaining elements of the item are used to
construct the cascade menu.
It is not meaningful that :menu and :string are both specified in the same command.

The arguments :rows and :cols are no longer available since the use of
:menu permits menus to be structured as required.

See also common procedure arguments defined later in this document.