# Miscellaneous Stuff

- SpecTcl looks at the following environment variables:

SPECTCL_DIR
  The directory that contains the SpecTcl source files
SPECTCL_SIZE
  If specified, each font used by SpecTcl is increased (or decreased) in size by this amount (in points).
SPECTCL_HELP
  The directory containing the SpecTcl help files
SPECTCL_RC
  An alternate location for the SpecTcl startup file.

- Extra widget sets can be specified in the .SpecTclrc file:

To the end of this file add an array that as field names has the packages that one wishes to load in with "package require". Only commands that are imported into the namespace can be used - the commands that one wishes to import into the namespace must be specified as the value e.g.

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