"Fossies" - the Fresh Open Source Software archive 
Now, if you want to change a value from within the program, you have to
disable the callback. The reason is that the callback runs whenever you
(as well as the user) makes a change. In particular, if you make a change
within the callback procedure and forget to disable the callback, it will
recursively call itself and enter an infinite loop. To avoid this
problem, you should use the -disablecallback option. Here is an
example:
tixControl .c -command addOne
The procedure addOne adjusts the value of .c by one whenever
the user enters a new value into .c. Notice that it is necessary to
set -disablecallback here or otherwise addOne will be
infinitely recursed! That is because addOne is called every
time the value changes, either by the user or by the program.
Next: Validating User Inputs
Up: Getting Started: the
Previous: Accessing The Value
Disabling Callbacks Temporarily
proc addOne {value} {
.c config -disablecallback true
.c config -value [incr value]
.c config -disablecallback false
}