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]

Reply via email to