golden hour
/lib64/tcl8.5/Tix8.4.3
⬆️ Go Up
Upload
File/Folder
Size
Actions
Balloon.tcl
12.97 KB
Del
OK
BtnBox.tcl
2.61 KB
Del
OK
CObjView.tcl
7.56 KB
Del
OK
ChkList.tcl
4.97 KB
Del
OK
ComboBox.tcl
35.42 KB
Del
OK
Compat.tcl
870 B
Del
OK
Console.tcl
14.95 KB
Del
OK
Control.tcl
12.11 KB
Del
OK
DefSchm.tcl
2.94 KB
Del
OK
DialogS.tcl
4.2 KB
Del
OK
DirBox.tcl
5.3 KB
Del
OK
DirDlg.tcl
2.15 KB
Del
OK
DirList.tcl
6.9 KB
Del
OK
DirTree.tcl
8.76 KB
Del
OK
DragDrop.tcl
3.93 KB
Del
OK
DtlList.tcl
1002 B
Del
OK
EFileBox.tcl
11.12 KB
Del
OK
EFileDlg.tcl
1.68 KB
Del
OK
Event.tcl
5.11 KB
Del
OK
FileBox.tcl
14 KB
Del
OK
FileCbx.tcl
2.42 KB
Del
OK
FileDlg.tcl
2.13 KB
Del
OK
FileEnt.tcl
7.15 KB
Del
OK
FloatEnt.tcl
3.1 KB
Del
OK
Grid.tcl
21.16 KB
Del
OK
HList.tcl
17.72 KB
Del
OK
HListDD.tcl
4.39 KB
Del
OK
IconView.tcl
5.97 KB
Del
OK
Init.tcl
6.05 KB
Del
OK
LabEntry.tcl
2.09 KB
Del
OK
LabFrame.tcl
1.15 KB
Del
OK
LabWidg.tcl
3.86 KB
Del
OK
ListNBk.tcl
3.5 KB
Del
OK
Meter.tcl
3.04 KB
Del
OK
MultView.tcl
3.62 KB
Del
OK
NoteBook.tcl
6.02 KB
Del
OK
OldUtil.tcl
2.98 KB
Del
OK
OptMenu.tcl
9.17 KB
Del
OK
PanedWin.tcl
27.68 KB
Del
OK
PopMenu.tcl
5.37 KB
Del
OK
Primitiv.tcl
10.28 KB
Del
OK
README.txt
987 B
Del
OK
ResizeH.tcl
12.94 KB
Del
OK
SGrid.tcl
5.8 KB
Del
OK
SHList.tcl
3.7 KB
Del
OK
SListBox.tcl
6.97 KB
Del
OK
STList.tcl
2.37 KB
Del
OK
SText.tcl
3.09 KB
Del
OK
SWidget.tcl
9.52 KB
Del
OK
SWindow.tcl
6.75 KB
Del
OK
Select.tcl
7.04 KB
Del
OK
Shell.tcl
1.06 KB
Del
OK
SimpDlg.tcl
1.13 KB
Del
OK
StackWin.tcl
1.95 KB
Del
OK
StatBar.tcl
1.31 KB
Del
OK
StdBBox.tcl
1.62 KB
Del
OK
StdShell.tcl
1.15 KB
Del
OK
TList.tcl
17.59 KB
Del
OK
Tix.tcl
9.51 KB
Del
OK
Tree.tcl
4.57 KB
Del
OK
Utils.tcl
10.54 KB
Del
OK
VResize.tcl
4.95 KB
Del
OK
VStack.tcl
9.42 KB
Del
OK
VTree.tcl
4.31 KB
Del
OK
Variable.tcl
2.5 KB
Del
OK
WInfo.tcl
965 B
Del
OK
bitmaps
-
Del
OK
fs.tcl
3.9 KB
Del
OK
html
-
Del
OK
libTix.so
320.71 KB
Del
OK
license.terms
2.76 KB
Del
OK
pkgIndex.tcl
122 B
Del
OK
pref
-
Del
OK
Edit: HList.tcl
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id: HList.tcl,v 1.6 2004/03/28 02:44:57 hobbs Exp $ # # HList.tcl -- # # This file defines the default bindings for Tix Hierarchical Listbox # 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 tixHListBind {} { tixBind TixHList <ButtonPress-1> { tixHList:Button-1 %W %x %y "" } tixBind TixHList <Shift-ButtonPress-1> { tixHList:Button-1 %W %x %y s } tixBind TixHList <Control-ButtonPress-1> { tixHList:Button-1 %W %x %y c } tixBind TixHList <ButtonRelease-1> { tixHList:ButtonRelease-1 %W %x %y } tixBind TixHList <Double-ButtonPress-1> { tixHList:Double-1 %W %x %y } tixBind TixHList <B1-Motion> { set tkPriv(x) %x set tkPriv(y) %y set tkPriv(X) %X set tkPriv(Y) %Y tixHList:B1-Motion %W %x %y } tixBind TixHList <B1-Leave> { set tkPriv(x) %x set tkPriv(y) %y set tkPriv(X) %X set tkPriv(Y) %Y tixHList:B1-Leave %W } tixBind TixHList <B1-Enter> { tixHList:B1-Enter %W %x %y } # Keyboard bindings # tixBind TixHList <Up> { tixHList:UpDown %W prev "" } tixBind TixHList <Down> { tixHList:UpDown %W next "" } tixBind TixHList <Shift-Up> { tixHList:UpDown %W prev s } tixBind TixHList <Shift-Down> { tixHList:UpDown %W next s } tixBind TixHList <Left> { tixHList:LeftRight %W left } tixBind TixHList <Right> { tixHList:LeftRight %W right } tixBind TixHList <Prior> { %W yview scroll -1 pages } tixBind TixHList <Next> { %W yview scroll 1 pages } tixBind TixHList <Return> { tixHList:Keyboard-Activate %W } tixBind TixHList <space> { tixHList:Keyboard-Browse %W } # Under Windows <Home> moves up, clears the sel and sets the selection # Under Windows <Control-Home> moves up, leaves the selection, and sets the anchor tixBind TixHList <Home> { set w %W $w yview moveto 0; # $w xview moveto 0 set sel [lindex [$w info children] 0] # should be first not disabled $w anchor set $sel tixHList:Keyboard-Browse $w } tixBind TixHList <End> { set w %W $w yview moveto 1; # $w xview moveto 0 $w select clear # should be last not disabled set sel [lindex [$w info children .] end] while {[set next [$w info next $sel]] ne "" && \ ![$w info hidden $next] && \ [llength [set kids [$w info child $sel]]]} { set sel [lindex $kids end] } $w anchor set $sel tixHList:Keyboard-Browse $w } tixBind TixHList <Control-Home> { set w %W $w yview moveto 0; # $w xview moveto 0 set sel [lindex [$w info children] 0] # should be first not disabled $w anchor set $sel } tixBind TixHList <Control-End> { set w %W $w yview moveto 1; # $w xview moveto 0 # should be last not disabled set sel [lindex [$w info children .] end] while {[set next [$w info next $sel]] ne "" && \ ![$w info hidden $next] && \ [llength [set kids [$w info child $sel]]]} { set sel [lindex $kids end] } $w anchor set $sel } # # Don't use tixBind because %A causes Tk 8.3.2 to crash # bind TixHList <MouseWheel> { %W yview scroll [expr {- (%D / 120) * 2}] units } } #---------------------------------------------------------------------- # # # Key bindings # # #---------------------------------------------------------------------- proc tixHList:Keyboard-Activate {w} { if {[tixHList:GetState $w] != 0} { return } set ent [$w info anchor] if {$ent eq ""} { return } if {[$w cget -selectmode] eq "single"} { $w select clear } $w select set $ent set command [$w cget -command] if {$command ne ""} { set bind(specs) {%V} set bind(%V) $ent tixEvalCmdBinding $w $command bind $ent } } proc tixHList:Keyboard-Browse {w} { if {[tixHList:GetState $w] != 0} { return } set ent [$w info anchor] if {$ent eq ""} { return } if {[$w cget -selectmode] eq "single"} { $w select clear } $w select set $ent tixHList:Browse $w $ent } proc tixHList:LeftRight {w spec} { catch { uplevel #0 unset $w:priv:shiftanchor } if {[tixHList:GetState $w] != 0} { return } set anchor [$w info anchor] if {$anchor eq ""} { set anchor [lindex [$w info children] 0] } if {$anchor eq ""} { return } set ent $anchor while {1} { set e $ent if {$spec eq "left"} { set ent [$w info parent $e] if {$ent eq "" || [$w entrycget $ent -state] eq "disabled"} { set ent [$w info prev $e] } } else { set ent [lindex [$w info children $e] 0] if {$ent eq "" || [$w entrycget $ent -state] eq "disabled"} { set ent [$w info next $e] } } if {$ent eq ""} { break } if {[$w entrycget $ent -state] eq "disabled"} { continue } if {[$w info hidden $ent]} { continue } break } if {$ent eq ""} { return } $w anchor set $ent $w see $ent if {[$w cget -selectmode] ne "single"} { $w select clear $w selection set $ent tixHList:Browse $w $ent } } proc tixHList:UpDown {w spec mod} { if {[tixHList:GetState $w] ne 0} { return } set anchor [$w info anchor] set done 0 if {$anchor eq ""} { set anchor [lindex [$w info children] 0] if {$anchor eq ""} { return } if {[$w entrycget $anchor -state] ne "disabled"} { # That's a good anchor set done 1 } else { # We search for the first non-disabled entry (downward) set spec next } } set ent $anchor # mike - bulletproofing if {![$w info exists $ent]} {return} # Find the prev/next non-disabled entry # while {!$done} { set ent [$w info $spec $ent] if {$ent eq ""} { break } if {[$w entrycget $ent -state] eq "disabled"} { continue } if {[$w info hidden $ent]} { continue } break } if {$ent eq ""} { return } else { $w see $ent $w anchor set $ent set selMode [$w cget -selectmode] if {$mod eq "s" && ($selMode eq "extended" || $selMode eq "multiple")} { global $w:priv:shiftanchor if {![info exists $w:priv:shiftanchor]} { set $w:priv:shiftanchor $anchor } $w selection clear # mike - bulletproofing if {![catch {$w selection set $ent [set $w:priv:shiftanchor]}]} { tixHList:Browse $w $ent } } else { catch { uplevel #0 unset $w:priv:shiftanchor } if {[$w cget -selectmode] ne "single"} { $w select clear $w selection set $ent tixHList:Browse $w $ent } } } } #---------------------------------------------------------------------- # # # Mouse bindings # # #---------------------------------------------------------------------- proc tixHList:Button-1 {w x y mod} { # if {[$w cget -state] eq "disabled"} { # return # } if {[$w cget -takefocus]} { focus $w } set selMode [$w cget -selectmode] case [tixHList:GetState $w] { {0} { if {$mod eq "s" && $selMode eq "multiple"} { tixHList:GoState 28 $w $x $y return } if {$mod eq "s" && $selMode eq "extended"} { tixHList:GoState 28 $w $x $y return } if {$mod eq "c" && $selMode eq "extended"} { tixHList:GoState 33 $w $x $y return } tixHList:GoState 1 $w $x $y } } } proc tixHList:ButtonRelease-1 {w x y} { case [tixHList:GetState $w] { {5 16} { tixHList:GoState 6 $w $x $y } {15} { tixHList:GoState 17 $w $x $y } {10 11} { tixHList:GoState 18 $w } {13 20} { tixHList:GoState 14 $w $x $y } {21} { tixHList:GoState 22 $w } {24} { tixHList:GoState 25 $w } {26 28 33} { tixHList:GoState 27 $w } {30} { tixHList:GoState 32 $w } } } proc tixHList:Double-1 {w x y} { case [tixHList:GetState $w] { {0} { tixHList:GoState 23 $w $x $y } } } proc tixHList:B1-Motion {w x y} { case [tixHList:GetState $w] { {1} { tixHList:GoState 5 $w $x $y } {5 16} { tixHList:GoState 5 $w $x $y } {13 20 21} { tixHList:GoState 20 $w $x $y } {24 26 28} { tixHList:GoState 26 $w $x $y } } } proc tixHList:B1-Leave {w} { case [tixHList:GetState $w] { {5} { tixHList:GoState 10 $w } {26} { tixHList:GoState 29 $w } } } proc tixHList:B1-Enter {w x y} { case [tixHList:GetState $w] { {10 11} { tixHList:GoState 12 $w $x $y } {29 30} { tixHList:GoState 31 $w $x $y } } } proc tixHList:AutoScan {w} { case [tixHList:GetState $w] { {29 30} { tixHList:GoState 30 $w } } } #---------------------------------------------------------------------- # # STATE MANIPULATION # # #---------------------------------------------------------------------- proc tixHList:GetState {w} { global $w:priv:state if {![info exists $w:priv:state]} { set $w:priv:state 0 } return [set $w:priv:state] } proc tixHList:SetState {w n} { global $w:priv:state set $w:priv:state $n } proc tixHList:GoState {n w args} { # puts "going from [tixHList:GetState $w] --> $n" tixHList:SetState $w $n eval tixHList:GoState-$n $w $args } #---------------------------------------------------------------------- # States #---------------------------------------------------------------------- proc tixHList:GoState-0 {w} { } proc tixHList:GoState-1 {w x y} { set oldEnt [$w info anchor] set ent [tixHList:SetAnchor $w $x $y 1] if {$ent eq ""} { tixHList:GoState 0 $w return } set info [$w info item $x $y] if {[lindex $info 1] eq "indicator"} { tixHList:GoState 13 $w $ent $oldEnt } else { if {[$w entrycget $ent -state] eq "disabled"} { tixHList:GoState 0 $w } else { case [$w cget -selectmode] { {single browse} { tixHList:GoState 16 $w $ent } default { tixHList:GoState 24 $w $ent } } } } } proc tixHList:GoState-5 {w x y} { set oldEnt [$w info anchor] set ent [tixHList:SetAnchor $w $x $y] if {$ent eq "" || $oldEnt eq $ent} { return } if {[$w cget -selectmode] ne "single"} { tixHList:Select $w $ent tixHList:Browse $w $ent } } proc tixHList:GoState-6 {w x y} { set ent [tixHList:SetAnchor $w $x $y] if {$ent eq ""} { tixHList:GoState 0 $w return } tixHList:Select $w $ent tixHList:Browse $w $ent tixHList:GoState 0 $w } proc tixHList:GoState-10 {w} { tixHList:StartScan $w } proc tixHList:GoState-11 {w} { global tkPriv tixHList:DoScan $w set oldEnt [$w info anchor] set ent [tixHList:SetAnchor $w $tkPriv(x) $tkPriv(y)] if {$ent eq "" || $oldEnt eq $ent} { return } if {[$w cget -selectmode] ne "single"} { tixHList:Select $w $ent tixHList:Browse $w $ent } } proc tixHList:GoState-12 {w x y} { tkCancelRepeat tixHList:GoState 5 $w $x $y } proc tixHList:GoState-13 {w ent oldEnt} { global tkPriv set tkPriv(tix,indicator) $ent set tkPriv(tix,oldEnt) $oldEnt tixHList:CallIndicatorCmd $w <Arm> $ent } proc tixHList:GoState-14 {w x y} { global tkPriv if {[tixHList:InsideArmedIndicator $w $x $y]} { $w anchor set $tkPriv(tix,indicator) $w select clear $w select set $tkPriv(tix,indicator) tixHList:CallIndicatorCmd $w <Activate> $tkPriv(tix,indicator) } else { tixHList:CallIndicatorCmd $w <Disarm> $tkPriv(tix,indicator) } unset tkPriv(tix,indicator) tixHList:GoState 0 $w } proc tixHList:GoState-16 {w ent} { if {$ent ne "" && [$w cget -selectmode] ne "single"} { tixHList:Select $w $ent tixHList:Browse $w $ent } } proc tixHList:GoState-18 {w} { global tkPriv tkCancelRepeat tixHList:GoState 6 $w $tkPriv(x) $tkPriv(y) } proc tixHList:GoState-20 {w x y} { global tkPriv if {![tixHList:InsideArmedIndicator $w $x $y]} { tixHList:GoState 21 $w $x $y } else { tixHList:CallIndicatorCmd $w <Arm> $tkPriv(tix,indicator) } } proc tixHList:GoState-21 {w x y} { global tkPriv if {[tixHList:InsideArmedIndicator $w $x $y]} { tixHList:GoState 20 $w $x $y } else { tixHList:CallIndicatorCmd $w <Disarm> $tkPriv(tix,indicator) } } proc tixHList:GoState-22 {w} { global tkPriv if {$tkPriv(tix,oldEnt) ne ""} { $w anchor set $tkPriv(tix,oldEnt) } else { $w anchor clear } tixHList:GoState 0 $w } proc tixHList:GoState-23 {w x y} { set ent [tixHList:GetNearest $w $y] if {$ent ne ""} { set info [$w info item $x $y] if {[lindex $info 1] eq "indicator"} { tixHList:CallIndicatorCmd $w <Activate> $ent } else { $w select set $ent set command [$w cget -command] if {$command ne ""} { set bind(specs) {%V} set bind(%V) $ent tixEvalCmdBinding $w $command bind $ent } } } tixHList:GoState 0 $w } proc tixHList:GoState-24 {w ent} { if {$ent ne ""} { tixHList:Select $w $ent tixHList:Browse $w $ent } } proc tixHList:GoState-25 {w} { set ent [$w info anchor] if {$ent ne ""} { tixHList:Select $w $ent tixHList:Browse $w $ent } tixHList:GoState 0 $w } proc tixHList:GoState-26 {w x y} { set anchor [$w info anchor] if {$anchor eq ""} { set first [lindex [$w info children ""] 0] if {$first ne ""} { $w anchor set $first set anchor $first } else { return } } set ent [tixHList:GetNearest $w $y 1] if {$ent ne ""} { $w selection clear $w selection set $anchor $ent tixHList:Browse $w $ent } } proc tixHList:GoState-27 {w} { set ent [$w info anchor] if {$ent ne ""} { tixHList:Browse $w $ent } tixHList:GoState 0 $w } proc tixHList:GoState-28 {w x y} { set anchor [$w info anchor] if {$anchor eq ""} { set first [lindex [$w info children ""] 0] if {$first ne ""} { $w anchor set $first set anchor $first } else { return } } set ent [tixHList:GetNearest $w $y 1] if {$ent ne ""} { $w selection clear $w selection set $anchor $ent tixHList:Browse $w $ent } } proc tixHList:GoState-29 {w} { tixHList:StartScan $w } proc tixHList:GoState-30 {w} { global tkPriv tixHList:DoScan $w set anchor [$w info anchor] if {$anchor eq ""} { set first [lindex [$w info children ""] 0] if {$first ne ""} { $w anchor set $first set anchor $first } else { return } } set ent [tixHList:GetNearest $w $tkPriv(y) 1] if {$ent ne ""} { $w selection clear $w selection set $anchor $ent tixHList:Browse $w $ent } } proc tixHList:GoState-31 {w x y} { tkCancelRepeat tixHList:GoState 26 $w $x $y } proc tixHList:GoState-32 {w} { tkCancelRepeat tixHList:GoState 0 $w } proc tixHList:GoState-33 {w x y} { set ent [tixHList:GetNearest $w $y] if {$ent ne ""} { $w anchor set $ent if {[lsearch [$w selection get] $ent] > -1} { # This was missing - mike $w selection clear $ent } else { $w selection set $ent } tixHList:Browse $w $ent } } #---------------------------------------------------------------------- # # Common actions # #---------------------------------------------------------------------- proc tixHList:GetNearest {w y {disableOK 0}} { set ent [$w nearest $y] if {$ent ne ""} { if {!$disableOK && [$w entrycget $ent -state] eq "disabled"} { return "" } } return $ent } proc tixHList:SetAnchor {w x y {disableOK 0}} { set ent [tixHList:GetNearest $w $y $disableOK] if {$ent ne ""} { if {[$w entrycget $ent -state] ne "disabled"} { $w anchor set $ent # mike This is non-standard and has a wierd effect: too much motion # $w see $ent return $ent } elseif $disableOK { return $ent } } return "" } proc tixHList:Select {w ent} { if {[$w info selection] ne $ent} { $w selection clear $w select set $ent } } #---------------------------------------------------------------------- # # Auto scan # #---------------------------------------------------------------------- proc tixHList:StartScan {w} { global tkPriv set tkPriv(afterId) [after 50 tixHList:AutoScan $w] } proc tixHList:DoScan {w} { global tkPriv set x $tkPriv(x) set y $tkPriv(y) set X $tkPriv(X) set Y $tkPriv(Y) if {$y >= [winfo height $w]} { $w yview scroll 1 units } elseif {$y < 0} { $w yview scroll -1 units } elseif {$x >= [winfo width $w]} { $w xview scroll 2 units } elseif {$x < 0} { $w xview scroll -2 units } else { return } set tkPriv(afterId) [after 50 tixHList:AutoScan $w] } #---------------------------------------------------------------------- # # Indicator handling # #---------------------------------------------------------------------- proc tixHList:CallIndicatorCmd {w event ent} { set cmd [$w cget -indicatorcmd] if {$cmd ne ""} { set bind(type) $event set bind(specs) {%V} set bind(%V) $ent tixEvalCmdBinding $w $cmd bind $ent } } proc tixHList:InsideArmedIndicator {w x y} { global tkPriv set ent [tixHList:GetNearest $w $y 1] if {$ent eq "" || $ent ne $tkPriv(tix,indicator)} { return 0 } set info [$w info item $x $y] if {[lindex $info 1] eq "indicator"} { return 1 } else { return 0 } } proc tixHList:Browse {w ent} { set browsecmd [$w cget -browsecmd] if {$browsecmd ne ""} { set bind(specs) {%V} set bind(%V) $ent tixEvalCmdBinding $w $browsecmd bind $ent } }
Save