proc fillLst {win filt dir} {

  $win.l.lst delete 0 end

  cd $dir

  set dir [pwd]
  
  if {[string length $filt] == 0} {
    set filt *
  }
  set all_list [lsort [glob -nocomplain $dir/$filt]]

  set dlist  "../"
  set flist ""

  foreach f $all_list {
    if {[file size $f] == 0} {continue}
    if [file isfile $f] {
      lappend flist [file tail $f]
    }
    if [file isdirectory $f] {
      lappend dlist [file tail $f]/
    }
  }

  foreach d $dlist {
    $win.l.lst insert end $d
  }
  foreach f $flist {
    $win.l.lst insert end $f
  }

  $win.l.lst yview 0

  set idx [expr [string length [file dirname [file dirname $dir]] ]+1]

  $win.l.lst xview $idx
}

