namespace eval :: {
# BLT
set ExtraWidgets(BLT) [list blt::barchart blt::graph
blt::hierbox blt::stripchart]
# Tix
set ExtraWidgets(Tix) [list]
# Tktable
set ExtraWidgets(Tktable) [list]
# Iwidgets: need to load [Incr Tcl] first
package require Itcl
namespace import itcl::*
set ExtraWidgets(Iwidgets) [list iwidgets::notebook
iwidgets::tabset iwidgets::watch]
# BWidgets: need to rename commands because they start
with
# an upper case letter
proc bwtree {args} {uplevel Tree $args}
set ExtraWidgets(BWidget) [list bwtree]
}
Adding the above block to the end of the .SpecTclrc file would include the four specified widgets from the BLT package, all widgets from the Tix and TkTable packages, the three specified widgets from IWidgets and the Tree widget from BWigets. Note that Tix and TkTable have no namespace, so all widgets are included (on rare ocassions it is still necessary to specify widgets, even though they are not in a namespace). Note that Itcl must be specifically loaded in the case of IWidgets. BWidgets is tricky due to its uppercase widget commands. There might be other quirks for these packages, other packages and other versions of these packages
If you use these widgets and wish to test them, remember to add the relevant lines to Preferences|Options|Output - something like:
package require BLT
namespace import blt::barchart blt::graph blt::hierbox blt::stripchart
package require Tix
package require Tktable
package require Itcl
namespace import itcl::*
package require Iwidgets
namspace import iwidgets::*
proc bwtree {args} {uplevel Tree $args}
package require BWidget