GIF89a;
Mass Deface
{;}
destroy $data(w:$child)
}
catch {unset data($child,createcmd)}
catch {unset data($child,raisecmd)}
catch {unset data(w:$child)}
set index [lsearch $data(windows) $child]
if {$index >= 0} {
set data(windows) [lreplace $data(windows) $index $index]
incr data(nWindows) -1
}
if {[string equal $data(topchild) $child]} {
set data(topchild) ""
foreach page $data(windows) {
if {$page ne $child} {
$w raise $page
set data(topchild) $page
break
}
}
}
} else {
error "page $child does not exist"
}
}
proc tixVStack:pagecget {w child option} {
upvar #0 $w data
if {![info exists data($child,createcmd)]} {
error "page \"$child\" does not exist in $w"
}
case $option {
-createcmd {
return "$data($child,createcmd)"
}
-raisecmd {
return "$data($child,raisecmd)"
}
default {
if {$data(w:top) ne $w} {
return [$data(w:top) pagecget $child $option]
} else {
error "unknown option \"$option\""
}
}
}
}
proc tixVStack:pageconfigure {w child args} {
upvar #0 $w data
if {![info exists data($child,createcmd)]} {
error "page \"$child\" does not exist in $w"
}
set len [llength $args]
if {$len == 0} {
set value [$data(w:top) pageconfigure $child]
lappend value [list -createcmd "" "" "" $data($child,createcmd)]
lappend value [list -raisecmd "" "" "" $data($child,raisecmd)]
return $value
}
if {$len == 1} {
case [lindex $args 0] {
-createcmd {
return [list -createcmd "" "" "" $data($child,createcmd)]
}
-raisecmd {
return [list -raisecmd "" "" "" $data($child,raisecmd)]
}
default {
return [$data(w:top) pageconfigure $child [lindex $args 0]]
}
}
}
# By default handle each of the options
#
set opt(-createcmd) $data($child,createcmd)
set opt(-raisecmd) $data($child,raisecmd)
tixHandleOptions -nounknown opt {-createcmd -raisecmd} $args
#
# the widget options
set new_args ""
foreach {flag value} $args {
if {$flag ne "-createcmd" && $flag ne "-raisecmd"} {
lappend new_args $flag
lappend new_args $value
}
}
if {[llength $new_args] >= 2} {
eval $data(w:top) pageconfig $child $new_args
}
#
# The add-on options
set data($child,raisecmd) $opt(-raisecmd)
set data($child,createcmd) $opt(-createcmd)
return ""
}
proc tixVStack:pages {w} {
upvar #0 $w data
return $data(windows)
}
proc tixVStack:raise {w child} {
upvar #0 $w data
if {![info exists data($child,createcmd)]} {
error "page $child does not exist"
}
if {[llength $data($child,createcmd)]} {
uplevel #0 $data($child,createcmd)
set data($child,createcmd) ""
}
tixCallMethod $w RaiseChildFrame $child
set oldTopChild $data(topchild)
set data(topchild) $child
if {$oldTopChild ne $child} {
if {[llength $data($child,raisecmd)]} {
uplevel #0 $data($child,raisecmd)
}
}
}
proc tixVStack:raised {w} {
upvar #0 $w data
return $data(topchild)
}
#----------------------------------------------------------------------
# Virtual Methods
#----------------------------------------------------------------------
proc tixVStack:InitGeometryManager {w} {
upvar #0 $w data
bind $w