procedure
                        :spectrum       name  class  action  args

Creates a spectrum widget within the current panel frame for the TCL
interpreter.
name is used to generate the path name of the window to be created. It
should have the format of a widget name  (e.g.  :spectrum s0) 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
window.

The :spectrum procedure has a number of arguments which determine the
action required.

        arguments
                        :class                  name
        name is the class of action to be performed.

                        :action         name
        name is the action required which is a member of the current class.

                        :args                   list
        list  are arguments required by the current action. Not all actions
require an args list.


        spectrum
                create          :x  value  :y  value  :w  value  :h  value
                overlap [name]
                removeoverlaps
                add             [name]
                remove
                squeeze
                current [|m|ptr]
                title           [|n]
                size
                name            [|m]
                save            [n]
                get
                overlap-dataset
                data
                linestyle
                refresh
                info
                add-dataset
                clear


        get
                overlay-dataset [i  j]
                data                    [base range counts]
                linestyle               [0|1|2]
                refresh
                info
                add-dataset             [i  j]
                size                    [i  j] | [i  j  k  l]

        refresh
                tags
                calibrations

        configure
                -colourmap
                -overlapcolourmap
                -style
                -select

        cget

        view
                shift           [n]
                scale           [n]
                reset
                undo
                redo
                get
                current

        get
                dimension
                channel         [x  y]
                count                   [x  y]
                calibration             [x  y]
                channelx                [x  y]
                channely                [x  y]
                calibrationx            [x  y]
                calibrationy            [x  y]
                decalibrationx  [l]
                decalibrationy  [l]
                box


        gate
                pop             [m]
                push            [l  m]
                get             [m]
                set             [x1,y1  x2,y2]
                vertex hit      [x y]
                vertex add
                vertex remove
                vertex set
                get2d
                select
                set2d

        pointer
                pop
                get
                push
                set
                size

        tag
                near            x y
                set             x y
                get             n
                push            n
                pop             n
                get2d           n
                push2d  x y
                move

        cut     x | y   chan    matrixptr   cutptr