Tcl-Tk-Tkwidget-Tix
view release on metacpan or search on metacpan
library/EFileBox.tcl view on Meta::CPAN
#----------------------------------------------------------------------
# Configuration
#----------------------------------------------------------------------
proc tixExFileSelectBox:config-showhidden {w value} {
upvar #0 $w data
set data(-showhidden) $value
tixExFileSelectBox:SetShowHidden $w
}
# Update both DirList and {file list and dir combo}
#
proc tixExFileSelectBox:config-directory {w value} {
upvar #0 $w data
set data(-directory) [tixFSNormalize $value]
tixSetSilent $data(w:dirlist) $data(-directory)
tixSetSilent $data(w:dir) $data(-directory)
tixWidgetDoWhenIdle tixExFileSelectBox:LoadFiles $w reload
return $data(-directory)
}
proc tixExFileSelectBox:config-filetypes {w value} {
upvar #0 $w data
$data(w:types) subwidget listbox delete 0 end
foreach name [array names data] {
if {[string match type,* $name]} {
catch {unset data($name)}
}
}
if {$value == ""} {
$data(w:types) config -state disabled
} else {
$data(w:types) config -state normal
foreach type $value {
$data(w:types) insert end [lindex $type 1]
set data(type,[lindex $type 1]) [lindex $type 0]
}
tixSetSilent $data(w:types) ""
}
}
#----------------------------------------------------------------------
# MISC Methods
#----------------------------------------------------------------------
proc tixExFileSelectBox:SetShowHidden {w} {
upvar #0 $w data
$data(w:dirlist) config -showhidden $data(-showhidden)
tixWidgetDoWhenIdle tixExFileSelectBox:LoadFiles $w reload
}
# User activates the dir combobox
#
#
proc tixExFileSelectBox:Cmd-DirCombo {w args} {
upvar #0 $w data
set dir [tixEvent flag V]
set dir [tixFSExternal $dir]
if {![file isdirectory $dir]} {
return
}
set dir [tixFSNormalize $dir]
$data(w:dirlist) config -value $dir
set data(-directory) $dir
}
# User activates the dir list
#
#
proc tixExFileSelectBox:Cmd-DirList {w args} {
upvar #0 $w data
set dir $data(-directory)
catch {set dir [tixEvent flag V]}
set dir [tixFSNormalize [tixFSExternal $dir]]
tixSetSilent $data(w:dir) $dir
set data(-directory) $dir
tixWidgetDoWhenIdle tixExFileSelectBox:LoadFiles $w noreload
}
# User activates the dir list
#
#
proc tixExFileSelectBox:Browse-DirList {w args} {
upvar #0 $w data
set dir [tixEvent flag V]
set dir [tixFSNormalize [tixFSExternal $dir]]
tixExFileSelectBox:Cmd-DirList $w $dir
}
proc tixExFileSelectBox:IsPattern {w string} {
return [regexp "\[\[\\\{\\*\\?\]" $string]
}
proc tixExFileSelectBox:Cmd-FileCombo {w value} {
upvar #0 $w data
if {[tixEvent type] eq "<Return>"} {
tixExFileSelectBox:Ok $w
}
}
proc tixExFileSelectBox:Ok {w} {
upvar #0 $w data
set value [string trim [$data(w:file) subwidget entry get]]
if {$value == ""} {
( run in 1.227 second using v1.01-cache-2.11-cpan-2398b32b56e )