**Implemented Widgets**
All Tk widget commands are implemented in namespace ::tk but for compatibility there are interp aliases to be able to use for example button without the ::tk:: namespace prefix for creating a new button instance.
So we have the following commands:
* ::tk::button
* ::tk::entry
* ::tk::frame
* ::tk::label
* ::tk::toplevel
From experiments I found out, that you need a
element around most of these widgets to be able to force width and height requirements and also when packing these widgets. So in [HTML] a [button] [widget] would look like so:
The sub commands for a button could not be implemented directly as a [namespace] ensemble, as the button itself is implemented like an [itcl] class, so that [namespace] cannot be additionally be used for a [namespace] ensemble.
So for example the cget and configure command of a button widget are implemented as ::tk::button::configure and ::tk::button::cget and are handled like [itcl] class methods. As a result you can use .b1 cget … and .b1 configure ..., if .b1 has been created as a [button] [widget] instance using: button .b1 …
But be aware: a [Tk] [widget] instance in this implementation is no class object and a sub command of the [widget] is no class method. It is only handled very similar to these parts, to be able to use common code!
(Part of [Tk Widgets in Javascript Paper])
<>Category GUI