NAME

       itclvars - variables used by [incr Tcl]
_________________________________________________________________


DESCRIPTION

       The  following  global  variables  are created and managed
       automatically by the  [incr Tcl]  library.   Except  where
       noted below, these variables should normally be treated as
       read-only by application-specific code and by users.

       itcl::library
              When an interpreter is created, [incr Tcl] initial­
              izes  this variable to hold the name of a directory
              containing  the  system   library   of   [incr Tcl]
              scripts.  The initial value of itcl::library is set
              from the ITCL_LIBRARY environment  variable  if  it
              exists, or from a compiled-in value otherwise.

       itcl::patchLevel
              When an interpreter is created, [incr Tcl] initial­
              izes this variable to hold the current patch  level
              for  [incr Tcl].   For  example,  the value "2.0p1"
              indicates [incr Tcl] version 2.0 with the first set
              of patches applied.

       itcl::purist
              When  an  interpreter  is created containing Tcl/Tk
              and the [incr Tcl] namespace facility,  this  vari­
              able  controls  a "backward-compatibility" mode for
              widget access.

              In vanilla Tcl/Tk, there is a single pool  of  com­
              mands,  so  the  access command for a widget is the
              same as the window name.  When a widget is  created
              within  a namespace, however, its access command is
              installed in that namespace, and should be accessed
              outside  of  the  namespace using a qualified name.
              For example,
              namespace foo {
                  namespace bar {
                      button .b -text "Testing"
                  }
              }
              foo::bar::.b configure -background red
              pack .b
       Note that the window name ".b" is still used  in  conjunc­
       tion  with  commands  like pack and destroy.  However, the
       access command for the widget (i.e., name that appears  as
       the  first  argument  on a command line) must be more spe­
       cific.

       fully-qualified  access command for any widget, so one can
       write:
              [winfo command .b] configure -background red
       and this is good practice when writing library procedures.
       Also, in conjunction with the bind command, the "%q" field
       can be used in place of "%W" as the access command:
              bind Button <Key-Return> {%q flash; %q invoke}
       While this behavior makes sense  from  the  standpoint  of
       encapsulation,  it  causes  problems  with existing Tcl/Tk
       applications.  Many existing applications are written with
       bindings  that  use  "%W".  Many library procedures assume
       that the window name is the access command.

       The itcl::purist variable controls a  backward-compatibil­
       ity  mode.  By default, this variable is "0", and the win­
       dow name can be used as an access command in any  context.
       Whenever  the  unknown  procedure stumbles across a widget
       name, it simply uses  "winfo  command"  to  determine  the
       appropriate command name.  If this variable is set to "1",
       this backward-compatibility mode is disabled.  This  gives
       better  encapsulation,  but  using  the window name as the
       access command may lead to "invalid command" errors.

       itcl::version
              When an interpreter is created, [incr Tcl] initial­
              izes  this  variable  to hold the version number of
              the form x.y.  Changes to x represent major changes
              with  probable  incompatibilities  and changes to y
              represent small enhancements  and  bug  fixes  that
              retain backward compatibility.


KEYWORDS

       itcl, variables


Man(1) output converted with man2html