| #!/usr/bin/wish |
| ############################################################################# |
| # Visual Tcl v1.07 Project |
| # |
| # Copyright 1999 Jean-Louis Thirot |
| # |
| # This library is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU Lesser General Public |
| # License as published by the Free Software Foundation; either |
| # version 2.1 of the License, or (at your option) any later version. |
| # |
| # This library is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # Lesser General Public License for more details. |
| # |
| # You should have received a copy of the GNU Lesser General Public |
| # License along with this library; if not, write to the Free Software |
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| # |
| |
| ################################# |
| # GLOBAL VARIABLES |
| # |
| global widget; |
| ################################# |
| |
| proc TkW:GetFileName {message opt1 opt2 searchtype} { |
| global OK MSG_title WAITfilename TKW GetFileName BROWSE WAITbrowse |
| |
| global SearchType |
| set SearchType $searchtype |
| |
| set base .getfilename |
| if {[winfo exists .getfilename]} { |
| wm deiconify .getfilename; return |
| } |
| ################### |
| # CREATING WIDGETS |
| ################### |
| toplevel .getfilename -class Toplevel \ |
| -background #ffffff |
| wm focusmodel .getfilename passive |
| wm maxsize .getfilename 1265 994 |
| wm minsize .getfilename 1 1 |
| wm overrideredirect .getfilename 0 |
| wm resizable .getfilename 1 1 |
| wm deiconify .getfilename |
| wm geometry .getfilename +100+100 |
| wm title .getfilename $MSG_title |
| #wm iconbitmap .getfilename @$TKW/shared/images/setup2.xbm |
| #wm iconmask .getfilename @$TKW/shared/images/setupmask2.xbm |
| |
| #creates the message widget: |
| message .getfilename.msg -justify center -text $message \ |
| -background #dddddd -aspect 300 |
| |
| # Creates the entry box: |
| global GetFileName |
| entry .getfilename.ent -textvar GetFileName -relief sunken -width 50 |
| |
| button .getfilename.but1 \ |
| -background #dddddd \ |
| -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* -padx 9 \ |
| -pady 3 -text $opt1 -width 8 -state disabled \ |
| -command { |
| destroy .getfilename |
| set WAITfilename opt1 |
| return |
| } |
| button .getfilename.but2 \ |
| -background #dddddd \ |
| -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* -padx 9 \ |
| -pady 3 -text $opt2 -width 8\ |
| -command {destroy .getfilename; set WAITfilename opt2; return} |
| button .getfilename.but3 \ |
| -background #dddddd \ |
| -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* -padx 9 \ |
| -pady 3 -text $BROWSE -width 8\ |
| -command {TkW:dirbrowse * * $SearchType |
| set WAITbrowse 1 |
| while {$WAITbrowse == 1} {update} |
| if {$WAITbrowse == 0} { |
| if {$SearchType == "File"} { |
| set GetFileName $SelectFile |
| } else { |
| set GetFileName $SelectFolder |
| } |
| } |
| update |
| } |
| ################### |
| ################### |
| # SETTING GEOMETRY |
| ################### |
| #set H2 [expr $H +10] |
| pack .getfilename.msg -padx 5 -pady 5 |
| #-anchor nw -bordermode ignore |
| pack .getfilename.ent -padx 5 -pady 5 |
| pack .getfilename.but1 -padx 30 -pady 10 -side left |
| pack .getfilename.but3 -padx 0 -pady 10 -side left |
| pack .getfilename.but2 -padx 30 -pady 10 -side left |
| #-x 110 -y $H2 -width 100 -height 28 -anchor nw -bordermode ignore |
| |
| #bind .getfilename.ent <KeyPress-Return> {.getfilename.but1 invoke} |
| |
| while {[winfo exists .getfilename]} { |
| if {[file exists $GetFileName]} { |
| .getfilename.but1 configure -state normal |
| } else { |
| .getfilename.but1 configure -state disabled |
| } |
| update |
| } |
| } |