/
usr
/
lib64
/
tcl8.5
/
Tix8.4.3
/
/usr/lib64/tcl8.5/Tix8.4.3
mkdir
upload
Name
Size
Mode
Actions
bitmaps/
-
0755
rm
html/
-
0755
rm
pref/
-
0755
rm
Balloon.tcl
13285
0644
edit
dl
rm
BtnBox.tcl
2671
0644
edit
dl
rm
ChkList.tcl
5087
0644
edit
dl
rm
CObjView.tcl
7738
0644
edit
dl
rm
ComboBox.tcl
36271
0644
edit
dl
rm
Compat.tcl
870
0644
edit
dl
rm
Console.tcl
15311
0644
edit
dl
rm
Control.tcl
12402
0644
edit
dl
rm
DefSchm.tcl
3013
0644
edit
dl
rm
DialogS.tcl
4296
0644
edit
dl
rm
DirBox.tcl
5425
0644
edit
dl
rm
DirDlg.tcl
2206
0644
edit
dl
rm
DirList.tcl
7064
0644
edit
dl
rm
DirTree.tcl
8972
0644
edit
dl
rm
DragDrop.tcl
4025
0644
edit
dl
rm
DtlList.tcl
1002
0644
edit
dl
rm
EFileBox.tcl
11390
0644
edit
dl
rm
EFileDlg.tcl
1718
0644
edit
dl
rm
Event.tcl
5231
0644
edit
dl
rm
FileBox.tcl
14336
0644
edit
dl
rm
FileCbx.tcl
2483
0644
edit
dl
rm
FileDlg.tcl
2185
0644
edit
dl
rm
FileEnt.tcl
7319
0644
edit
dl
rm
FloatEnt.tcl
3176
0644
edit
dl
rm
fs.tcl
3995
0644
edit
dl
rm
Grid.tcl
21665
0644
edit
dl
rm
HList.tcl
18148
0644
edit
dl
rm
HListDD.tcl
4500
0644
edit
dl
rm
IconView.tcl
6110
0644
edit
dl
rm
Init.tcl
6199
0644
edit
dl
rm
LabEntry.tcl
2143
0644
edit
dl
rm
LabFrame.tcl
1181
0644
edit
dl
rm
LabWidg.tcl
3951
0644
edit
dl
rm
libTix.so
318272
0755
edit
dl
rm
license.terms
2828
0644
edit
dl
rm
ListNBk.tcl
3581
0644
edit
dl
rm
Meter.tcl
3114
0644
edit
dl
rm
MultView.tcl
3704
0644
edit
dl
rm
NoteBook.tcl
6160
0644
edit
dl
rm
OldUtil.tcl
3056
0644
edit
dl
rm
OptMenu.tcl
9392
0644
edit
dl
rm
PanedWin.tcl
28347
0644
edit
dl
rm
pkgIndex.tcl
122
0644
edit
dl
rm
PopMenu.tcl
5500
0644
edit
dl
rm
Primitiv.tcl
10527
0644
edit
dl
rm
README.txt
987
0644
edit
dl
rm
ResizeH.tcl
13247
0644
edit
dl
rm
Select.tcl
7204
0644
edit
dl
rm
SGrid.tcl
5935
0644
edit
dl
rm
Shell.tcl
1082
0644
edit
dl
rm
SHList.tcl
3793
0644
edit
dl
rm
SimpDlg.tcl
1157
0644
edit
dl
rm
SListBox.tcl
7138
0644
edit
dl
rm
StackWin.tcl
1992
0644
edit
dl
rm
StatBar.tcl
1339
0644
edit
dl
rm
StdBBox.tcl
1656
0644
edit
dl
rm
StdShell.tcl
1173
0644
edit
dl
rm
SText.tcl
3163
0644
edit
dl
rm
STList.tcl
2428
0644
edit
dl
rm
SWidget.tcl
9748
0644
edit
dl
rm
SWindow.tcl
6908
0644
edit
dl
rm
Tix.tcl
9737
0644
edit
dl
rm
TList.tcl
18009
0644
edit
dl
rm
Tree.tcl
4679
0644
edit
dl
rm
Utils.tcl
10788
0644
edit
dl
rm
Variable.tcl
2563
0644
edit
dl
rm
VResize.tcl
5069
0644
edit
dl
rm
VStack.tcl
9651
0644
edit
dl
rm
VTree.tcl
4410
0644
edit
dl
rm
WInfo.tcl
965
0644
edit
dl
rm
Edit:
/usr/lib64/tcl8.5/Tix8.4.3/Grid.tcl
(21665B)
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id: Grid.tcl,v 1.6 2004/03/28 02:44:57 hobbs Exp $ # # Grid.tcl -- # # This file defines the default bindings for Tix Grid 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. # global tkPriv if {![llength [info globals tkPriv]]} { tk::unsupported::ExposePrivateVariable tkPriv } #-------------------------------------------------------------------------- # tkPriv elements used in this file: # # afterId - Token returned by "after" for autoscanning. # fakeRelease - Cancel the ButtonRelease-1 after the user double click #-------------------------------------------------------------------------- # foreach fun {tkCancelRepeat} { if {![llength [info commands $fun]]} { tk::unsupported::ExposePrivateCommand $fun } } unset fun proc tixGridBind {} { tixBind TixGrid <ButtonPress-1> { tixGrid:Button-1 %W %x %y } tixBind TixGrid <Shift-ButtonPress-1> { tixGrid:Shift-Button-1 %W %x %y } tixBind TixGrid <Control-ButtonPress-1> { tixGrid:Control-Button-1 %W %x %y } tixBind TixGrid <ButtonRelease-1> { tixGrid:ButtonRelease-1 %W %x %y } tixBind TixGrid <Double-ButtonPress-1> { tixGrid:Double-1 %W %x %y } tixBind TixGrid <B1-Motion> { set tkPriv(x) %x set tkPriv(y) %y set tkPriv(X) %X set tkPriv(Y) %Y tixGrid:B1-Motion %W %x %y } tixBind TixGrid <Control-B1-Motion> { set tkPriv(x) %x set tkPriv(y) %y set tkPriv(X) %X set tkPriv(Y) %Y tixGrid:Control-B1-Motion %W %x %y } tixBind TixGrid <B1-Leave> { set tkPriv(x) %x set tkPriv(y) %y set tkPriv(X) %X set tkPriv(Y) %Y tixGrid:B1-Leave %W } tixBind TixGrid <B1-Enter> { tixGrid:B1-Enter %W %x %y } tixBind TixGrid <Control-B1-Leave> { set tkPriv(x) %x set tkPriv(y) %y set tkPriv(X) %X set tkPriv(Y) %Y tixGrid:Control-B1-Leave %W } tixBind TixGrid <Control-B1-Enter> { tixGrid:Control-B1-Enter %W %x %y } # Keyboard bindings # tixBind TixGrid <Up> { tixGrid:DirKey %W up } tixBind TixGrid <Down> { tixGrid:DirKey %W down } tixBind TixGrid <Left> { tixGrid:DirKey %W left } tixBind TixGrid <Right> { tixGrid:DirKey %W right } tixBind TixGrid <Prior> { %W yview scroll -1 pages } tixBind TixGrid <Next> { %W yview scroll 1 pages } tixBind TixGrid <Return> { tixGrid:Return %W } tixBind TixGrid <space> { tixGrid:Space %W } # # Don't use tixBind because %A causes Tk 8.3.2 to crash # bind TixGrid <MouseWheel> { %W yview scroll [expr {- (%D / 120) * 2}] units } } #---------------------------------------------------------------------- # # # Mouse bindings # # #---------------------------------------------------------------------- proc tixGrid:Button-1 {w x y} { if {[$w cget -state] eq "disabled"} { return } tixGrid:SetFocus $w if {[tixGrid:GetState $w] == 0} { tixGrid:GoState 1 $w $x $y } } proc tixGrid:Shift-Button-1 {w x y} { if {[$w cget -state] eq "disabled"} { return } tixGrid:SetFocus $w } proc tixGrid:Control-Button-1 {w x y} { if {[$w cget -state] eq "disabled"} { return } tixGrid:SetFocus $w case [tixGrid:GetState $w] { {s0} { tixGrid:GoState s1 $w $x $y } {b0} { tixGrid:GoState b1 $w $x $y } {m0} { tixGrid:GoState m1 $w $x $y } {e0} { tixGrid:GoState e10 $w $x $y } } } proc tixGrid:ButtonRelease-1 {w x y} { case [tixGrid:GetState $w] { {2} { tixGrid:GoState 5 $w $x $y } {4} { tixGrid:GoState 3 $w $x $y } } } proc tixGrid:B1-Motion {w x y} { case [tixGrid:GetState $w] { {2 4} { tixGrid:GoState 4 $w $x $y } } } proc tixGrid:Control-B1-Motion {w x y} { case [tixGrid:GetState $w] { {s2 s4} { tixGrid:GoState s4 $w $x $y } {b2 b4} { tixGrid:GoState b4 $w $x $y } {m2 m5} { tixGrid:GoState m4 $w $x $y } } } proc tixGrid:Double-1 {w x y} { case [tixGrid:GetState $w] { {s0} { tixGrid:GoState s7 $w $x $y } {b0} { tixGrid:GoState b7 $w $x $y } } } proc tixGrid:B1-Leave {w} { case [tixGrid:GetState $w] { {s2 s4} { tixGrid:GoState s5 $w } {b2 b4} { tixGrid:GoState b5 $w } {m2 m5} { tixGrid:GoState m8 $w } {e2 e5} { tixGrid:GoState e8 $w } } } proc tixGrid:B1-Enter {w x y} { case [tixGrid:GetState $w] { {s5 s6} { tixGrid:GoState s4 $w $x $y } {b5 b6} { tixGrid:GoState b4 $w $x $y } {m8 m9} { tixGrid:GoState m4 $w $x $y } {e8 e9} { tixGrid:GoState e4 $w $x $y } } } proc tixGrid:Control-B1-Leave {w} { case [tixGrid:GetState $w] { {s2 s4} { tixGrid:GoState s5 $w } {b2 b4} { tixGrid:GoState b5 $w } {m2 m5} { tixGrid:GoState m8 $w } } } proc tixGrid:Control-B1-Enter {w x y} { case [tixGrid:GetState $w] { {s5 s6} { tixGrid:GoState s4 $w $x $y } {b5 b6} { tixGrid:GoState b4 $w $x $y } {m8 m9} { tixGrid:GoState m4 $w $x $y } } } proc tixGrid:AutoScan {w} { case [tixGrid:GetState $w] { {s5 s6} { tixGrid:GoState s6 $w } {b5 b6} { tixGrid:GoState b6 $w } {m8 m9} { tixGrid:GoState m9 $w } {e8 e9} { tixGrid:GoState e9 $w } } } #---------------------------------------------------------------------- # # # Key bindings # # #---------------------------------------------------------------------- proc tixGrid:DirKey {w key} { if {[$w cget -state] eq "disabled"} { return } case [tixGrid:GetState $w] { {s0} { tixGrid:GoState s8 $w $key } {b0} { tixGrid:GoState b8 $w $key } } } proc tixGrid:Return {w} { if {[$w cget -state] eq "disabled"} { return } case [tixGrid:GetState $w] { {s0} { tixGrid:GoState s9 $w } {b0} { tixGrid:GoState b9 $w } } } proc tixGrid:Space {w} { if {[$w cget -state] eq "disabled"} { return } case [tixGrid:GetState $w] { {s0} { tixGrid:GoState s10 $w } {b0} { tixGrid:GoState b10 $w } } } #---------------------------------------------------------------------- # # STATE MANIPULATION # # #---------------------------------------------------------------------- proc tixGrid:GetState {w} { global $w:priv:state if {![info exists $w:priv:state]} { set $w:priv:state 0 } return [set $w:priv:state] } proc tixGrid:SetState {w n} { global $w:priv:state set $w:priv:state $n } proc tixGrid:GoState {n w args} { # puts "going from [tixGrid:GetState $w] --> $n" tixGrid:SetState $w $n eval tixGrid:GoState-$n $w $args } #---------------------------------------------------------------------- # SELECTION ROUTINES #---------------------------------------------------------------------- proc tixGrid:SelectSingle {w ent} { $w selection set [lindex $ent 0] [lindex $ent 1] tixGrid:CallBrowseCmd $w $ent } #---------------------------------------------------------------------- # SINGLE SELECTION #---------------------------------------------------------------------- proc tixGrid:GoState-0 {w} { set list $w:_list global $list if {[info exists $list]} { foreach cmd [set $list] { uplevel #0 $cmd } if {[info exists $list]} { unset $list } } } proc tixGrid:GoState-1 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { tixGrid:SetAnchor $w $ent } tixGrid:CheckEdit $w $w selection clear 0 0 max max if {[$w cget -selectmode] ne "single"} { tixGrid:SelectSingle $w $ent } tixGrid:GoState 2 $w } proc tixGrid:GoState-2 {w} { } proc tixGrid:GoState-3 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { tixGrid:SelectSingle $w $ent } tixGrid:GoState 0 $w } proc tixGrid:GoState-5 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { tixGrid:SelectSingle $w $ent tixGrid:SetEdit $w $ent } tixGrid:GoState 0 $w } proc tixGrid:GoState-4 {w x y} { set ent [$w nearest $x $y] case [$w cget -selectmode] { single { tixGrid:SetAnchor $w $ent } browse { tixGrid:SetAnchor $w $ent $w selection clear 0 0 max max tixGrid:SelectSingle $w $ent } {multiple extended} { set anchor [$w anchor get] $w selection adjust [lindex $anchor 0] [lindex $anchor 1] \ [lindex $ent 0] [lindex $ent 1] } } } proc tixGrid:GoState-s5 {w} { tixGrid:StartScan $w } proc tixGrid:GoState-s6 {w} { global tkPriv tixGrid:DoScan $w } proc tixGrid:GoState-s7 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w selection clear $w selection set $ent tixGrid:CallCommand $w $ent } tixGrid:GoState s0 $w } proc tixGrid:GoState-s8 {w key} { set anchor [$w info anchor] if {$anchor == ""} { set anchor 0 } else { set anchor [$w info $key $anchor] } $w anchor set $anchor $w see $anchor tixGrid:GoState s0 $w } proc tixGrid:GoState-s9 {w} { set anchor [$w info anchor] if {$anchor == ""} { set anchor 0 $w anchor set $anchor $w see $anchor } if {[$w info anchor] != ""} { # ! may not have any elements # tixGrid:CallCommand $w [$w info anchor] $w selection clear $w selection set $anchor } tixGrid:GoState s0 $w } proc tixGrid:GoState-s10 {w} { set anchor [$w info anchor] if {$anchor == ""} { set anchor 0 $w anchor set $anchor $w see $anchor } if {[$w info anchor] != ""} { # ! may not have any elements # tixGrid:CallBrowseCmd $w [$w info anchor] $w selection clear $w selection set $anchor } tixGrid:GoState s0 $w } #---------------------------------------------------------------------- # BROWSE SELECTION #---------------------------------------------------------------------- proc tixGrid:GoState-b0 {w} { } proc tixGrid:GoState-b1 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w anchor set $ent $w selection clear $w selection set $ent tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState b2 $w } proc tixGrid:GoState-b2 {w} { } proc tixGrid:GoState-b3 {w} { set ent [$w info anchor] if {$ent != ""} { $w selection clear $w selection set $ent tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState b0 $w } proc tixGrid:GoState-b4 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w anchor set $ent $w selection clear $w selection set $ent tixGrid:CallBrowseCmd $w $ent } } proc tixGrid:GoState-b5 {w} { tixGrid:StartScan $w } proc tixGrid:GoState-b6 {w} { global tkPriv tixGrid:DoScan $w } proc tixGrid:GoState-b7 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w selection clear $w selection set $ent tixGrid:CallCommand $w $ent } tixGrid:GoState b0 $w } proc tixGrid:GoState-b8 {w key} { set anchor [$w info anchor] if {$anchor == ""} { set anchor 0 } else { set anchor [$w info $key $anchor] } $w anchor set $anchor $w selection clear $w selection set $anchor $w see $anchor tixGrid:CallBrowseCmd $w $anchor tixGrid:GoState b0 $w } proc tixGrid:GoState-b9 {w} { set anchor [$w info anchor] if {$anchor == ""} { set anchor 0 $w anchor set $anchor $w see $anchor } if {[$w info anchor] != ""} { # ! may not have any elements # tixGrid:CallCommand $w [$w info anchor] $w selection clear $w selection set $anchor } tixGrid:GoState b0 $w } proc tixGrid:GoState-b10 {w} { set anchor [$w info anchor] if {$anchor == ""} { set anchor 0 $w anchor set $anchor $w see $anchor } if {[$w info anchor] != ""} { # ! may not have any elements # tixGrid:CallBrowseCmd $w [$w info anchor] $w selection clear $w selection set $anchor } tixGrid:GoState b0 $w } #---------------------------------------------------------------------- # MULTIPLE SELECTION #---------------------------------------------------------------------- proc tixGrid:GoState-m0 {w} { } proc tixGrid:GoState-m1 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w anchor set $ent $w selection clear $w selection set $ent tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState m2 $w } proc tixGrid:GoState-m2 {w} { } proc tixGrid:GoState-m3 {w} { set ent [$w info anchor] if {$ent != ""} { tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState m0 $w } proc tixGrid:GoState-m4 {w x y} { set from [$w info anchor] set to [$w nearest $x $y] if {$to != ""} { $w selection clear $w selection set $from $to tixGrid:CallBrowseCmd $w $to } tixGrid:GoState m5 $w } proc tixGrid:GoState-m5 {w} { } proc tixGrid:GoState-m6 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState m0 $w } proc tixGrid:GoState-m7 {w x y} { set from [$w info anchor] set to [$w nearest $x $y] if {$from == ""} { set from $to $w anchor set $from } if {$to != ""} { $w selection clear $w selection set $from $to tixGrid:CallBrowseCmd $w $to } tixGrid:GoState m5 $w } proc tixGrid:GoState-m8 {w} { tixGrid:StartScan $w } proc tixGrid:GoState-m9 {w} { tixGrid:DoScan $w } proc tixGrid:GoState-xm7 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w selection clear $w selection set $ent tixGrid:CallCommand $w $ent } tixGrid:GoState m0 $w } #---------------------------------------------------------------------- # EXTENDED SELECTION #---------------------------------------------------------------------- proc tixGrid:GoState-e0 {w} { } proc tixGrid:GoState-e1 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w anchor set $ent $w selection clear $w selection set $ent tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState e2 $w } proc tixGrid:GoState-e2 {w} { } proc tixGrid:GoState-e3 {w} { set ent [$w info anchor] if {$ent != ""} { tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState e0 $w } proc tixGrid:GoState-e4 {w x y} { set from [$w info anchor] set to [$w nearest $x $y] if {$to != ""} { $w selection clear $w selection set $from $to tixGrid:CallBrowseCmd $w $to } tixGrid:GoState e5 $w } proc tixGrid:GoState-e5 {w} { } proc tixGrid:GoState-e6 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState e0 $w } proc tixGrid:GoState-e7 {w x y} { set from [$w info anchor] set to [$w nearest $x $y] if {$from == ""} { set from $to $w anchor set $from } if {$to != ""} { $w selection clear $w selection set $from $to tixGrid:CallBrowseCmd $w $to } tixGrid:GoState e5 $w } proc tixGrid:GoState-e8 {w} { tixGrid:StartScan $w } proc tixGrid:GoState-e9 {w} { tixGrid:DoScan $w } proc tixGrid:GoState-e10 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { if {[$w info anchor] == ""} { $w anchor set $ent } if {[$w selection includes $ent]} { $w selection clear $ent } else { $w selection set $ent } tixGrid:CallBrowseCmd $w $ent } tixGrid:GoState e2 $w } proc tixGrid:GoState-xm7 {w x y} { set ent [$w nearest $x $y] if {$ent != ""} { $w selection clear $w selection set $ent tixGrid:CallCommand $w $ent } tixGrid:GoState e0 $w } #---------------------------------------------------------------------- # HODGE PODGE #---------------------------------------------------------------------- proc tixGrid:GoState-12 {w x y} { tkCancelRepeat tixGrid:GoState 5 $w $x $y } proc tixGrid:GoState-13 {w ent oldEnt} { global tkPriv set tkPriv(tix,indicator) $ent set tkPriv(tix,oldEnt) $oldEnt tixGrid:IndicatorCmd $w <Arm> $ent } proc tixGrid:GoState-14 {w x y} { global tkPriv if {[tixGrid:InsideArmedIndicator $w $x $y]} { $w anchor set $tkPriv(tix,indicator) $w select clear $w select set $tkPriv(tix,indicator) tixGrid:IndicatorCmd $w <Activate> $tkPriv(tix,indicator) } else { tixGrid:IndicatorCmd $w <Disarm> $tkPriv(tix,indicator) } unset tkPriv(tix,indicator) tixGrid:GoState 0 $w } proc tixGrid:GoState-16 {w ent} { if {$ent == ""} { return } if {[$w cget -selectmode] ne "single"} { tixGrid:Select $w $ent tixGrid:Browse $w $ent } } proc tixGrid:GoState-18 {w} { global tkPriv tkCancelRepeat tixGrid:GoState 6 $w $tkPriv(x) $tkPriv(y) } proc tixGrid:GoState-20 {w x y} { global tkPriv if {![tixGrid:InsideArmedIndicator $w $x $y]} { tixGrid:GoState 21 $w $x $y } else { tixGrid:IndicatorCmd $w <Arm> $tkPriv(tix,indicator) } } proc tixGrid:GoState-21 {w x y} { global tkPriv if {[tixGrid:InsideArmedIndicator $w $x $y]} { tixGrid:GoState 20 $w $x $y } else { tixGrid:IndicatorCmd $w <Disarm> $tkPriv(tix,indicator) } } proc tixGrid:GoState-22 {w} { global tkPriv if {$tkPriv(tix,oldEnt) != ""} { $w anchor set $tkPriv(tix,oldEnt) } else { $w anchor clear } tixGrid:GoState 0 $w } #---------------------------------------------------------------------- # callback actions #---------------------------------------------------------------------- proc tixGrid:SetAnchor {w ent} { if {$ent ne ""} { $w anchor set [lindex $ent 0] [lindex $ent 1] # $w see $ent } } proc tixGrid:Select {w ent} { $w selection clear $w select set $ent } proc tixGrid:StartScan {w} { global tkPriv set tkPriv(afterId) [after 50 tixGrid:AutoScan $w] } proc tixGrid:DoScan {w} { global tkPriv set x $tkPriv(x) set y $tkPriv(y) set X $tkPriv(X) set Y $tkPriv(Y) set out 0 if {$y >= [winfo height $w]} { $w yview scroll 1 units set out 1 } if {$y < 0} { $w yview scroll -1 units set out 1 } if {$x >= [winfo width $w]} { $w xview scroll 2 units set out 1 } if {$x < 0} { $w xview scroll -2 units set out 1 } if {$out} { set tkPriv(afterId) [after 50 tixGrid:AutoScan $w] } } proc tixGrid:CallBrowseCmd {w ent} { return set browsecmd [$w cget -browsecmd] if {$browsecmd != ""} { set bind(specs) {%V} set bind(%V) $ent tixEvalCmdBinding $w $browsecmd bind $ent } } proc tixGrid:CallCommand {w ent} { set command [$w cget -command] if {$command != ""} { set bind(specs) {%V} set bind(%V) $ent tixEvalCmdBinding $w $command bind $ent } } # tixGrid:EditCell -- # # This command is called when "$w edit set $x $y" is called. It causes # an SetEdit call when the grid's state is 0. # proc tixGrid:EditCell {w x y} { set list $w:_list global $list if {[tixGrid:GetState $w] == 0} { tixGrid:SetEdit $w [list $x $y] } else { lappend $list [list tixGrid:SetEdit $w [list $x $y]] } } # tixGrid:EditApply -- # # This command is called when "$w edit apply $x $y" is called. It causes # an CheckEdit call when the grid's state is 0. # proc tixGrid:EditApply {w} { set list $w:_list global $list if {[tixGrid:GetState $w] == 0} { tixGrid:CheckEdit $w } else { lappend $list [list tixGrid:CheckEdit $w] } } # tixGrid:CheckEdit -- # # This procedure is called when the user sets the focus on a cell. # If another cell is being edited, apply the changes of that cell. # proc tixGrid:CheckEdit {w} { set edit $w.tixpriv__edit if {[winfo exists $edit]} { # # If it -command is not empty, it is being used for another cell. # Invoke it so that the other cell can be updated. # if {[$edit cget -command] ne ""} { $edit invoke } } } # tixGrid:SetEdit -- # # Puts a floatentry on top of an editable entry. # proc tixGrid:SetEdit {w ent} { set edit $w.tixpriv__edit tixGrid:CheckEdit $w set editnotifycmd [$w cget -editnotifycmd] if {$editnotifycmd eq ""} { return } set px [lindex $ent 0] set py [lindex $ent 1] if {![uplevel #0 $editnotifycmd $px $py]} { return } if {[$w info exists $px $py]} { if [catch { set oldValue [$w entrycget $px $py -text] }] { # The entry doesn't support -text option. Can't edit it. # # If the application wants to force editing of an entry, it could # delete or replace the entry in the editnotifyCmd procedure. # return } } else { set oldValue "" } set bbox [$w info bbox [lindex $ent 0] [lindex $ent 1]] set x [lindex $bbox 0] set y [lindex $bbox 1] set W [lindex $bbox 2] set H [lindex $bbox 3] if {![winfo exists $edit]} { tixFloatEntry $edit } $edit config -command "tixGrid:DoneEdit $w $ent" $edit post $x $y $W $H $edit config -value $oldValue } proc tixGrid:DoneEdit {w x y args} { set edit $w.tixpriv__edit $edit config -command "" $edit unpost set value [tixEvent value] if {[$w info exists $x $y]} { if [catch { $w entryconfig $x $y -text $value }] { return } } elseif {$value ne ""} { if {[catch { # This needs to be catch'ed because the default itemtype may # not support the -text option # $w set $x $y -text $value }]} { return } } else { return } set editDoneCmd [$w cget -editdonecmd] if {$editDoneCmd ne ""} { uplevel #0 $editDoneCmd $x $y } } proc tixGrid:SetFocus {w} { if {[$w cget -takefocus] && ![string match $w.* [focus -displayof $w]]} { focus $w } }
Save
cmd:
run