|
|
1.1 ! root 1: #!/usr/local/bin/wish -f ! 2: # ! 3: # This script generates a directory browser, which lists the working ! 4: # directory and allows you to open files or subdirectories by ! 5: # double-clicking. ! 6: ! 7: # Create a scrollbar on the right side of the main window and a listbox ! 8: # on the left side. ! 9: ! 10: scrollbar .scroll -command ".list yview" ! 11: listbox .list -yscroll ".scroll set" -relief raised -geometry 20x20 ! 12: pack append . .scroll {right filly} .list {left expand fill} ! 13: ! 14: # The procedure below is invoked to open a browser on a given file; if the ! 15: # file is a directory then another instance of this program is invoked; if ! 16: # the file is a regular file then the Mx editor is invoked to display ! 17: # the file. ! 18: ! 19: proc browse {dir file} { ! 20: if {[string compare $dir "."] != 0} {set file $dir/$file} ! 21: if [file isdirectory $file] { ! 22: exec browse $file & ! 23: } else { ! 24: if [file isfile $file] { ! 25: exec xedit $file & ! 26: } else { ! 27: puts stdout "\"$file\" isn't a directory or regular file" ! 28: } ! 29: } ! 30: } ! 31: ! 32: # Fill the listbox with a list of all the files in the directory (run ! 33: # the "ls" command to get that information). ! 34: ! 35: if $argc>0 {set dir [lindex $argv 0]} else {set dir "."} ! 36: foreach i [exec ls -a $dir] { ! 37: .list insert end $i ! 38: } ! 39: ! 40: # Set up bindings for the browser. ! 41: ! 42: bind .list <Control-q> {destroy .} ! 43: bind .list <Control-c> {destroy .} ! 44: focus .list ! 45: bind .list <Double-Button-1> {foreach i [selection get] {browse $dir $i}}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.