First we create one vumeter bar.
A widget is represented by an object (package) with the same name. Most
parts of the widget's creation are done by Tk: with a few lines, you have
a new widget.
First, you have to tell Tk where this widget can be a child of. The
Tk::Widget is the base-class of Tk, which means that my
vu widget can be contained in any other object.
The construct call is just the same as:
but it looks a bit more as a special language facility in this list-notation;
just a bit more status to Tk ;)
Specialised (derived) widgets shall always also inherit methods of
Tk::Derived, which will overrule methods of the super-class
Tk::Derived must be the first in the
@ISA. I do
not know where this design flaw happened, but we have to live with it.
At creation of the widget, the
InitObject of the super-class
will call your method
Populate to add more configuration flags
to the widget, or to overrule configuration flag defaults. This is done
ConfigSpecs, which I will explain later.
$args is a reference to the hash containing the flags which
were given by the user. You may delete from it.
call its super-class to collect the other configuration flags.
When all flags are known, the
InitObject of the super-class will
process the flags and defaults.