/usr/share/tcltk/tcl8.6/Tix8.4.3/VTree.tcl is in tix 8.4.3-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | # -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id: VTree.tcl,v 1.6 2004/03/28 02:44:57 hobbs Exp $
#
# VTree.tcl --
#
# Virtual base class for Tree widgets.
#
#
# Copyright (c) 1993-1999 Ioi Kim Lam.
# Copyright (c) 2000-2001 Tix Project Group.
# Copyright (c) 2004 ActiveState
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
tixWidgetClass tixVTree {
-virtual true
-classname TixVTree
-superclass tixScrolledHList
-method {
}
-flag {
-ignoreinvoke
}
-configspec {
{-ignoreinvoke ignoreInvoke IgnoreInvoke false tixVerifyBoolean}
}
-default {
}
}
proc tixVTree:InitWidgetRec {w} {
upvar #0 $w data
tixChainMethod $w InitWidgetRec
}
proc tixVTree:ConstructWidget {w} {
upvar #0 $w data
tixChainMethod $w ConstructWidget
set data(indStyle) \
[tixDisplayStyle image -refwindow $data(w:hlist) -padx 0 -pady 0]
}
proc tixVTree:SetBindings {w} {
upvar #0 $w data
tixChainMethod $w SetBindings
$data(w:hlist) config \
-indicatorcmd [list tixVTree:IndicatorCmd $w] \
-browsecmd [list tixVTree:BrowseCmdHook $w] \
-command [list tixVTree:CommandHook $w]
}
proc tixVTree:IndicatorCmd {w args} {
upvar #0 $w data
set event [tixEvent type]
set ent [tixEvent flag V]
set type [tixVTree:GetType $w $ent]
set plus [tix getimage plus]
set plusarm [tix getimage plusarm]
set minus [tix getimage minus]
set minusarm [tix getimage minusarm]
if {![$data(w:hlist) info exists $ent]} {return}
switch -exact -- $event {
<Arm> {
if {![$data(w:hlist) indicator exists $ent]} {return}
$data(w:hlist) indicator config $ent \
-image [expr {$type eq "open" ? $plusarm : $minusarm}]
}
<Disarm> {
if {![$data(w:hlist) indicator exists $ent]} {return}
$data(w:hlist) indicator config $ent \
-image [expr {$type eq "open" ? $plus : $minus}]
}
<Activate> {
upvar bind bind
tixCallMethod $w Activate $ent $type
set bind(%V) $ent
tixVTree:BrowseCmdHook $w
}
}
}
proc tixVTree:GetType {w ent} {
upvar #0 $w data
if {![$data(w:hlist) indicator exists $ent]} {
return none
}
set img [$data(w:hlist) indicator cget $ent -image]
if {$img eq [tix getimage plus] || $img eq [tix getimage plusarm]} {
return open
}
return close
}
proc tixVTree:Activate {w ent type} {
upvar #0 $w data
if {$type eq "open"} {
tixCallMethod $w OpenCmd $ent
$data(w:hlist) indicator config $ent -image [tix getimage minus]
} else {
tixCallMethod $w CloseCmd $ent
$data(w:hlist) indicator config $ent -image [tix getimage plus]
}
}
proc tixVTree:CommandHook {w args} {
upvar #0 $w data
upvar bind bind
tixCallMethod $w Command bind
}
proc tixVTree:BrowseCmdHook {w args} {
upvar #0 $w data
upvar bind bind
tixCallMethod $w BrowseCmd bind
}
proc tixVTree:SetMode {w ent mode} {
upvar #0 $w data
switch -exact -- $mode {
open {
$data(w:hlist) indicator create $ent -itemtype image \
-image [tix getimage plus] -style $data(indStyle)
}
close {
$data(w:hlist) indicator create $ent -itemtype image \
-image [tix getimage minus] -style $data(indStyle)
}
none {
if {[$data(w:hlist) indicator exist $ent]} {
$data(w:hlist) indicator delete $ent
}
}
}
}
#----------------------------------------------------------------------
#
# Virtual Methods
#
#----------------------------------------------------------------------
proc tixVTree:OpenCmd {w ent} {
upvar #0 $w data
# The default action
foreach kid [$data(w:hlist) info children $ent] {
$data(w:hlist) show entry $kid
}
}
proc tixVTree:CloseCmd {w ent} {
upvar #0 $w data
# The default action
foreach kid [$data(w:hlist) info children $ent] {
$data(w:hlist) hide entry $kid
}
}
proc tixVTree:Command {w B} {
upvar #0 $w data
upvar $B bind
if {$data(-ignoreinvoke)} {
return
}
set ent [tixEvent flag V]
if {[$data(w:hlist) indicator exist $ent]} {
tixVTree:Activate $w $ent [tixVTree:GetType $w $ent]
}
}
proc tixVTree:BrowseCmd {w B} {
}
#----------------------------------------------------------------------
#
# Widget commands
#
#----------------------------------------------------------------------
|