Hi Rick,
your right! But ...
Please try following example, which I have written in pre vTcl time. I think
it makes more clear why I want to use that feature:
##############################EXAMPLE########################################
proc EnableFilterSection {varname index op} {
if {$index != {}} {
set varname ${varname}($index)
} ;# if
upvar $varname var
pack forget .filter.criteria .filter.rtc_criteria .filter.buttons
if {$var == "Messages"} {
pack .filter.criteria -fill both
} elseif {$var == "Returncodes"} {
pack .filter.rtc_criteria -fill both
} ;# if
pack .filter.buttons -fill x
} ;# proc
wm withdraw .
toplevel .filter
frame .filter.what -borderwidth 2 -relief raised
tk_optionMenu .filter.what.kind Widget(filterWhat) Messages Returncodes
trace variable Widget(filterWhat) w EnableFilterSection
frame .filter.criteria -borderwidth 2 -relief raised
frame .filter.criteria.f1 -borderwidth 2
frame .filter.criteria.f1a -borderwidth 2
frame .filter.criteria.f2 -borderwidth 2
frame .filter.criteria.f4 -borderwidth 2
label .filter.criteria.f1.l1 -borderwidth 0 -text Number:
entry .filter.number -width 3 -textvariable Widget(filterNumber)
label .filter.criteria.f1a.l1 -relief flat -bd 2 -text Category:
eval tk_optionMenu .filter.category Widget(filterCategory) * SY MM DE DS RS
label .filter.criteria.f1a.l2 -relief flat -bd 2 -text Weight:
eval tk_optionMenu .filter.weight Widget(filterWeight) * E I T W U A
label .filter.criteria.f2.l1 -relief flat -bd 2 -text Header:
tk_optionMenu .filter.header Widget(filterHeader) * Yes No
label .filter.criteria.f2.l2 -relief flat -bd 2 -text SID:
tk_optionMenu .filter.sid Widget(filterSID) * Yes No
label .filter.criteria.f2.l3 -relief flat -bd 2 -text Signal:
tk_optionMenu .filter.signal Widget(filterSignal) * Yes No
frame .filter.criteria.f4.frame32 -borderwidth 2 -height 30 -width 30
label .filter.criteria.f4.frame32.l1 -text Text:
label .filter.criteria.f4.frame32.l2 -text Description:
label .filter.criteria.f4.frame32.l3 -text Action:
label .filter.criteria.f4.frame32.l4 -text Usage:
frame .filter.criteria.f4.frame33 -borderwidth 2 -height 30 -width 30
entry .filter.msgtext -width 32 -textvariable Widget(filterText)
entry .filter.msgdesc -width 32 -textvariable Widget(filterDesc)
entry .filter.msgaction -width 32 -textvariable Widget(filterAction)
entry .filter.msgusage -width 32 -textvariable Widget(filterUsage)
frame .filter.buttons -borderwidth 2 -relief raised
button .filter.buttons.apply -padx 9 -pady 3 -text Filter \
-command ApplyFilter -underline 0
button .filter.buttons.cancel -padx 9 -pady 3 -text Cancel \
-command {destroy .filter} -underline 5
bind .filter <Control-f> "ApplyFilter; break"
bind .filter <Control-l> {destroy .filter; set whatVisible $lastVisible; break}
frame .filter.rtc_criteria -borderwidth 2 -relief raised
frame .filter.rtc_criteria.f4 -borderwidth 2
frame .filter.rtc_criteria.f4.frame32 -borderwidth 2 -height 30 -width 30
label .filter.rtc_criteria.f4.frame32.l1 -text ID
label .filter.rtc_criteria.f4.frame32.l2 -text Name
label .filter.rtc_criteria.f4.frame32.l3 -text Text
label .filter.rtc_criteria.f4.frame32.l4 -text Description
label .filter.rtc_criteria.f4.frame32.l5 -text Action
frame .filter.rtc_criteria.f4.frame33 -borderwidth 2 -height 30 -width 30
entry .filter.fid -width 2 -textvariable Widget(filterFid)
entry .filter.name -width 19 -textvariable Widget(filterName)
entry .filter.rtctext -width 32 -textvariable Widget(filterText)
entry .filter.rtcdesc -width 32 -textvariable Widget(filterDesc)
entry .filter.rtcaction -width 32 -textvariable Widget(filterAction)
pack .filter.what.kind -side left
pack .filter.criteria.f1 -fill x
pack .filter.criteria.f1a -fill x
pack .filter.criteria.f2 -fill x
pack .filter.criteria.f4
pack .filter.criteria.f1.l1 -side left
pack .filter.number -in .filter.criteria.f1 -padx 6 -side left
pack .filter.criteria.f1a.l1 -side left
pack .filter.category -in .filter.criteria.f1a -side left
pack .filter.criteria.f1a.l2 -side left
pack .filter.weight -in .filter.criteria.f1a -side left
pack .filter.criteria.f2.l1 -side left
pack .filter.header -in .filter.criteria.f2 -side left
pack .filter.criteria.f2.l2 -side left
pack .filter.sid -in .filter.criteria.f2 -side left
pack .filter.criteria.f2.l3 -side left
pack .filter.signal -in .filter.criteria.f2 -side left
pack .filter.criteria.f4.frame32 -side left
pack .filter.criteria.f4.frame33 -side left
pack .filter.criteria.f4.frame32.l1 -anchor w
pack .filter.criteria.f4.frame32.l2 -anchor w
pack .filter.criteria.f4.frame32.l3 -anchor w
pack .filter.criteria.f4.frame32.l4 -anchor w
pack .filter.msgtext -in .filter.criteria.f4.frame33
pack .filter.msgdesc -in .filter.criteria.f4.frame33
pack .filter.msgaction -in .filter.criteria.f4.frame33
pack .filter.msgusage -in .filter.criteria.f4.frame33
pack .filter.buttons.apply -side left
pack .filter.buttons.cancel -side right
pack .filter.rtc_criteria.f4
pack .filter.rtc_criteria.f4.frame32 -side left
pack .filter.rtc_criteria.f4.frame33 -side left
pack .filter.rtc_criteria.f4.frame32.l1 -anchor w
pack .filter.rtc_criteria.f4.frame32.l2 -anchor w
pack .filter.rtc_criteria.f4.frame32.l3 -anchor w
pack .filter.rtc_criteria.f4.frame32.l4 -anchor w
pack .filter.rtc_criteria.f4.frame32.l5 -anchor w
pack .filter.fid -in .filter.rtc_criteria.f4.frame33 -anchor w
pack .filter.name -in .filter.rtc_criteria.f4.frame33 -anchor w
pack .filter.rtctext -in .filter.rtc_criteria.f4.frame33 -anchor w
pack .filter.rtcdesc -in .filter.rtc_criteria.f4.frame33 -anchor w
pack .filter.rtcaction -in .filter.rtc_criteria.f4.frame33 -anchor w
pack .filter.what -fill x
EnableFilterSection Widget filterWhat w
wm deiconify .filter
#############################END OF EXAMPLE###################################
Toggle the option menu to see what I mean.
Bye,
Cle.
--
| Clemens Hintze * ACB/EO ____ OMC-R Software Developement
| Phone: +49 30 7002-3241 \ / ALCATEL Mobile Communication Division ITD
| Fax : +49 30 7002-3851 \/ Colditzstr. 34-36, D-12099 Berlin, Germany
| mailto:[EMAIL PROTECTED]