How can I maintain read-only sections of a text widget?
|
|
If you want the entire text widget to be read-only, set the "-state"
option of the `text` widget to "disabled". To create read-only sections
in a text widget, you should make use of the `text` widget tag facility.
The following is a minimal example of this:
pack [text .text]
.text tag configure readonly -background yellow
rename .text ..text
proc .text args {
if {[string match ins* $args] &&
[lsearch -exact [.text tag names [lindex $args 1]] readonly]>-1} return
if {[string match del* $args]} {
if {[string compare {} [lindex $args 2]]} {
if {[string compare {} [eval .text tag nextrange readonly [lrange $args 1 2]]]} return
} else {
if {[lsearch -exact [.text tag names [lindex $args 1]] readonly]>-1} return
}
}
uplevel ..text $args
}
|
|
|