1 proc TkW
:dirbrowse
{pattern patternF mode
} {
2 # input arg: initial pattern mode (File or Folder
3 # returns selected folders as a global SelectFolder
4 # or selected file as a global: SelectFile
5 # variable: SelectFolder
7 # You can use WAITbrowse in the calling app to wait
8 # for dirbrowse to exit (set to 0 on exit, or -1 on CANCEL)
12 if {![info exists SelectFile
]} {set SelectFile
""}
13 if {![info exists SelectFolder
]} {set SelectFolder
[pwd]}
14 global ndirs nfiles
;set ndirs
0;set nfiles
0
15 global ModeBrowse Restore
;set Restore
$SelectFolder
17 if {$mode == "local"} {set FTPcd
1} {set FTPcd
0}
19 global DIRBROWSE WinBrowse
23 if {$mode != "local" } {
24 toplevel .dirbrowse
-class Toplevel
\
26 wm focusmodel .dirbrowse passive
27 wm geometry .dirbrowse
464x296
28 wm maxsize .dirbrowse
1265 994
29 wm minsize .dirbrowse
1 1
30 wm overrideredirect .dirbrowse
0
31 wm resizable .dirbrowse
1 1
32 wm deiconify .dirbrowse
33 wm title .dirbrowse
"TkWine: $DIRBROWSE"
34 set WinBrowse dirbrowse
36 set WinBrowse ftp.browsers.local
37 #frame .$WinBrowse -background #feffff -height 300 -width 464
41 global FolderSelection OK CANCEL FILTERFOLD FILTERFILES
42 global RESCAN VIEW HELP
44 global BrowsePattern
;set BrowsePattern
$pattern
45 global BrowsePatternF
;set BrowsePatternF
$patternF
46 global dirscroll MouseY
49 # label and entrybox for selection:
50 label .
$WinBrowse.foldselLab
\
51 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
52 -relief groove
-text $FolderSelection
53 entry .
$WinBrowse.foldsel
\
54 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
55 -textvariable SelectFolder
56 if {$ModeBrowse == "File"} {
57 .
$WinBrowse.foldsel configure
-textvar SelectFile
59 # frame for display of currently available folders:
60 frame .
$WinBrowse.dirframe
\
61 -borderwidth 1 -height 30 -relief sunken
-width 30 \
63 scrollbar .
$WinBrowse.dirframe_scr
-width 10
64 frame .
$WinBrowse.fileframe
\
65 -borderwidth 1 -height 30 -relief sunken
-width 30
66 scrollbar .
$WinBrowse.fileframe_scr
-width 10
67 # label/entry for pattern
68 label .
$WinBrowse.patternLab
\
69 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
70 -relief groove
-text $FILTERFOLD
71 entry .
$WinBrowse.patternF
\
72 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
73 -textvariable BrowsePatternF
74 label .
$WinBrowse.patternLabF
\
75 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
76 -relief groove
-text $FILTERFILES
77 entry .
$WinBrowse.pattern
\
78 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
79 -textvariable BrowsePattern
80 frame .
$WinBrowse.fra25
\
81 -borderwidth 1 -height 30 -relief sunken
-width 30
82 menubutton .
$WinBrowse.fra25.men26
\
83 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* \
84 -menu .
$WinBrowse.fra25.men26.m
-padx 4 -pady 3 -relief ridge
-text $VIEW
85 menu .
$WinBrowse.fra25.men26.m
\
86 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-*
87 button .
$WinBrowse.fra25.but28
\
88 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* -padx 9 \
89 -pady 3 -relief ridge
-text $HELP
90 button .
$WinBrowse.butOK
\
91 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* -padx 9 \
93 -command {destroy .
$WinBrowse
95 return "$SelectFolder $SelectFile"
97 button .
$WinBrowse.butCANCEL
\
98 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* -padx 9 \
99 -pady 3 -text $CANCEL \
100 -command {destroy .
$WinBrowse
102 return "$SelectFolder $SelectFile"
104 button .
$WinBrowse.butRESCAN
\
105 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-* -padx 9 \
106 -pady 3 -text $RESCAN -command {TkW
:DisplayCurrentDir
$BrowsePattern}
110 global YHeight
;set YHeight
170
111 if {$mode !="local" && $mode != "remote"} {
112 place .
$WinBrowse.foldselLab
\
113 -x 47 -y 270 -width 78 -height 20 -anchor nw
-bordermode ignore
114 place .
$WinBrowse.foldsel
\
115 -x 148 -y 268 -width 290 -height 24 -anchor nw
-bordermode ignore
116 place .
$WinBrowse.dirframe
\
117 -x 5 -y 90 -width 145 -height $YHeight -anchor nw
-bordermode ignore
118 place .
$WinBrowse.dirframe_scr
-x 150 -y 90 -width 17 -height $YHeight
119 place .
$WinBrowse.fileframe
\
120 -x 180 -y 90 -width 175 -height 170 -anchor nw
-bordermode ignore
121 place .
$WinBrowse.fileframe_scr
-x 355 -y 90 -width 17 -height $YHeight
122 place .
$WinBrowse.patternLab
\
123 -x 27 -y 60 -width 143 -height 20 -anchor nw
-bordermode ignore
124 place .
$WinBrowse.pattern
\
125 -x 190 -y 58 -width 150 -height 24 -anchor nw
-bordermode ignore
126 place .
$WinBrowse.patternLabF
\
127 -x 27 -y 35 -width 143 -height 20 -anchor nw
-bordermode ignore
128 place .
$WinBrowse.patternF
\
129 -x 190 -y 32 -width 150 -height 24 -anchor nw
-bordermode ignore
130 place .
$WinBrowse.fra25
\
131 -x 0 -y 1 -width 455 -height 25 -anchor nw
-bordermode ignore
132 place .
$WinBrowse.fra25.men26
\
133 -x -1 -y 0 -width 67 -height 24 -anchor nw
-bordermode ignore
134 place .
$WinBrowse.fra25.but28
\
135 -x 397 -y -3 -width 60 -height 28 -anchor nw
-bordermode ignore
136 place .
$WinBrowse.butOK
\
137 -x 380 -y 115 -width 77 -height 28 -anchor nw
-bordermode ignore
138 place .
$WinBrowse.butCANCEL
\
139 -x 380 -y 155 -width 77 -height 28 -anchor nw
-bordermode ignore
140 place .
$WinBrowse.butRESCAN
\
141 -x 380 -y 195 -width 77 -height 28 -anchor nw
-bordermode ignore
143 # case of ftp filebrowser ....
145 bind .
$WinBrowse.pattern
<Return
> {.
$WinBrowse.butRESCAN invoke
}
146 bind .
$WinBrowse.patternF
<Return
> {.
$WinBrowse.butRESCAN invoke
}
148 place .
$WinBrowse.pattern
-x 0 -y 3 -width 145 -height 25
149 place .
$WinBrowse.patternF
-x 163 -y 3 -width 145 -height 25
151 place .
$WinBrowse.dirframe
-x 0 -y 28 -width 145 -height $YHeight
152 place .
$WinBrowse.dirframe_scr
-x 145 -y 28 -width 17 -height $YHeight
153 place .
$WinBrowse.fileframe
-x 163 -y 28 -width 145 -height $YHeight
154 place .
$WinBrowse.fileframe_scr
-x 308 -y 28 -width 17 -height $YHeight
158 # binding the scrollbar:
159 bind .
$WinBrowse.dirframe_scr
<ButtonPress
> { TkW
:ScrollDirs
%x
%y
}
160 bind .
$WinBrowse.dirframe_scr
<ButtonRelease
> { set dirscroll no
; grab release .
$WinBrowse.dirframe_scr
}
161 bind .
$WinBrowse.dirframe_scr
<Motion
> { set MouseY
%y
}
163 bind .
$WinBrowse.fileframe_scr
<ButtonPress
> { TkW
:ScrollFiles
%x
%y
}
164 bind .
$WinBrowse.fileframe_scr
<ButtonRelease
> { set filescroll no
; grab release .
$WinBrowse.fileframe_scr
}
165 bind .
$WinBrowse.fileframe_scr
<Motion
> { set MouseY
%y
}
168 image create
photo "fold" -file \
169 $TKW/shared
/icons
/smalls
/small_folder_yellow.gif
170 image create
photo "unknown" -file \
171 $TKW/shared
/icons
/smalls
/unknown.gif
172 image create
photo "execfile" -file \
173 $TKW/shared
/icons
/smalls
/exec.gif
174 image create
photo "imgfile" -file \
175 $TKW/shared
/icons
/smalls
/xpaint.gif
176 image create
photo "htmlfile" -file \
177 $TKW/shared
/icons
/smalls
/html.gif
178 #image create photo "up" -file $TKW/shared/icons/up.gif
179 TkW
:DisplayCurrentDir
$BrowsePattern
182 proc TkW
:DisplayCurrentDir
{BrowsePattern
} {
184 global ndirs nfiles Ybase dirlist filelist FYbase specialwhere
185 global FYbase BrowsePatternF ModeBrowse
191 # First we get the directory list:
193 if {$ModeBrowse != "remote"} {
195 set fileList
[glob -nocomplain [pwd]/$BrowsePattern]
196 set fileList
"$fileList [glob -nocomplain [pwd]/.$BrowsePattern]"
198 foreach i
$fileList {
199 if {[file tail
$i] == ".."} {set UpLevel
1}
200 if { [file isdir
$i] } { set dirlist
"$dirlist \"$i\"" }
203 set fileList
[glob -nocomplain [pwd]/$BrowsePatternF]
204 set fileList
"$fileList [glob -nocomplain [pwd]/.$BrowsePatternF]"
205 foreach i
$fileList {
206 if { ![file isdir
$i] } { set filelist
"$filelist \"$i\"" }
208 if {$UpLevel == 0} {set dirlist
".. $dirlist"}
209 set dirlist
[lsort $dirlist]
210 set filelist
[lsort $filelist]
211 } else {set filelist
""; set dirlist
".."}
218 proc TkW
:ShowDirs
{} {
226 set inout
[TkW
:showdir
$i]
227 if {$inout == 0} {set showedIn
[expr $showedIn + 1]}
228 if {$inout == -1} {set showedabove
[expr $showedabove + 1]}
229 if {$inout == 1} {set showedbelow
[expr $showedbelow + 1]}
231 # Scrollbars management:
232 TkW
:DirBrowseScroll
[expr (100.
*$showedabove/$ndirs)/100.
] \
233 [expr 1.
- (100.
*$showedbelow/$ndirs)/100.
]
237 proc TkW
:DirBrowseScroll
{ y1 y2
} {
238 global SliderY1 SliderY2 WinBrowse
241 .
$WinBrowse.dirframe_scr
set $y1 $y2
243 proc TkW
:FileBrowseScroll
{ y1 y2
} {
244 global FSliderY1 FSliderY2 WinBrowse
247 .
$WinBrowse.fileframe_scr
set $y1 $y2
249 proc TkW
:hilightFold
{y
} {
251 global YDIRS ndirs DIRS SelectNum WinBrowse
252 global SelectFolder BrowsePattern FTPcd
254 if { $y > $YDIRS($ndirs)} {set num
$ndirs} else {
260 $y <= $YDIRS([expr $i + 1])} {
263 } else { set i
[expr $i + 1] }
268 if {$SelectFolder == $DIRS($num)} {
270 if {$FTPcd == 1} {FTP_Lcd
$SelectFolder}
271 set SelectFolder
[pwd]
272 TkW
:DisplayCurrentDir
$BrowsePattern
275 .
$WinBrowse.dirframe.
label$num configure
-background #ffffff
276 set SelectFolder
$DIRS($num)
277 if {[info exists SelectNum
]} {
278 .
$WinBrowse.dirframe.
label$SelectNum configure
\
287 proc TkW
:showdir
{fulldirname
} {
288 global TKW ndirs Ybase YHeight YDIRS DIRS Ydecal ModeBrowse WinBrowse
290 set dirname
[file tail
$fulldirname]
291 if {$dirname == "."} return
292 set Y
[expr $Ybase + $ndirs * $Ydecal]
294 if {$Y < 0 } {set In
-1}
295 if {$Y > [expr $YHeight - $Ydecal]} { set In
1 }
298 set ndirs
[expr $ndirs + 1]
300 set DIRS
($ndirs) $fulldirname
301 label .
$WinBrowse.dirframe.icon
$ndirs -image fold
302 label .
$WinBrowse.dirframe.
label$ndirs -text $dirname\
303 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-*
306 place .
$WinBrowse.dirframe.icon
$ndirs -x 5 -y $Y
307 place .
$WinBrowse.dirframe.
label$ndirs -x 30 -y $Y
311 bind .
$WinBrowse.dirframe.icon
$ndirs <Button-1
> {
312 set Y
[expr %Y
- [winfo rooty .
$WinBrowse.dirframe
] -$Ybase]
316 bind .
$WinBrowse.dirframe.
label$ndirs <ButtonPress-1
> {
317 set Y
[expr %Y
- [winfo rooty .
$WinBrowse.dirframe
] -$Ybase]
323 proc TkW
:ScrollDirs
{X Y
} {
325 global Ybase Ydecal ndirs dirscroll
global nextLoop MouseY WinBrowse
326 global SliderY1 SliderY2 YHeight Nabove Nbelow
328 set MinBase
[expr -$Ydecal * ($ndirs - [expr $YHeight/$Ydecal])]
329 set Slider1
$SliderY1
330 set Slider2
$SliderY2
331 set MaxSlide1
[expr 1-($SliderY2-$SliderY1)]
332 set MinSlide2
[expr $SliderY2-$SliderY1]
333 switch [.
$WinBrowse.dirframe_scr identify
$X $Y] {
335 {arrow1
} { set dirscroll UP
; set modeUP
1}
336 {arrow2
} { set dirscroll DOWN
;set modeDOWN
1}
337 {slider
} {set dirscroll SLIDER
}
338 {trough1
} {set dirscroll UP
; set modeUP page
}
339 {trough2
} {set dirscroll DOWN
;set modeDOWN page
}
341 while {$dirscroll == "UP"} {
342 if {$modeUP == "1"} {set XUP
1} {
343 set XUP
[expr ($YHeight/$Ydecal ) -1]
345 set Ybase
[expr $Ybase + $XUP * $Ydecal]
346 if {$Ybase > $Ydecal} {
350 set Slider2
$MinSlide2
353 TkW
:DirBrowseScroll
[expr (100.
*$Nabove/$ndirs)/100.
] \
354 [expr 1.
- (100.
*$Nbelow/$ndirs)/100.
]
356 after 30 {set nextLoop
1}
357 while {$nextLoop == 0} {update}
358 set Slider1
$SliderY1
359 set Slider2
$SliderY2
361 while {$dirscroll == "DOWN"} {
362 if {$modeDOWN == "1"} {set XDOWN
1} {
363 set XDOWN
[expr ($YHeight/$Ydecal ) -1]
365 set Ybase
[expr $Ybase - $XDOWN * $Ydecal]
366 if {$Ybase < $MinBase} {
370 set Slider1
$MaxSlide1
373 TkW
:DirBrowseScroll
[expr (100.
*$Nabove/$ndirs)/100.
] \
374 [expr 1.
- (100.
*$Nbelow/$ndirs)/100.
]
376 after 30 {set nextLoop
1}
377 while {$nextLoop == 0} {update}
378 set Slider1
$SliderY1
379 set Slider2
$SliderY2
381 while {$dirscroll == "SLIDER"} {
383 after 20 {set nextLoop
1}
384 while {$nextLoop == 0} {
385 set Delta
[expr (100.
*($MouseY - $Y)/$YHeight)/100.
]
386 set Slider1
[expr $SliderY1 +$Delta]
387 set Slider2
[expr $SliderY2 +$Delta]
390 set Slider1
$MaxSlide1
394 set Slider2
$MinSlide2
396 .
$WinBrowse.dirframe_scr
set $Slider1 $Slider2
397 set Ybase
[expr 5 - $Slider1 * $ndirs *$Ydecal]
402 set SliderY1
$Slider1
403 set SliderY2
$Slider2
405 proc TkW
:ScrollFiles
{X Y
} {
407 global FYbase Ydecal nfiles filescroll nextLoop MouseY WinBrowse
408 global FSliderY1 FSliderY2 YHeight NFabove NFbelow
410 set MinBase
[expr -$Ydecal * ($nfiles - [expr $YHeight/$Ydecal])]
411 set FSlider1
$FSliderY1
412 set FSlider2
$FSliderY2
413 set MaxSlide1
[expr 1-($FSliderY2-$FSliderY1)]
414 set MinSlide2
[expr $FSliderY2-$FSliderY1]
415 switch [.
$WinBrowse.fileframe_scr identify
$X $Y] {
417 {arrow1
} { set filescroll UP
; set modeUP
1}
418 {arrow2
} { set filescroll DOWN
;set modeDOWN
1}
419 {slider
} {set filescroll SLIDER
}
420 {trough1
} {set filescroll UP
; set modeUP page
}
421 {trough2
} {set filescroll DOWN
;set modeDOWN page
}
423 while {$filescroll == "UP"} {
424 if {$modeUP == "1"} {set XUP
1} {
425 set XUP
[expr ($YHeight/$Ydecal ) -1]
427 set FYbase
[expr $FYbase + $XUP * $Ydecal]
428 if {$FYbase > $Ydecal} {
432 set FSlider2
$MinSlide2
436 TkW
:FileBrowseScroll
[expr (100.
*$NFabove/$nfiles)/100.
] \
437 [expr 1.
- (100.
*$NFbelow/$nfiles)/100.
]
439 TkW
:FileBrowseScroll
0 1
442 after 30 {set nextLoop
1}
443 while {$nextLoop == 0} {update}
444 set FSlider1
$FSliderY1
445 set FSlider2
$FSliderY2
447 while {$filescroll == "DOWN"} {
448 if {$modeDOWN == "1"} {set XDOWN
1} {
449 set XDOWN
[expr ($YHeight/$Ydecal ) -1]
451 set FYbase
[expr $FYbase - $XDOWN * $Ydecal]
452 if {$FYbase < $MinBase} {
456 set FSlider1
$MaxSlide1
460 TkW
:FileBrowseScroll
[expr (100.
*$NFabove/$nfiles)/100.
] \
461 [expr 1.
- (100.
*$NFbelow/$nfiles)/100.
]
463 TkW
:FileBrowseScroll
0 1
466 after 30 {set nextLoop
1}
467 while {$nextLoop == 0} {update}
468 set FSlider1
$FSliderY1
469 set FSlider2
$FSliderY2
471 while {$filescroll == "SLIDER"} {
473 after 20 {set nextLoop
1}
474 while {$nextLoop == 0} {
475 set Delta
[expr (100.
*($MouseY - $Y)/$YHeight)/100.
]
476 set FSlider1
[expr $FSliderY1 +$Delta]
477 set FSlider2
[expr $FSliderY2 +$Delta]
480 set FSlider1
$MaxSlide1
484 set FSlider2
$MinSlide2
486 .
$WinBrowse.fileframe_scr
set $FSlider1 $FSlider2
487 set FYbase
[expr 5 - $FSlider1 * $nfiles *$Ydecal]
492 set FSliderY1
$FSlider1
493 set FSliderY2
$FSlider2
496 proc TkW
:ReShowDirs
{} {
497 global dirlist Ybase Ydecal ndirs YHeight WinBrowse
503 set dirname
[file tail
$i]
504 if {$dirname != "."} {
505 set Y0
[expr $Ybase + $n * $Ydecal]
506 if {$Y0 < -5} {set Nabove
[expr $Nabove + 1]}
507 if {$Y0 > [expr $YHeight - $Ydecal]} { set Nbelow
[expr $Nbelow + 1]}
509 place .
$WinBrowse.dirframe.icon
$n -x 5 -y $Y0
510 place .
$WinBrowse.dirframe.
label$n -x 30 -y $Y0
514 proc TkW
:ReShowFiles
{} {
515 global filelist FYbase Ydecal nfiles YHeight WinBrowse
516 global NFabove NFbelow
520 foreach i
$filelist {
521 set filename [file tail
$i]
522 if {$filename != "."} {
523 set Y0
[expr $FYbase + $n * $Ydecal]
524 if {$Y0 < -5} {set NFabove
[expr $NFabove + 1]}
525 if {$Y0 > [expr $YHeight - $Ydecal]} { set NFbelow
[expr $NFbelow + 1]}
527 place .
$WinBrowse.fileframe.icon
$n -x 5 -y $Y0
528 place .
$WinBrowse.fileframe.
label$n -x 30 -y $Y0
533 proc TkW
:ShowFiles
{} {
534 global filelist nfiles
540 foreach i
$filelist {
541 set inout
[TkW
:showfile
$i]
542 if {$inout == 0} {set FshowedIn
[expr $FshowedIn + 1]}
543 if {$inout == -1} {set NFabove
[expr $NFabove + 1]}
544 if {$inout == 1} {set NFbelow
[expr $NFbelow + 1]}
546 # Scrollbar management:
548 TkW
:FileBrowseScroll
[expr (100.
*$NFabove/$nfiles)/100.
] \
549 [expr 1.
- (100.
*$NFbelow/$nfiles)/100.
]
551 TkW
:FileBrowseScroll
0 1
555 proc TkW
:showfile
{fullfilename
} {
556 global TKW nfiles FYbase YHeight YFILES Ydecal FILES
557 set Y
[expr $FYbase + $nfiles * $Ydecal]
559 if {$Y < 0 } {set In
-1}
560 if {$Y > [expr $YHeight - $Ydecal]} { set In
1 }
563 set nfiles
[expr $nfiles + 1]
564 set YFILES
($nfiles) $Y
565 set FILES
($nfiles) $fullfilename
566 createPlaceFileIcon
$nfiles $Y
569 proc createPlaceFileIcon
{n Y
} {
570 global FILES ModeBrowse WinBrowse
571 set fullfilename
$FILES($n)
573 if {[file executable
$fullfilename]} {set icon execfile
}
574 if {[file extension
$fullfilename] == ".html"} {set icon htmlfile
}
575 if {[file extension
$fullfilename] == ".htm"} {set icon htmlfile
}
576 if {[file extension
$fullfilename] == ".gif"} {set icon imgfile
}
577 if {[file extension
$fullfilename] == ".jpg"} {set icon imgfile
}
578 set filename [file tail
$fullfilename]
579 label .
$WinBrowse.fileframe.icon
$n -image $icon
580 label .
$WinBrowse.fileframe.
label$n -text $filename\
581 -font -Adobe-Helvetica
-Medium
-R
-Normal
-*-*-120-*-*-*-*-*-*\
584 place .
$WinBrowse.fileframe.icon
$n -x 5 -y $Y
585 place .
$WinBrowse.fileframe.
label$n -x 30 -y $Y
587 if {$ModeBrowse == "File"} {
589 bind .
$WinBrowse.fileframe.icon
$n <Button-1
> {
590 set Y
[expr %Y
- [winfo rooty .
$WinBrowse.fileframe
] -$FYbase]
593 bind .
$WinBrowse.fileframe.icon
$n <Double-Button-1
> {
596 return "$SelectFolder $SelectFile"
599 bind .
$WinBrowse.fileframe.
label$n <ButtonPress-1
> {
600 set Y
[expr %Y
- [winfo rooty .
$WinBrowse.fileframe
] -$FYbase]
603 bind .
$WinBrowse.fileframe.
label$n <Double-Button-1
> {
606 return "$SelectFolder $SelectFile"
611 proc DestroyDirs
{} {
612 global ndirs WinBrowse
614 for {set i
1} {$i <= $ndirs} {set i
[expr $i + 1 ]} {
615 if {[winfo exists .
$WinBrowse.dirframe.icon
$i]} {
616 destroy .
$WinBrowse.dirframe.icon
$i
617 destroy .
$WinBrowse.dirframe.
label$i
621 proc DestroyFiles
{} {
622 global nfiles WinBrowse
624 for {set i
1} {$i <= $nfiles} {set i
[expr $i + 1 ]} {
625 if {[winfo exists .
$WinBrowse.fileframe.icon
$i]} {
626 destroy .
$WinBrowse.fileframe.icon
$i
627 destroy .
$WinBrowse.fileframe.
label$i
632 proc TkW
:hilightFile
{y
} {
634 global YFILES nfiles FILES SelectNumF WinBrowse
635 global SelectFile BrowsePattern
637 if { $y > $YFILES($nfiles)} {set num
$nfiles} else {
643 $y <= $YFILES([expr $i + 1])} {
646 } else { set i
[expr $i + 1] }
651 if {$SelectFile == $FILES($num)} {
654 .
$WinBrowse.fileframe.
label$num configure
-background #ffffff
655 set SelectFile
$FILES($num)
656 if {[info exists SelectNumF
]} {
657 .
$WinBrowse.fileframe.
label$SelectNumF configure
-background #dddddd