# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id: DirDlg.tcl,v 1.3 2001/12/09 05:04:02 idiscovery Exp $ # # DirDlg.tcl -- # # Implements the Directory Selection Dialog widget. # # Copyright (c) 1993-1999 Ioi Kim Lam. # Copyright (c) 2000-2001 Tix Project Group. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # tixWidgetClass tixDirSelectDialog { -classname TixDirSelectDialog -superclass tixDialogShell -method {} -flag { -command } -configspec { {-command command Command ""} {-title title Title "Select A Directory"} } -default { {*ok.text "OK"} {*ok.underline 0} {*ok.width 6} {*cancel.text "Cancel"} {*cancel.underline 0} {*cancel.width 6} {*dirbox.borderWidth 1} {*dirbox.relief raised} } } proc tixDirSelectDialog:ConstructWidget {w} { upvar #0 $w data tixChainMethod $w ConstructWidget # the buttons frame $w.f -relief raised -bd 1 set data(w:ok) [button $w.f.ok -command \ "tixDirSelectDialog:OK $w"] set data(w:cancel) [button $w.f.cancel -command \ "tixDirSelectDialog:Cancel $w"] pack $data(w:ok) $data(w:cancel) -side left -expand yes -padx 10 -pady 8 pack $w.f -side bottom -fill x # the dir select box set data(w:dirbox) [tixDirSelectBox $w.dirbox \ -command [list tixDirSelectDialog:DirBoxCmd $w]] pack $data(w:dirbox) -expand yes -fill both } proc tixDirSelectDialog:SetBindings {w} { upvar #0 $w data tixChainMethod $w SetBindings bind $w "focus [$data(w:dirbox) subwidget dircbx]" } proc tixDirSelectDialog:OK {w} { upvar #0 $w data wm withdraw $w $data(w:dirbox) subwidget dircbx invoke } proc tixDirSelectDialog:DirBoxCmd {w args} { upvar #0 $w data set value [tixEvent flag V] wm withdraw $w tixDirSelectDialog:CallCmd $w $value } proc tixDirSelectDialog:CallCmd {w value} { upvar #0 $w data if {$data(-command) != ""} { set bind(specs) "%V" set bind(%V) $value tixEvalCmdBinding $w $data(-command) bind $value } } proc tixDirSelectDialog:Cancel {w} { wm withdraw $w }