#!/usr/local/bin/wish -f # Program: xf-disp # Tcl version: 7.3 (Tcl/Tk/XF) # Tk version: 3.6 # XF version: 2.2 # # module inclusion global env global xfLoadPath global xfLoadInfo set xfLoadInfo 0 if {[info exists env(XF_LOAD_PATH)]} { if {[string first $env(XF_LOAD_PATH) /usr/local/lib/] == -1} { set xfLoadPath $env(XF_LOAD_PATH):/usr/local/lib/ } { set xfLoadPath /usr/local/lib/ } } { set xfLoadPath /usr/local/lib/ } global argc global argv global tkVersion set tmpArgv "" for {set counter 0} {$counter < $argc} {incr counter 1} { case [string tolower [lindex $argv $counter]] in { {-xfloadpath} { incr counter 1 set xfLoadPath "[lindex $argv $counter]:$xfLoadPath" } {-xfstartup} { incr counter 1 source [lindex $argv $counter] } {-xfbindfile} { incr counter 1 set env(XF_BIND_FILE) "[lindex $argv $counter]" } {-xfcolorfile} { incr counter 1 set env(XF_COLOR_FILE) "[lindex $argv $counter]" } {-xfcursorfile} { incr counter 1 set env(XF_CURSOR_FILE) "[lindex $argv $counter]" } {-xffontfile} { incr counter 1 set env(XF_FONT_FILE) "[lindex $argv $counter]" } {-xfmodelmono} { if {$tkVersion >= 3.0} { tk colormodel . monochrome } } {-xfmodelcolor} { if {$tkVersion >= 3.0} { tk colormodel . color } } {-xfloading} { set xfLoadInfo 1 } {-xfnoloading} { set xfLoadInfo 0 } {default} { lappend tmpArgv [lindex $argv $counter] } } } set argv $tmpArgv set argc [llength $tmpArgv] unset counter unset tmpArgv # procedure to show window .top0 proc ShowWindow.top0 {args} {# xf ignore me 7 # build widget .top0 if {"[info procs XFEdit]" != ""} { catch "XFDestroy .top0" } { catch "destroy .top0" } toplevel .top0 \ -background {Cornsilk2} # Window manager configurations global tkVersion wm positionfrom .top0 "" wm sizefrom .top0 "" wm maxsize .top0 1000 1000 wm minsize .top0 10 10 wm title .top0 {Execution} # build widget .top0.frame0 frame .top0.frame0 \ -background {Cornsilk2} \ -relief {raised} # build widget .top0.frame0.scrollbar3 scrollbar .top0.frame0.scrollbar3 \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {.top0.frame0.canvas2 xview} \ -foreground {#ffe4c4} \ -orient {horizontal} \ -relief {raised} # build widget .top0.frame0.scrollbar1 scrollbar .top0.frame0.scrollbar1 \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {.top0.frame0.canvas2 yview} \ -foreground {#ffe4c4} \ -relief {raised} # build widget .top0.frame0.canvas2 canvas .top0.frame0.canvas2 \ -background {Cornsilk2} \ -confine {0} \ -height {384} \ -insertofftime {600} \ -relief {raised} \ -scrollregion {-1c -1c 20c 20c} \ -selectbackground {#b2dfee} \ -selectborderwidth {1} \ -selectforeground {CornSilk2} \ -width {394} \ -xscrollcommand {.top0.frame0.scrollbar3 set} \ -yscrollcommand {.top0.frame0.scrollbar1 set} # bindings bind .top0.frame0.canvas2 {crosshair .top0.frame0.canvas2 %x %y} # pack widget .top0.frame0 pack append .top0.frame0 \ .top0.frame0.scrollbar1 {right frame center filly} \ .top0.frame0.canvas2 {top frame center expand fill} \ .top0.frame0.scrollbar3 {top frame center fillx} # build widget .top0.frame1 frame .top0.frame1 \ -background {Cornsilk2} \ -borderwidth {2} \ -relief {raised} # build widget .top0.frame1.label6 label .top0.frame1.label6 \ -anchor {w} \ -background {Cornsilk2} \ -font {8x16} \ -kanjifont {kanji16} \ -relief {raised} \ -text {States:} # build widget .top0.frame1.button13 button .top0.frame1.button13 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {# regexp {([0-9]+)x([0-9]+)} [wm geometry .] dm width height # set height [expr $height-300] # lite map $height lite map 300 } \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text {Map} # build widget .top0.frame1.button0 button .top0.frame1.button0 \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {lite generate a} \ -font {8x16} \ -kanjifont {*-fixed-*-normal--16-*-jisx0208.1983-*} \ -text {Generate} # pack widget .top0.frame1 pack append .top0.frame1 \ .top0.frame1.label6 {left frame center expand fillx} \ .top0.frame1.button13 {left frame center} \ .top0.frame1.button0 {left frame center fillx} # build widget .top0.frame6 frame .top0.frame6 \ -background {Cornsilk2} \ -borderwidth {2} \ -relief {raised} # build widget .top0.frame6.button8 button .top0.frame6.button8 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {lite counter a} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text {Counter Example} # build widget .top0.frame6.button10 button .top0.frame6.button10 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {lite execute a} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text {Execute} # build widget .top0.frame6.button9 button .top0.frame6.button9 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {canvaswh .top0.frame0.canvas2 1.6} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text {Enlarge} # build widget .top0.frame6.button11 button .top0.frame6.button11 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {canvaswh .top0.frame0.canvas2 0.625} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text { Shrink} # pack widget .top0.frame6 pack append .top0.frame6 \ .top0.frame6.button8 {right frame center fillx} \ .top0.frame6.button10 {right frame center expand fillx} \ .top0.frame6.button9 {left frame center} \ .top0.frame6.button11 {left frame center} # pack widget .top0 pack append .top0 \ .top0.frame0 {bottom frame center expand fill} \ .top0.frame1 {bottom frame center fill} \ .top0.frame6 {top frame center fillx} # build canvas items .top0.frame0.canvas2 set xfTmpTag [.top0.frame0.canvas2 create window -2480.03 -2615.93] .top0.frame0.canvas2 itemconfigure $xfTmpTag \ -anchor {nw} set xfTmpTag [.top0.frame0.canvas2 create line 326 189 326 199] .top0.frame0.canvas2 itemconfigure $xfTmpTag \ -tags {cursol} set xfTmpTag [.top0.frame0.canvas2 create line 321 194 331 194] .top0.frame0.canvas2 itemconfigure $xfTmpTag \ -tags {cursol} if {"[info procs XFEdit]" != ""} { catch "XFMiscBindWidgetTree .top0" after 2 "catch {XFEditSetShowWindows}" } } proc DestroyWindow.top0 {} {# xf ignore me 7 if {"[info procs XFEdit]" != ""} { if {"[info commands .top0]" != ""} { global xfShowWindow.top0 set xfShowWindow.top0 0 XFEditSetPath . after 2 "XFSaveAsProc .top0; XFEditSetShowWindows" } } { catch "destroy .top0" update } } # procedure to show window . proc ShowWindow. {args} {# xf ignore me 7 # Window manager configurations global tkVersion wm positionfrom . user wm sizefrom . user wm maxsize . 1280 1024 wm title . {Lite} # build widget .frame frame .frame \ -background {Cornsilk2} \ -relief {raised} # build widget .frame.frame0 frame .frame.frame0 \ -background {Cornsilk2} \ -borderwidth {2} \ -relief {raised} # build widget .frame.frame0.label4 label .frame.frame0.label4 \ -background {Cornsilk2} \ -font {8x16} \ -kanjifont {kanji16} \ -padx {2} \ -relief {raised} \ -text {ITL Formula:} # build widget .frame.frame0.button3 button .frame.frame0.button3 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {text_clear .frame.frame4.text0} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {*-fixed-*-normal--16-*-jisx0208.1983-*} \ -text {clear} # build widget .frame.frame0.menubutton0 menubutton .frame.frame0.menubutton0 \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -font {8x16} \ -kanjifont {*-fixed-*-normal--16-*-jisx0208.1983-*} \ -menu {.frame.frame0.menubutton0.m} \ -text {file} # bindings bind .frame.frame0.menubutton0 {MenuPopupPost .frame.frame0.menubutton0.m %X %Y} bind .frame.frame0.menubutton0 {MenuPopupRelease .frame.frame0.menubutton0.m %W} # build widget .frame.frame0.menubutton0.m menu .frame.frame0.menubutton0.m \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -font {8x16} \ -kanjifont {*-fixed-*-normal--16-*-jisx0208.1983-*} .frame.frame0.menubutton0.m add command \ -command {filehandling .frame.frame4.text0 load [FSBox "load"]} \ -label {load} .frame.frame0.menubutton0.m add command \ -command {filehandling .frame.frame4.text0 save [FSBox "save"]} \ -label {save} .frame.frame0.menubutton0.m add command \ -command {TokioCommand} \ -label {Tokio} .frame.frame0.menubutton0.m add command \ -command {PrologCommand} \ -label {Prolog} # bindings bind .frame.frame0.menubutton0.m {MenuPopupRelease .frame.frame0.menubutton0.m %W} bind .frame.frame0.menubutton0.m {MenuPopupPost .frame.frame0.menubutton0.m %X %Y} # pack widget .frame.frame0 pack append .frame.frame0 \ .frame.frame0.label4 {left frame center expand fillx} \ .frame.frame0.button3 {right frame center} \ .frame.frame0.menubutton0 {left frame center fillx} # build widget .frame.frame4 frame .frame.frame4 \ -background {Cornsilk2} \ -borderwidth {2} \ -relief {raised} # build widget .frame.frame4.scrollbar1 scrollbar .frame.frame4.scrollbar1 \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {.frame.frame4.text0 yview} \ -foreground {#ffe4c4} # build widget .frame.frame4.text0 text .frame.frame4.text0 \ -background {Cornsilk2} \ -font {8x16} \ -kanjifont {kanji16} \ -height {10} \ -selectbackground {#b2dfee} \ -selectborderwidth {1} \ -selectforeground {CornSilk2} \ -width {61} \ -yscrollcommand {.frame.frame4.scrollbar1 set} # bindings bind .frame.frame4.text0 {%W mark set insert @%x,%y %W insert insert [selection get] %W yview -pickplace insert} bind .frame.frame4.text0 {%W mark set anchor insert %W tag add sel insert @%x,%y} bind .frame.frame4.text0 {%W mark set insert {insert linestart}} bind .frame.frame4.text0 {%W mark set insert {insert -1char}} bind .frame.frame4.text0 {%W delete insert} bind .frame.frame4.text0 {%W mark set insert {insert lineend}} bind .frame.frame4.text0 {%W mark set insert {insert +1char}} bind .frame.frame4.text0 {if ![string compare [%W get insert] "\n"] { %W delete insert} else { %W delete insert {insert lineend} }} bind .frame.frame4.text0 {%W mark set insert {insert +1line}} bind .frame.frame4.text0 {%W mark set insert {insert -1line}} bind .frame.frame4.text0 {if [llength [%W tag ranges sel]] { %W delete sel.first sel.last }} # pack widget .frame.frame4 pack append .frame.frame4 \ .frame.frame4.text0 {left frame center expand fill} \ .frame.frame4.scrollbar1 {right frame center filly} # pack widget .frame pack append .frame \ .frame.frame0 {top frame center fillx} \ .frame.frame4 {left frame center expand fill} # build widget .frame3 frame .frame3 \ -background {Cornsilk2} \ -borderwidth {2} \ -relief {raised} # build widget .frame3.button4 button .frame3.button4 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {lite quit 0 destroy .} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text {Quit} # build widget .frame3.checkbutton5 checkbutton .frame3.checkbutton5 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {lite verbose "$verbose"} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -selector {#b03060} \ -text {verbose} \ -variable {verbose} # build widget .frame3.button7 button .frame3.button7 \ -activebackground {#eed5b7} \ -activeforeground {CornSilk2} \ -background {Cornsilk2} \ -command {lite verify "{[$symbolicName(entry) get 0.0 end]}"} \ -disabledforeground {#b0b0b0} \ -font {8x16} \ -kanjifont {kanji16} \ -text {Verify} # pack widget .frame3 pack append .frame3 \ .frame3.button4 {left frame center} \ .frame3.checkbutton5 {right frame center} \ .frame3.button7 {top frame n fillx} # pack widget . pack append . \ .frame {top frame center expand fill} \ .frame3 {top frame center fill} .frame.frame4.text0 insert end {} if {"[info procs XFEdit]" != ""} { catch "XFMiscBindWidgetTree ." after 2 "catch {XFEditSetShowWindows}" } } # User defined procedures # Procedure: FSBox proc FSBox { {fsBoxMessage "Select file:"} {fsBoxFileName ""} {fsBoxActionOk ""} {fsBoxActionCancel ""}} { # xf ignore me 5 ########## # Procedure: FSBox # Description: show file selector box # Arguments: fsBoxMessage - the text to display # fsBoxFileName - a file name that should be selected # fsBoxActionOk - the action that should be performed on ok # fsBoxActionCancel - the action that should be performed on cancel # Returns: the filename that was selected, or nothing # Sideeffects: none ########## # # global fsBox(activeBackground) - active background color # global fsBox(activeForeground) - active foreground color # global fsBox(background) - background color # global fsBox(font) - text font # global fsBox(foreground) - foreground color # global fsBox(extensions) - scan directory for extensions # global fsBox(scrollActiveForeground) - scrollbar active background color # global fsBox(scrollBackground) - scrollbar background color # global fsBox(scrollForeground) - scrollbar foreground color # global fsBox(scrollSide) - side where scrollbar is located global fsBox set tmpButtonOpt "" set tmpFrameOpt "" set tmpMessageOpt "" set tmpScaleOpt "" set tmpScrollOpt "" if {"$fsBox(activeBackground)" != ""} { append tmpButtonOpt "-activebackground \"$fsBox(activeBackground)\" " } if {"$fsBox(activeForeground)" != ""} { append tmpButtonOpt "-activeforeground \"$fsBox(activeForeground)\" " } if {"$fsBox(background)" != ""} { append tmpButtonOpt "-background \"$fsBox(background)\" " append tmpFrameOpt "-background \"$fsBox(background)\" " append tmpMessageOpt "-background \"$fsBox(background)\" " } if {"$fsBox(font)" != ""} { append tmpButtonOpt "-font \"$fsBox(font)\" " append tmpMessageOpt "-font \"$fsBox(font)\" " } if {"$fsBox(foreground)" != ""} { append tmpButtonOpt "-foreground \"$fsBox(foreground)\" " append tmpMessageOpt "-foreground \"$fsBox(foreground)\" " } if {"$fsBox(scrollActiveForeground)" != ""} { append tmpScrollOpt "-activeforeground \"$fsBox(scrollActiveForeground)\" " } if {"$fsBox(scrollBackground)" != ""} { append tmpScrollOpt "-background \"$fsBox(scrollBackground)\" " } if {"$fsBox(scrollForeground)" != ""} { append tmpScrollOpt "-foreground \"$fsBox(scrollForeground)\" " } if {[file exists [file tail $fsBoxFileName]] && [IsAFile [file tail $fsBoxFileName]]} { set fsBox(name) [file tail $fsBoxFileName] } { set fsBox(name) "" } if {[file exists $fsBoxFileName] && [IsADir $fsBoxFileName]} { set fsBox(path) $fsBoxFileName } { if {"[file rootname $fsBoxFileName]" != "."} { set fsBox(path) [file rootname $fsBoxFileName] } } if {$fsBox(showPixmap)} { set fsBox(path) [string trimleft $fsBox(path) @] } if {"$fsBox(path)" != "" && [file exists $fsBox(path)] && [IsADir $fsBox(path)]} { set fsBox(internalPath) $fsBox(path) } { if {"$fsBox(internalPath)" == "" || ![file exists $fsBox(internalPath)]} { set fsBox(internalPath) [pwd] } } # build widget structure # start build of toplevel if {"[info commands XFDestroy]" != ""} { catch {XFDestroy .fsBox} } { catch {destroy .fsBox} } toplevel .fsBox -borderwidth 0 catch ".fsBox config $tmpFrameOpt" wm geometry .fsBox 350x300 wm title .fsBox {File select box} wm maxsize .fsBox 1000 1000 wm minsize .fsBox 100 100 # end build of toplevel label .fsBox.message1 -anchor c -relief raised -text "$fsBoxMessage" catch ".fsBox.message1 config $tmpMessageOpt" frame .fsBox.frame1 -borderwidth 0 -relief raised catch ".fsBox.frame1 config $tmpFrameOpt" button .fsBox.frame1.ok -text "OK" -command " global fsBox set fsBox(name) \[.fsBox.file.file get\] if {$fsBox(showPixmap)} { set fsBox(path) @\[.fsBox.path.path get\] } { set fsBox(path) \[.fsBox.path.path get\] } set fsBox(internalPath) \[.fsBox.path.path get\] $fsBoxActionOk if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy .fsBox} } { catch {destroy .fsBox} }" catch ".fsBox.frame1.ok config $tmpButtonOpt" button .fsBox.frame1.rescan -text "Rescan" -command { global fsBox FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all)} catch ".fsBox.frame1.rescan config $tmpButtonOpt" button .fsBox.frame1.cancel -text "Cancel" -command " global fsBox set fsBox(name) {} set fsBox(path) {} $fsBoxActionCancel if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy .fsBox} } { catch {destroy .fsBox} }" catch ".fsBox.frame1.cancel config $tmpButtonOpt" if {$fsBox(showPixmap)} { frame .fsBox.frame2 -borderwidth 0 -relief raised catch ".fsBox.frame2 config $tmpFrameOpt" scrollbar .fsBox.frame2.scrollbar3 -command {.fsBox.frame2.canvas2 xview} -orient {horizontal} -relief {raised} catch ".fsBox.frame2.scrollbar3 config $tmpScrollOpt" scrollbar .fsBox.frame2.scrollbar1 -command {.fsBox.frame2.canvas2 yview} -relief {raised} catch ".fsBox.frame2.scrollbar1 config $tmpScrollOpt" canvas .fsBox.frame2.canvas2 -confine {true} -relief {raised} -scrollregion {0c 0c 20c 20c} -width {100} -xscrollcommand {.fsBox.frame2.scrollbar3 set} -yscrollcommand {.fsBox.frame2.scrollbar1 set} catch ".fsBox.frame2.canvas2 config $tmpFrameOpt" .fsBox.frame2.canvas2 addtag currentBitmap withtag [.fsBox.frame2.canvas2 create bitmap 5 5 -anchor nw] } frame .fsBox.path -borderwidth 0 -relief raised catch ".fsBox.path config $tmpFrameOpt" frame .fsBox.path.paths -borderwidth 2 -relief raised catch ".fsBox.path.paths config $tmpFrameOpt" menubutton .fsBox.path.paths.paths -borderwidth 0 -menu ".fsBox.path.paths.paths.menu" -relief flat -text "Pathname:" catch ".fsBox.path.paths.paths config $tmpButtonOpt" menu .fsBox.path.paths.paths.menu catch ".fsBox.path.paths.paths.menu config $tmpButtonOpt" .fsBox.path.paths.paths.menu add command -label "[string trimright $fsBox(internalPath) {/@}]" -command " global fsBox FSBoxFSShow \[.fsBox.path.path get\] \[.fsBox.pattern.pattern get\] \$fsBox(all) .fsBox.path.path delete 0 end .fsBox.path.path insert 0 [string trimright $fsBox(internalPath) {/@}]" entry .fsBox.path.path -relief raised catch ".fsBox.path.path config $tmpMessageOpt" if {![IsADir $fsBox(internalPath)]} { set $fsBox(internalPath) [pwd] } .fsBox.path.path insert 0 $fsBox(internalPath) frame .fsBox.pattern -borderwidth 0 -relief raised catch ".fsBox.pattern config $tmpFrameOpt" frame .fsBox.pattern.patterns -borderwidth 2 -relief raised catch ".fsBox.pattern.patterns config $tmpFrameOpt" menubutton .fsBox.pattern.patterns.patterns -borderwidth 0 -menu ".fsBox.pattern.patterns.patterns.menu" -relief flat -text "Selection pattern:" catch ".fsBox.pattern.patterns.patterns config $tmpButtonOpt" menu .fsBox.pattern.patterns.patterns.menu catch ".fsBox.pattern.patterns.patterns.menu config $tmpButtonOpt" .fsBox.pattern.patterns.patterns.menu add checkbutton -label "Scan extensions" -variable fsBox(extensions) -command { global fsBox FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all)} entry .fsBox.pattern.pattern -relief raised catch ".fsBox.pattern.pattern config $tmpMessageOpt" .fsBox.pattern.pattern insert 0 $fsBox(pattern) frame .fsBox.files -borderwidth 0 -relief raised catch ".fsBox.files config $tmpFrameOpt" scrollbar .fsBox.files.vscroll -relief raised -command ".fsBox.files.files yview" catch ".fsBox.files.vscroll config $tmpScrollOpt" scrollbar .fsBox.files.hscroll -orient horiz -relief raised -command ".fsBox.files.files xview" catch ".fsBox.files.hscroll config $tmpScrollOpt" listbox .fsBox.files.files -exportselection false -relief raised -xscrollcommand ".fsBox.files.hscroll set" -yscrollcommand ".fsBox.files.vscroll set" catch ".fsBox.files.files config $tmpMessageOpt" frame .fsBox.file -borderwidth 0 -relief raised catch ".fsBox.file config $tmpFrameOpt" label .fsBox.file.labelfile -relief raised -text "Filename:" catch ".fsBox.file.labelfile config $tmpMessageOpt" entry .fsBox.file.file -relief raised catch ".fsBox.file.file config $tmpMessageOpt" .fsBox.file.file delete 0 end .fsBox.file.file insert 0 $fsBox(name) checkbutton .fsBox.pattern.all -offvalue 0 -onvalue 1 -text "Show all files" -variable fsBox(all) -command { global fsBox FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all)} catch ".fsBox.pattern.all config $tmpButtonOpt" FSBoxFSShow $fsBox(internalPath) $fsBox(pattern) $fsBox(all) # bindings bind .fsBox.files.files " FSBoxFSFileSelectDouble %W $fsBox(showPixmap) \{$fsBoxActionOk\} %y" bind .fsBox.files.files " FSBoxFSFileSelect %W $fsBox(showPixmap) %y" bind .fsBox.files.files " FSBoxFSFileSelect %W $fsBox(showPixmap) %y" bind .fsBox.files.files " FSBoxFSFileSelect %W $fsBox(showPixmap) %y" bind .fsBox.files.files " FSBoxFSFileSelect %W $fsBox(showPixmap) %y" bind .fsBox.path.path { FSBoxFSNameComplete path} bind .fsBox.path.path { global tkVersion global fsBox FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all) FSBoxFSInsertPath if {$tkVersion >= 3.0} { .fsBox.file.file icursor end } { .fsBox.file.file cursor end } focus .fsBox.file.file} catch "bind .fsBox.path.path {}" bind .fsBox.path.path { global tkVersion if {$tkVersion >= 3.0} { .fsBox.file.file icursor end } { .fsBox.file.file cursor end } focus .fsBox.file.file} bind .fsBox.file.file { FSBoxFSNameComplete file} bind .fsBox.file.file " global fsBox set fsBox(name) \[.fsBox.file.file get\] if {$fsBox(showPixmap)} { set fsBox(path) @\[.fsBox.path.path get\] } { set fsBox(path) \[.fsBox.path.path get\] } set fsBox(internalPath) \[.fsBox.path.path get\] $fsBoxActionOk if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy .fsBox} } { catch {destroy .fsBox} }" bind .fsBox.file.file { global tkVersion if {$tkVersion >= 3.0} { .fsBox.path.path icursor end } { .fsBox.path.path cursor end } focus .fsBox.path.path} bind .fsBox.file.file { global tkVersion if {$tkVersion >= 3.0} { .fsBox.pattern.pattern icursor end } { .fsBox.pattern.pattern cursor end } focus .fsBox.pattern.pattern} bind .fsBox.pattern.pattern { global fsBox FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all)} bind .fsBox.pattern.pattern { global tkVersion if {$tkVersion >= 3.0} { .fsBox.file.file icursor end } { .fsBox.file.file cursor end } focus .fsBox.file.file} catch "bind .fsBox.pattern.pattern {}" # packing pack append .fsBox.files .fsBox.files.vscroll "$fsBox(scrollSide) filly" .fsBox.files.hscroll {bottom fillx} .fsBox.files.files {left fill expand} pack append .fsBox.file .fsBox.file.labelfile {left} .fsBox.file.file {left fill expand} pack append .fsBox.frame1 .fsBox.frame1.ok {left fill expand} .fsBox.frame1.rescan {left fill expand} .fsBox.frame1.cancel {left fill expand} pack append .fsBox.path.paths .fsBox.path.paths.paths {left} pack append .fsBox.pattern.patterns .fsBox.pattern.patterns.patterns {left} pack append .fsBox.path .fsBox.path.paths {left} .fsBox.path.path {left fill expand} pack append .fsBox.pattern .fsBox.pattern.patterns {left} .fsBox.pattern.all {right fill} .fsBox.pattern.pattern {left fill expand} if {$fsBox(showPixmap)} { pack append .fsBox.frame2 .fsBox.frame2.scrollbar1 {left filly} .fsBox.frame2.canvas2 {top expand fill} .fsBox.frame2.scrollbar3 {top fillx} pack append .fsBox .fsBox.message1 {top fill} .fsBox.frame1 {bottom fill} .fsBox.pattern {bottom fill} .fsBox.file {bottom fill} .fsBox.path {bottom fill} .fsBox.frame2 {right fill} .fsBox.files {left fill expand} } { pack append .fsBox .fsBox.message1 {top fill} .fsBox.frame1 {bottom fill} .fsBox.pattern {bottom fill} .fsBox.file {bottom fill} .fsBox.path {bottom fill} .fsBox.files {left fill expand} } if {"$fsBoxActionOk" == "" && "$fsBoxActionCancel" == ""} { # wait for the box to be destroyed update idletask grab .fsBox tkwait window .fsBox if {"[string trim $fsBox(path)]" != "" || "[string trim $fsBox(name)]" != ""} { if {"[string trimleft [string trim $fsBox(name)] /]" == ""} { return [string trimright [string trim $fsBox(path)] /] } { return [string trimright [string trim $fsBox(path)] /]/[string trimleft [string trim $fsBox(name)] /] } } } } # Procedure: FSBoxBindSelectOne proc FSBoxBindSelectOne { fsBoxW fsBoxY} { # xf ignore me 6 set fsBoxNearest [$fsBoxW nearest $fsBoxY] if {$fsBoxNearest >= 0} { $fsBoxW select from $fsBoxNearest $fsBoxW select to $fsBoxNearest } } # Procedure: FSBoxFSFileSelect proc FSBoxFSFileSelect { fsBoxW fsBoxShowPixmap fsBoxY} { # xf ignore me 6 global fsBox FSBoxBindSelectOne $fsBoxW $fsBoxY set fsBoxNearest [$fsBoxW nearest $fsBoxY] if {$fsBoxNearest >= 0} { set fsBoxTmpEntry [$fsBoxW get $fsBoxNearest] if {"[string index $fsBoxTmpEntry [expr [string length $fsBoxTmpEntry]-1]]" == "/" || "[string index $fsBoxTmpEntry [expr [string length $fsBoxTmpEntry]-1]]" == "@"} { set fsBoxFileName [string range $fsBoxTmpEntry 0 [expr [string length $fsBoxTmpEntry]-2]] if {![IsADir [string trimright $fsBox(internalPath)/$fsBoxFileName @]] && ![IsASymlink [string trimright $fsBox(internalPath)/$fsBoxFileName @]]} { set fsBoxFileName $fsBoxTmpEntry } } { if {"[string index $fsBoxTmpEntry [expr [string length $fsBoxTmpEntry]-1]]" == "*"} { set fsBoxFileName [string range $fsBoxTmpEntry 0 [expr [string length $fsBoxTmpEntry]-2]] if {![file executable $fsBox(internalPath)/$fsBoxFileName]} { set fsBoxFileName $fsBoxTmpEntry } } { set fsBoxFileName $fsBoxTmpEntry } } if {![IsADir [string trimright $fsBox(internalPath)/$fsBoxFileName @]]} { set fsBox(name) $fsBoxFileName .fsBox.file.file delete 0 end .fsBox.file.file insert 0 $fsBox(name) if {$fsBoxShowPixmap} { catch ".fsBox.frame2.canvas2 itemconfigure currentBitmap -bitmap \"@$fsBox(internalPath)/$fsBox(name)\"" } } } } # Procedure: FSBoxFSFileSelectDouble proc FSBoxFSFileSelectDouble { fsBoxW fsBoxShowPixmap fsBoxAction fsBoxY} { # xf ignore me 6 global fsBox FSBoxBindSelectOne $fsBoxW $fsBoxY set fsBoxNearest [$fsBoxW nearest $fsBoxY] if {$fsBoxNearest >= 0} { set fsBoxTmpEntry [$fsBoxW get $fsBoxNearest] if {"$fsBoxTmpEntry" == "../"} { set fsBoxTmpEntry [string trimright [string trim $fsBox(internalPath)] "@/"] if {"$fsBoxTmpEntry" == ""} { return } FSBoxFSShow [file dirname $fsBoxTmpEntry] [.fsBox.pattern.pattern get] $fsBox(all) .fsBox.path.path delete 0 end .fsBox.path.path insert 0 $fsBox(internalPath) } { if {"[string index $fsBoxTmpEntry [expr [string length $fsBoxTmpEntry]-1]]" == "/" || "[string index $fsBoxTmpEntry [expr [string length $fsBoxTmpEntry]-1]]" == "@"} { set fsBoxFileName [string range $fsBoxTmpEntry 0 [expr [string length $fsBoxTmpEntry]-2]] if {![IsADir [string trimright $fsBox(internalPath)/$fsBoxFileName @]] && ![IsASymlink [string trimright $fsBox(internalPath)/$fsBoxFileName @]]} { set fsBoxFileName $fsBoxTmpEntry } } { if {"[string index $fsBoxTmpEntry [expr [string length $fsBoxTmpEntry]-1]]" == "*"} { set fsBoxFileName [string range $fsBoxTmpEntry 0 [expr [string length $fsBoxTmpEntry]-2]] if {![file executable $fsBox(internalPath)/$fsBoxFileName]} { set fsBoxFileName $fsBoxTmpEntry } } { set fsBoxFileName $fsBoxTmpEntry } } if {[IsADir [string trimright $fsBox(internalPath)/$fsBoxFileName @]]} { set fsBox(internalPath) "[string trimright $fsBox(internalPath) {/@}]/$fsBoxFileName" FSBoxFSShow $fsBox(internalPath) [.fsBox.pattern.pattern get] $fsBox(all) .fsBox.path.path delete 0 end .fsBox.path.path insert 0 $fsBox(internalPath) } { set fsBox(name) $fsBoxFileName if {$fsBoxShowPixmap} { set fsBox(path) @$fsBox(internalPath) } { set fsBox(path) $fsBox(internalPath) } if {"$fsBoxAction" != ""} { eval "global fsBox; $fsBoxAction" } if {"[info commands XFDestroy]" != ""} { catch {XFDestroy .fsBox} } { catch {destroy .fsBox} } } } } } # Procedure: FSBoxFSInsertPath proc FSBoxFSInsertPath {} { # xf ignore me 6 global fsBox set fsBoxLast [.fsBox.path.paths.paths.menu index last] set fsBoxNewEntry [string trimright [.fsBox.path.path get] "/@"] for {set fsBoxCounter 0} {$fsBoxCounter <= $fsBoxLast} {incr fsBoxCounter 1} { if {"$fsBoxNewEntry" == "[lindex [.fsBox.path.paths.paths.menu entryconfigure $fsBoxCounter -label] 4]"} { return } } if {$fsBoxLast < 9} { .fsBox.path.paths.paths.menu add command -label "$fsBoxNewEntry" -command " global fsBox FSBoxFSShow $fsBoxNewEntry \[.fsBox.pattern.pattern get\] \$fsBox(all) .fsBox.path.path delete 0 end .fsBox.path.path insert 0 $fsBoxNewEntry" } { for {set fsBoxCounter 0} {$fsBoxCounter < $fsBoxLast} {incr fsBoxCounter 1} { .fsBox.path.paths.paths.menu entryconfigure $fsBoxCounter -label [lindex [.fsBox.path.paths.paths.menu entryconfigure [expr $fsBoxCounter+1] -label] 4] .fsBox.path.paths.paths.menu entryconfigure $fsBoxCounter -command " global fsBox FSBoxFSShow [lindex [.fsBox.path.paths.paths.menu entryconfigure [expr $fsBoxCounter+1] -label] 4] \[.fsBox.pattern.pattern get\] \$fsBox(all) .fsBox.path.path delete 0 end .fsBox.path.path insert 0 [lindex [.fsBox.path.paths.paths.menu entryconfigure [expr $fsBoxCounter+1] -label] 4]" } .fsBox.path.paths.paths.menu entryconfigure $fsBoxLast -label "$fsBoxNewEntry" .fsBox.path.paths.paths.menu entryconfigure $fsBoxCounter -command " global fsBox FSBoxFSShow \[.fsBox.path.path get\] \[.fsBox.pattern.pattern get\] \$fsBox(all) .fsBox.path.path delete 0 end .fsBox.path.path insert 0 $fsBoxNewEntry" } } # Procedure: FSBoxFSNameComplete proc FSBoxFSNameComplete { fsBoxType} { # xf ignore me 6 global tkVersion global fsBox set fsBoxNewFile "" if {"$fsBoxType" == "path"} { set fsBoxDirName [file dirname [.fsBox.path.path get]] set fsBoxFileName [file tail [.fsBox.path.path get]] } { set fsBoxDirName [file dirname [.fsBox.path.path get]/] set fsBoxFileName [file tail [.fsBox.file.file get]] } set fsBoxNewFile "" if {[IsADir [string trimright $fsBoxDirName @]]} { catch "glob -nocomplain $fsBoxDirName/${fsBoxFileName}*" fsBoxResult foreach fsBoxCounter $fsBoxResult { if {"$fsBoxNewFile" == ""} { set fsBoxNewFile [file tail $fsBoxCounter] } { if {"[string index [file tail $fsBoxCounter] 0]" != "[string index $fsBoxNewFile 0]"} { set fsBoxNewFile "" break } set fsBoxCounter1 0 set fsBoxTmpFile1 $fsBoxNewFile set fsBoxTmpFile2 [file tail $fsBoxCounter] set fsBoxLength1 [string length $fsBoxTmpFile1] set fsBoxLength2 [string length $fsBoxTmpFile2] set fsBoxNewFile "" if {$fsBoxLength1 > $fsBoxLength2} { set fsBoxLength1 $fsBoxLength2 } while {$fsBoxCounter1 < $fsBoxLength1} { if {"[string index $fsBoxTmpFile1 $fsBoxCounter1]" == "[string index $fsBoxTmpFile2 $fsBoxCounter1]"} { append fsBoxNewFile [string index $fsBoxTmpFile1 $fsBoxCounter1] } { break } incr fsBoxCounter1 1 } } } } if {"$fsBoxNewFile" != ""} { if {[IsADir [string trimright $fsBoxDirName/$fsBoxNewFile @]] || ![IsAFile [string trimright $fsBoxDirName/$fsBoxNewFile @]]} { if {[IsADir [string trimright $fsBoxDirName/$fsBoxNewFile @]]} { if {"$fsBoxDirName" == "/"} { .fsBox.path.path delete 0 end .fsBox.path.path insert 0 "/[string trimright [string trim $fsBoxNewFile /] @]/" } { .fsBox.path.path delete 0 end .fsBox.path.path insert 0 "[string trimright $fsBoxDirName /]/[string trimright [string trim $fsBoxNewFile /] @]/" } FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all) FSBoxFSInsertPath } { .fsBox.path.path delete 0 end .fsBox.path.path insert 0 "[string trimright $fsBoxDirName /]/[string trimright [string trim $fsBoxNewFile /] @]" } } { .fsBox.path.path delete 0 end .fsBox.path.path insert 0 "[string trimright $fsBoxDirName {@/}]/" .fsBox.file.file delete 0 end .fsBox.file.file insert 0 $fsBoxNewFile if {$tkVersion >= 3.0} { .fsBox.file.file icursor end } { .fsBox.file.file cursor end } focus .fsBox.file.file } } } # Procedure: FSBoxFSShow proc FSBoxFSShow { fsBoxPath fsBoxPattern fsBoxAll} { # xf ignore me 6 global fsBox set tmpButtonOpt "" if {"$fsBox(activeBackground)" != ""} { append tmpButtonOpt "-activebackground \"$fsBox(activeBackground)\" " } if {"$fsBox(activeForeground)" != ""} { append tmpButtonOpt "-activeforeground \"$fsBox(activeForeground)\" " } if {"$fsBox(background)" != ""} { append tmpButtonOpt "-background \"$fsBox(background)\" " } if {"$fsBox(font)" != ""} { append tmpButtonOpt "-font \"$fsBox(font)\" " } if {"$fsBox(foreground)" != ""} { append tmpButtonOpt "-foreground \"$fsBox(foreground)\" " } set fsBox(pattern) $fsBoxPattern if {[file exists $fsBoxPath] && [file readable $fsBoxPath] && [IsADir $fsBoxPath]} { set fsBox(internalPath) $fsBoxPath } { if {[file exists $fsBoxPath] && [file readable $fsBoxPath] && [IsAFile $fsBoxPath]} { set fsBox(internalPath) [file dirname $fsBoxPath] .fsBox.file.file delete 0 end .fsBox.file.file insert 0 [file tail $fsBoxPath] set fsBoxPath $fsBox(internalPath) } { while {"$fsBoxPath" != "" && "$fsBoxPath" != "/" && ![file isdirectory $fsBoxPath]} { set fsBox(internalPath) [file dirname $fsBoxPath] set fsBoxPath $fsBox(internalPath) } } } if {"$fsBoxPath" == ""} { set fsBoxPath "/" set fsBox(internalPath) "/" } .fsBox.path.path delete 0 end .fsBox.path.path insert 0 $fsBox(internalPath) if {[.fsBox.files.files size] > 0} { .fsBox.files.files delete 0 end } if {$fsBoxAll} { if {[catch "exec ls -F -a $fsBoxPath" fsBoxResult]} { puts stderr "$fsBoxResult" } } { if {[catch "exec ls -F $fsBoxPath" fsBoxResult]} { puts stderr "$fsBoxResult" } } set fsBoxElementList [lsort $fsBoxResult] foreach fsBoxCounter [winfo children .fsBox.pattern.patterns.patterns] { if {[string length [info commands XFDestroy]] > 0} { catch {XFDestroy $fsBoxCounter} } { catch {destroy $fsBoxCounter} } } menu .fsBox.pattern.patterns.patterns.menu catch ".fsBox.pattern.patterns.patterns.menu config $tmpButtonOpt" if {$fsBox(extensions)} { .fsBox.pattern.patterns.patterns.menu add command -label "*" -command { global fsBox set fsBox(pattern) "*" .fsBox.pattern.pattern delete 0 end .fsBox.pattern.pattern insert 0 $fsBox(pattern) FSBoxFSShow [.fsBox.path.path get] $fsBox(pattern) $fsBox(all)} } if {"$fsBoxPath" != "/"} { .fsBox.files.files insert end "../" } foreach fsBoxCounter $fsBoxElementList { if {[string match $fsBoxPattern $fsBoxCounter] || [IsADir [string trimright $fsBoxPath/$fsBoxCounter "/@"]]} { if {"$fsBoxCounter" != "../" && "$fsBoxCounter" != "./"} { .fsBox.files.files insert end $fsBoxCounter } } if {$fsBox(extensions)} { catch "file rootname $fsBoxCounter" fsBoxRootName catch "file extension $fsBoxCounter" fsBoxExtension set fsBoxExtension [string trimright $fsBoxExtension "/*@"] if {"$fsBoxExtension" != "" && "$fsBoxRootName" != ""} { set fsBoxInsert 1 set fsBoxLast [.fsBox.pattern.patterns.patterns.menu index last] for {set fsBoxCounter1 0} {$fsBoxCounter1 <= $fsBoxLast} {incr fsBoxCounter1 1} { if {"*$fsBoxExtension" == "[lindex [.fsBox.pattern.patterns.patterns.menu entryconfigure $fsBoxCounter1 -label] 4]"} { set fsBoxInsert 0 } } if {$fsBoxInsert} { .fsBox.pattern.patterns.patterns.menu add command -label "*$fsBoxExtension" -command " global fsBox set fsBox(pattern) \"*$fsBoxExtension\" .fsBox.pattern.pattern delete 0 end .fsBox.pattern.pattern insert 0 \$fsBox(pattern) FSBoxFSShow \[.fsBox.path.path get\] \$fsBox(pattern) \$fsBox(all)" } } } } if {$fsBox(extensions)} { .fsBox.pattern.patterns.patterns.menu add separator } if {$fsBox(extensions) || "[.fsBox.pattern.patterns.patterns.menu index last]" == "none"} { .fsBox.pattern.patterns.patterns.menu add checkbutton -label "Scan extensions" -variable "fsBox(extensions)" -command { global fsBox FSBoxFSShow [.fsBox.path.path get] [.fsBox.pattern.pattern get] $fsBox(all)} } } # Procedure: InputBoxInternal proc InputBoxInternal { inputBoxMessage inputBoxCommandOk inputBoxCommandCancel inputBoxGeometry inputBoxTitle lineNum} { # xf ignore me 6 global inputBox set tmpButtonOpt "" set tmpFrameOpt "" set tmpMessageOpt "" set tmpScaleOpt "" set tmpScrollOpt "" if {"$inputBox(activeBackground)" != ""} { append tmpButtonOpt "-activebackground \"$inputBox(activeBackground)\" " } if {"$inputBox(activeForeground)" != ""} { append tmpButtonOpt "-activeforeground \"$inputBox(activeForeground)\" " } if {"$inputBox(background)" != ""} { append tmpButtonOpt "-background \"$inputBox(background)\" " append tmpFrameOpt "-background \"$inputBox(background)\" " append tmpMessageOpt "-background \"$inputBox(background)\" " } if {"$inputBox(font)" != ""} { append tmpButtonOpt "-font \"$inputBox(font)\" " append tmpMessageOpt "-font \"$inputBox(font)\" " } if {"$inputBox(foreground)" != ""} { append tmpButtonOpt "-foreground \"$inputBox(foreground)\" " append tmpMessageOpt "-foreground \"$inputBox(foreground)\" " } if {"$inputBox(scrollActiveForeground)" != ""} { append tmpScrollOpt "-activeforeground \"$inputBox(scrollActiveForeground)\" " } if {"$inputBox(scrollBackground)" != ""} { append tmpScrollOpt "-background \"$inputBox(scrollBackground)\" " } if {"$inputBox(scrollForeground)" != ""} { append tmpScrollOpt "-foreground \"$inputBox(scrollForeground)\" " } # start build of toplevel if {"[info commands XFDestroy]" != ""} { catch {XFDestroy $inputBox(toplevelName)} } { catch {destroy $inputBox(toplevelName)} } toplevel $inputBox(toplevelName) -borderwidth 0 catch "$inputBox(toplevelName) config $tmpFrameOpt" if {[catch "wm geometry $inputBox(toplevelName) $inputBoxGeometry"]} { wm geometry $inputBox(toplevelName) 350x150 } wm title $inputBox(toplevelName) $inputBoxTitle wm maxsize $inputBox(toplevelName) 1000 1000 wm minsize $inputBox(toplevelName) 100 100 # end build of toplevel message $inputBox(toplevelName).message1 -anchor "$inputBox(anchor)" -justify "$inputBox(justify)" -relief raised -text "$inputBoxMessage" catch "$inputBox(toplevelName).message1 config $tmpMessageOpt" set xfTmpWidth [string range $inputBoxGeometry 0 [expr [string first x $inputBoxGeometry]-1]] if {"$xfTmpWidth" != ""} { # set message size catch "$inputBox(toplevelName).message1 configure -width [expr $xfTmpWidth-10]" } { $inputBox(toplevelName).message1 configure -aspect 1500 } frame $inputBox(toplevelName).frame0 -borderwidth 0 -relief raised catch "$inputBox(toplevelName).frame0 config $tmpFrameOpt" frame $inputBox(toplevelName).frame1 -borderwidth 0 -relief raised catch "$inputBox(toplevelName).frame1 config $tmpFrameOpt" if {$lineNum == 1} { scrollbar $inputBox(toplevelName).frame1.hscroll -orient "horizontal" -relief raised -command "$inputBox(toplevelName).frame1.input view" catch "$inputBox(toplevelName).frame1.hscroll config $tmpScrollOpt" entry $inputBox(toplevelName).frame1.input -relief raised -scrollcommand "$inputBox(toplevelName).frame1.hscroll set" catch "$inputBox(toplevelName).frame1.input config $tmpMessageOpt" $inputBox(toplevelName).frame1.input insert 0 $inputBox($inputBox(toplevelName),inputOne) # bindings bind $inputBox(toplevelName).frame1.input " global inputBox set inputBox($inputBox(toplevelName),inputOne) \[$inputBox(toplevelName).frame1.input get\] if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy $inputBox(toplevelName)} } { catch {destroy $inputBox(toplevelName)} } $inputBoxCommandOk" # packing pack append $inputBox(toplevelName).frame1 $inputBox(toplevelName).frame1.hscroll {bottom fill} $inputBox(toplevelName).frame1.input {top fill expand} } { text $inputBox(toplevelName).frame1.input -relief raised -wrap none -borderwidth 2 -yscrollcommand "$inputBox(toplevelName).frame1.vscroll set" catch "$inputBox(toplevelName).frame1.input config $tmpMessageOpt" scrollbar $inputBox(toplevelName).frame1.vscroll -relief raised -command "$inputBox(toplevelName).frame1.input yview" catch "$inputBox(toplevelName).frame1.vscroll config $tmpScrollOpt" $inputBox(toplevelName).frame1.input insert 1.0 $inputBox($inputBox(toplevelName),inputMulti) # bindings bind $inputBox(toplevelName).frame1.input " global inputBox set inputBox($inputBox(toplevelName),inputMulti) \[$inputBox(toplevelName).frame1.input get 1.0 end\] if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy $inputBox(toplevelName)} } { catch {destroy $inputBox(toplevelName)} } $inputBoxCommandOk" bind $inputBox(toplevelName).frame1.input " global inputBox set inputBox($inputBox(toplevelName),inputMulti) \[$inputBox(toplevelName).frame1.input get 1.0 end\] if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy $inputBox(toplevelName)} } { catch {destroy $inputBox(toplevelName)} } $inputBoxCommandOk" # packing pack append $inputBox(toplevelName).frame1 $inputBox(toplevelName).frame1.vscroll "$inputBox(scrollSide) filly" $inputBox(toplevelName).frame1.input {left fill expand} } button $inputBox(toplevelName).frame0.button0 -text "OK" -command " global inputBox if {$lineNum == 1} { set inputBox($inputBox(toplevelName),inputOne) \[$inputBox(toplevelName).frame1.input get\] } { set inputBox($inputBox(toplevelName),inputMulti) \[$inputBox(toplevelName).frame1.input get 1.0 end\] } if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy $inputBox(toplevelName)} } { catch {destroy $inputBox(toplevelName)} } $inputBoxCommandOk" catch "$inputBox(toplevelName).frame0.button0 config $tmpButtonOpt" button $inputBox(toplevelName).frame0.button1 -text "Cancel" -command " global inputBox if {$lineNum == 1} { set inputBox($inputBox(toplevelName),inputOne) \"\" } { set inputBox($inputBox(toplevelName),inputMulti) \"\" } if {\"\[info commands XFDestroy\]\" != \"\"} { catch {XFDestroy $inputBox(toplevelName)} } { catch {destroy $inputBox(toplevelName)} } $inputBoxCommandCancel" catch "$inputBox(toplevelName).frame0.button1 config $tmpButtonOpt" pack append $inputBox(toplevelName).frame0 $inputBox(toplevelName).frame0.button0 {left fill expand} $inputBox(toplevelName).frame0.button1 {left fill expand} pack append $inputBox(toplevelName) $inputBox(toplevelName).frame0 {bottom fill} $inputBox(toplevelName).frame1 {bottom fill expand} $inputBox(toplevelName).message1 {top fill} } # Procedure: InputBoxMulti proc InputBoxMulti { {inputBoxMessage "Input box:"} {inputBoxCommandOk ""} {inputBoxCommandCancel ""} {inputBoxGeometry "350x150"} {inputBoxTitle "Input box"}} { # xf ignore me 5 ########## # Procedure: InputBoxMulti # Description: show input box with one text line # Arguments: {inputBoxMessage} - message to display # {inputBoxCommandOk} - the command to call after ok # {inputBoxCommandCancel} - the command to call after cancel # {inputBoxGeometry} - the geometry for the window # {inputBoxTitle} - the title for the window # Returns: The entered text # Sideeffects: none # Notes: there exist also a function called: # InputBoxOne - to enter one line text ########## # # global inputBox(activeBackground) - active background color # global inputBox(activeForeground) - active foreground color # global inputBox(anchor) - anchor for message box # global inputBox(background) - background color # global inputBox(erase) - erase previous text # global inputBox(font) - message font # global inputBox(foreground) - foreground color # global inputBox(justify) - justify for message box # global inputBox(scrollActiveForeground) - scrollbar active background color # global inputBox(scrollBackground) - scrollbar background color # global inputBox(scrollForeground) - scrollbar foreground color # global inputBox(scrollSide) - side where scrollbar is located # global inputBox(toplevelName) - the toplevel name # global inputBox(toplevelName,inputMulti) - the text in the text widget global inputBox if {"$inputBoxGeometry" == ""} { set inputBoxGeometry 350x150 } if {$inputBox(erase)} { set inputBox($inputBox(toplevelName),inputMulti) "" } { if {![info exists inputBox($inputBox(toplevelName),inputMulti)]} { set inputBox($inputBox(toplevelName),inputMulti) "" } } InputBoxInternal $inputBoxMessage $inputBoxCommandOk $inputBoxCommandCancel $inputBoxGeometry $inputBoxTitle 2 # wait for the box to be destroyed update idletask grab $inputBox(toplevelName) tkwait window $inputBox(toplevelName) return $inputBox($inputBox(toplevelName),inputMulti) } # Procedure: InputBoxOne proc InputBoxOne { {inputBoxMessage "Input box:"} {inputBoxCommandOk ""} {inputBoxCommandCancel ""} {inputBoxGeometry "350x150"} {inputBoxTitle "Input box"}} { # xf ignore me 5 ########## # Procedure: InputBoxOne # Description: show input box with one text line # Arguments: {inputBoxMessage} - message to display # {inputBoxCommandOk} - the command to call after ok # {inputBoxCommandCancel} - the command to call after cancel # {inputBoxGeometry} - the geometry for the window # {inputBoxTitle} - the title for the window # Returns: The entered text # Sideeffects: none # Notes: there exist also a function called: # InputBoxMulti - to enter multiline text ########## # # global inputBox(activeBackground) - active background color # global inputBox(activeForeground) - active foreground color # global inputBox(anchor) - anchor for message box # global inputBox(background) - background color # global inputBox(erase) - erase previous text # global inputBox(font) - message font # global inputBox(foreground) - foreground color # global inputBox(justify) - justify for message box # global inputBox(scrollActiveForeground) - scrollbar active background color # global inputBox(scrollBackground) - scrollbar background color # global inputBox(scrollForeground) - scrollbar foreground color # global inputBox(scrollSide) - side where scrollbar is located # global inputBox(toplevelName) - the toplevel name # global inputBox(toplevelName,inputOne) - the text in the entry widget global inputBox if {$inputBox(erase)} { set inputBox($inputBox(toplevelName),inputOne) "" } { if {![info exists inputBox($inputBox(toplevelName),inputOne)]} { set inputBox($inputBox(toplevelName),inputOne) "" } } InputBoxInternal $inputBoxMessage $inputBoxCommandOk $inputBoxCommandCancel $inputBoxGeometry $inputBoxTitle 1 # wait for the box to be destroyed update idletask grab $inputBox(toplevelName) tkwait window $inputBox(toplevelName) return $inputBox($inputBox(toplevelName),inputOne) } # Procedure: IsADir proc IsADir { pathName} { # xf ignore me 5 ########## # Procedure: IsADir # Description: check if name is a directory (including symbolic links) # Arguments: pathName - the path to check # Returns: 1 if its a directory, otherwise 0 # Sideeffects: none ########## if {[file isdirectory $pathName]} { return 1 } { catch "file type $pathName" fileType if {"$fileType" == "link"} { if {[catch "file readlink $pathName" linkName]} { return 0 } catch "file type $linkName" fileType while {"$fileType" == "link"} { if {[catch "file readlink $linkName" linkName]} { return 0 } catch "file type $linkName" fileType } return [file isdirectory $linkName] } } return 0 } # Procedure: IsAFile proc IsAFile { fileName} { # xf ignore me 5 ########## # Procedure: IsAFile # Description: check if filename is a file (including symbolic links) # Arguments: fileName - the filename to check # Returns: 1 if its a file, otherwise 0 # Sideeffects: none ########## if {[file isfile $fileName]} { return 1 } { catch "file type $fileName" fileType if {"$fileType" == "link"} { if {[catch "file readlink $fileName" linkName]} { return 0 } catch "file type $linkName" fileType while {"$fileType" == "link"} { if {[catch "file readlink $linkName" linkName]} { return 0 } catch "file type $linkName" fileType } return [file isfile $linkName] } } return 0 } # Procedure: IsASymlink proc IsASymlink { fileName} { # xf ignore me 5 ########## # Procedure: IsASymlink # Description: check if filename is a symbolic link # Arguments: fileName - the path/filename to check # Returns: none # Sideeffects: none ########## catch "file type $fileName" fileType if {"$fileType" == "link"} { return 1 } return 0 } # Procedure: PrologCommand proc PrologCommand {} { prolog {prolog_call [InputBoxOne "Prolog Command:"]} lite } # Procedure: TokioCommand proc TokioCommand {} { prolog {tokio_call [InputBoxOne "Tokio Command:"]} lite } # Procedure: canvaswh proc canvaswh { c scale} { global scalex scaley if {! $scalex && ! $scaley } { regexp {([0-9]+)x([0-9]+)} [wm geometry .] dm w h set h [$c canvasy [expr $h/2]] set w [$c canvasx [expr $w/2]] } else { set h $scaley set w $scalex } $c scale all $w $h $scale $scale } # Procedure: crosshair proc crosshair { c x y} { global scalex scaley if {[$c find withtag cursol] != {}} { $c delete cursol } set cs 5 set x [$c canvasx $x] set y [$c canvasy $y] $c create line $x [expr $y - $cs] $x [expr $y + $cs] -tags cursol $c create line [expr $x - $cs] $y [expr $x + $cs] $y -tags cursol set scalex $x set scaley $y } # Procedure: event proc event { args now} { prolog "tokio_event $args $now" tokio } # Procedure: filehandling proc filehandling { t mode file} { if {[string compare $mode "load"] == 0} { if [file isfile $file] { $t delete 0.0 end set F [open $file r] while {[gets $F string] != -1} { $t insert end "$string\n" } close $F } } else { set line [$t get 0.0 end] # if [file writable $dir] { if [expr [llength $line] > 0] { set F [open $file w] puts $F $line close $F } # } } } # Procedure: lite proc lite { a b} { prolog "event $a $b" lite } # Procedure: text_clear proc text_clear { t} { $t delete 0.0 end } # Internal procedures # Procedure: Alias if {"[info procs Alias]" == ""} { proc Alias { args} { # xf ignore me 7 ########## # Procedure: Alias # Description: establish an alias for a procedure # Arguments: args - no argument means that a list of all aliases # is returned. Otherwise the first parameter is # the alias name, and the second parameter is # the procedure that is aliased. # Returns: nothing, the command that is bound to the alias or a # list of all aliases - command pairs. # Sideeffects: internalAliasList is updated, and the alias # proc is inserted ########## global internalAliasList if {[llength $args] == 0} { return $internalAliasList } { if {[llength $args] == 1} { set xfTmpIndex [lsearch $internalAliasList "[lindex $args 0] *"] if {$xfTmpIndex != -1} { return [lindex [lindex $internalAliasList $xfTmpIndex] 1] } } { if {[llength $args] == 2} { eval "proc [lindex $args 0] {args} {#xf ignore me 4 return \[eval \"[lindex $args 1] \$args\"\]}" set xfTmpIndex [lsearch $internalAliasList "[lindex $args 0] *"] if {$xfTmpIndex != -1} { set internalAliasList [lreplace $internalAliasList $xfTmpIndex $xfTmpIndex "[lindex $args 0] [lindex $args 1]"] } { lappend internalAliasList "[lindex $args 0] [lindex $args 1]" } } { error "Alias: wrong number or args: $args" } } } } } # Procedure: GetSelection if {"[info procs GetSelection]" == ""} { proc GetSelection {} { # xf ignore me 7 ########## # Procedure: GetSelection # Description: get current selection # Arguments: none # Returns: none # Sideeffects: none ########## # the save way set xfSelection "" catch "selection get" xfSelection if {"$xfSelection" == "selection doesn't exist or form \"STRING\" not defined"} { return "" } { return $xfSelection } } } # Procedure: MenuPopupAdd if {"[info procs MenuPopupAdd]" == ""} { proc MenuPopupAdd { xfW xfButton xfMenu {xfModifier ""} {xfCanvasTag ""}} { # xf ignore me 7 # the popup menu handling is from (I already gave up with popup handling :-): # # Copyright 1991,1992 by James Noble. # Everyone is granted permission to copy, modify and redistribute. # This notice must be preserved on all copies or derivates. # ########## # Procedure: MenuPopupAdd # Description: attach a popup menu to widget # Arguments: xfW - the widget # xfButton - the button we use # xfMenu - the menu to attach # {xfModifier} - a optional modifier # {xfCanvasTag} - a canvas tagOrId # Returns: none # Sideeffects: none ########## global tk_popupPriv set tk_popupPriv($xfMenu,focus) "" set tk_popupPriv($xfMenu,grab) "" if {"$xfModifier" != ""} { set press "$xfModifier-" set motion "$xfModifier-" set release "Any-" } { set press "" set motion "" set release "" } bind $xfMenu "<${motion}B${xfButton}-Motion>" "MenuPopupMotion $xfMenu %W %X %Y" bind $xfMenu "<${release}ButtonRelease-${xfButton}>" "MenuPopupRelease $xfMenu %W" if {"$xfCanvasTag" == ""} { bind $xfW "<${press}ButtonPress-${xfButton}>" "MenuPopupPost $xfMenu %X %Y" bind $xfW "<${release}ButtonRelease-${xfButton}>" "MenuPopupRelease $xfMenu %W" } { $xfW bind $xfCanvasTag "<${press}ButtonPress-${xfButton}>" "MenuPopupPost $xfMenu %X %Y" $xfW bind $xfCanvasTag "<${release}ButtonRelease-${xfButton}>" "MenuPopupRelease $xfMenu %W" } } } # Procedure: MenuPopupMotion if {"[info procs MenuPopupMotion]" == ""} { proc MenuPopupMotion { xfMenu xfW xfX xfY} { # xf ignore me 7 ########## # Procedure: MenuPopupMotion # Description: handle the popup menu motion # Arguments: xfMenu - the topmost menu # xfW - the menu # xfX - the root x coordinate # xfY - the root x coordinate # Returns: none # Sideeffects: none ########## global tk_popupPriv if {"[info commands $xfW]" != "" && [winfo ismapped $xfW] && "[winfo class $xfW]" == "Menu" && [info exists tk_popupPriv($xfMenu,focus)] && "$tk_popupPriv($xfMenu,focus)" != "" && [info exists tk_popupPriv($xfMenu,grab)] && "$tk_popupPriv($xfMenu,grab)" != ""} { set xfPopMinX [winfo rootx $xfW] set xfPopMaxX [expr $xfPopMinX+[winfo width $xfW]] if {$xfX >= $xfPopMinX && $xfX <= $xfPopMaxX} { $xfW activate @[expr $xfY-[winfo rooty $xfW]] if {![catch "$xfW entryconfig @[expr $xfY-[winfo rooty $xfW]] -menu" result]} { if {"[lindex $result 4]" != ""} { foreach binding [bind $xfMenu] { bind [lindex $result 4] $binding [bind $xfMenu $binding] } } } } { $xfW activate none } } } } # Procedure: MenuPopupPost if {"[info procs MenuPopupPost]" == ""} { proc MenuPopupPost { xfMenu xfX xfY} { # xf ignore me 7 ########## # Procedure: MenuPopupPost # Description: post the popup menu # Arguments: xfMenu - the menu # xfX - the root x coordinate # xfY - the root x coordinate # Returns: none # Sideeffects: none ########## global tk_popupPriv if {"[info commands $xfMenu]" != ""} { if {![info exists tk_popupPriv($xfMenu,focus)]} { set tk_popupPriv($xfMenu,focus) [focus] } { if {"$tk_popupPriv($xfMenu,focus)" == ""} { set tk_popupPriv($xfMenu,focus) [focus] } } set tk_popupPriv($xfMenu,grab) $xfMenu catch "$xfMenu activate none" catch "$xfMenu post $xfX $xfY" catch "focus $xfMenu" catch "grab -global $xfMenu" } } } # Procedure: MenuPopupRelease if {"[info procs MenuPopupRelease]" == ""} { proc MenuPopupRelease { xfMenu xfW} { # xf ignore me 7 ########## # Procedure: MenuPopupRelease # Description: remove the popup menu # Arguments: xfMenu - the topmost menu widget # xfW - the menu widget # Returns: none # Sideeffects: none ########## global tk_popupPriv global tkVersion if {"[info commands $xfW]" != "" && [winfo ismapped $xfW] && "[winfo class $xfW]" == "Menu" && [info exists tk_popupPriv($xfMenu,focus)] && "$tk_popupPriv($xfMenu,focus)" != "" && [info exists tk_popupPriv($xfMenu,grab)] && "$tk_popupPriv($xfMenu,grab)" != ""} { if {$tkVersion >= 3.0} { catch "grab release $tk_popupPriv($xfMenu,grab)" } { catch "grab none" } catch "focus $tk_popupPriv($xfMenu,focus)" set tk_popupPriv($xfMenu,focus) "" set tk_popupPriv($xfMenu,grab) "" if {"[$xfW index active]" != "none"} { $xfW invoke active; catch "$xfMenu unpost" } } catch "$xfMenu unpost" } } # Procedure: NoFunction if {"[info procs NoFunction]" == ""} { proc NoFunction { args} { # xf ignore me 7 ########## # Procedure: NoFunction # Description: do nothing (especially with scales and scrollbars) # Arguments: args - a number of ignored parameters # Returns: none # Sideeffects: none ########## } } # Procedure: SN if {"[info procs SN]" == ""} { proc SN { {xfName ""}} { # xf ignore me 7 ########## # Procedure: SN # Description: map a symbolic name to the widget path # Arguments: xfName # Returns: the symbolic name # Sideeffects: none ########## SymbolicName $xfName } } # Procedure: SymbolicName if {"[info procs SymbolicName]" == ""} { proc SymbolicName { {xfName ""}} { # xf ignore me 7 ########## # Procedure: SymbolicName # Description: map a symbolic name to the widget path # Arguments: xfName # Returns: the symbolic name # Sideeffects: none ########## global symbolicName if {"$xfName" != ""} { set xfArrayName "" append xfArrayName symbolicName ( $xfName ) if {![catch "set \"$xfArrayName\"" xfValue]} { return $xfValue } { if {"[info commands XFProcError]" != ""} { XFProcError "Unknown symbolic name:\n$xfName" } { puts stderr "XF error: unknown symbolic name:\n$xfName" } } } return "" } } # Procedure: Unalias if {"[info procs Unalias]" == ""} { proc Unalias { aliasName} { # xf ignore me 7 ########## # Procedure: Unalias # Description: remove an alias for a procedure # Arguments: aliasName - the alias name to remove # Returns: none # Sideeffects: internalAliasList is updated, and the alias # proc is removed ########## global internalAliasList set xfIndex [lsearch $internalAliasList "$aliasName *"] if {$xfIndex != -1} { rename $aliasName "" set internalAliasList [lreplace $internalAliasList $xfIndex $xfIndex] } } } # application parsing procedure proc XFLocalParseAppDefs {xfAppDefFile} { global xfAppDefaults # basically from: Michael Moore if {[file exists $xfAppDefFile] && [file readable $xfAppDefFile] && "[file type $xfAppDefFile]" == "link"} { catch "file type $xfAppDefFile" xfType while {"$xfType" == "link"} { if {[catch "file readlink $xfAppDefFile" xfAppDefFile]} { return } catch "file type $xfAppDefFile" xfType } } if {!("$xfAppDefFile" != "" && [file exists $xfAppDefFile] && [file readable $xfAppDefFile] && "[file type $xfAppDefFile]" == "file")} { return } if {![catch "open $xfAppDefFile r" xfResult]} { set xfAppFileContents [read $xfResult] close $xfResult foreach line [split $xfAppFileContents "\n"] { # backup indicates how far to backup. It applies to the # situation where a resource name ends in . and when it # ends in *. In the second case you want to keep the * # in the widget name for pattern matching, but you want # to get rid of the . if it is the end of the name. set backup -2 set line [string trim $line] if {[string index $line 0] == "#" || "$line" == ""} { # skip comments and empty lines continue } set list [split $line ":"] set resource [string trim [lindex $list 0]] set i [string last "." $resource] set j [string last "*" $resource] if {$j > $i} { set i $j set backup -1 } incr i set name [string range $resource $i end] incr i $backup set widname [string range $resource 0 $i] set value [string trim [lindex $list 1]] if {"$widname" != "" && "$widname" != "*"} { # insert the widget and resourcename to the application # defaults list. if {![info exists xfAppDefaults]} { set xfAppDefaults "" } lappend xfAppDefaults [list $widname [string tolower $name] $value] } } } } # application loading procedure proc XFLocalLoadAppDefs {{xfClasses ""} {xfPriority "startupFile"} {xfAppDefFile ""}} { global env if {"$xfAppDefFile" == ""} { set xfFileList "" if {[info exists env(XUSERFILESEARCHPATH)]} { append xfFileList [split $env(XUSERFILESEARCHPATH) :] } if {[info exists env(XAPPLRESDIR)]} { append xfFileList [split $env(XAPPLRESDIR) :] } if {[info exists env(XFILESEARCHPATH)]} { append xfFileList [split $env(XFILESEARCHPATH) :] } append xfFileList " /usr/lib/X11/app-defaults" append xfFileList " /usr/X11/lib/X11/app-defaults" foreach xfCounter1 $xfClasses { foreach xfCounter2 $xfFileList { set xfPathName $xfCounter2 if {[regsub -all "%N" "$xfPathName" "$xfCounter1" xfResult]} { set xfPathName $xfResult } if {[regsub -all "%T" "$xfPathName" "app-defaults" xfResult]} { set xfPathName $xfResult } if {[regsub -all "%S" "$xfPathName" "" xfResult]} { set xfPathName $xfResult } if {[regsub -all "%C" "$xfPathName" "" xfResult]} { set xfPathName $xfResult } if {[file exists $xfPathName] && [file readable $xfPathName] && ("[file type $xfPathName]" == "file" || "[file type $xfPathName]" == "link")} { catch "option readfile $xfPathName $xfPriority" if {"[info commands XFParseAppDefs]" != ""} { XFParseAppDefs $xfPathName } { if {"[info commands XFLocalParseAppDefs]" != ""} { XFLocalParseAppDefs $xfPathName } } } { if {[file exists $xfCounter2/$xfCounter1] && [file readable $xfCounter2/$xfCounter1] && ("[file type $xfCounter2/$xfCounter1]" == "file" || "[file type $xfCounter2/$xfCounter1]" == "link")} { catch "option readfile $xfCounter2/$xfCounter1 $xfPriority" if {"[info commands XFParseAppDefs]" != ""} { XFParseAppDefs $xfCounter2/$xfCounter1 } { if {"[info commands XFLocalParseAppDefs]" != ""} { XFLocalParseAppDefs $xfCounter2/$xfCounter1 } } } } } } } { # load a specific application defaults file if {[file exists $xfAppDefFile] && [file readable $xfAppDefFile] && ("[file type $xfAppDefFile]" == "file" || "[file type $xfAppDefFile]" == "link")} { catch "option readfile $xfAppDefFile $xfPriority" if {"[info commands XFParseAppDefs]" != ""} { XFParseAppDefs $xfAppDefFile } { if {"[info commands XFLocalParseAppDefs]" != ""} { XFLocalParseAppDefs $xfAppDefFile } } } } } # application setting procedure proc XFLocalSetAppDefs {{xfWidgetPath "."}} { global xfAppDefaults if {![info exists xfAppDefaults]} { return } foreach xfCounter $xfAppDefaults { if {"$xfCounter" == ""} { break } set widname [lindex $xfCounter 0] if {[string match $widname ${xfWidgetPath}] || [string match "${xfWidgetPath}*" $widname]} { set name [string tolower [lindex $xfCounter 1]] set value [lindex $xfCounter 2] # Now lets see how many tcl commands match the name # pattern specified. set widlist [info command $widname] if {"$widlist" != ""} { foreach widget $widlist { # make sure this command is a widget. if {![catch "winfo id $widget"] && [string match "${xfWidgetPath}*" $widget]} { catch "$widget configure -$name $value" } } } } } } # prepare auto loading global auto_path global tk_library global xfLoadPath foreach xfElement [eval list [split $xfLoadPath :] $auto_path] { if {[file exists $xfElement/tclIndex]} { lappend auto_path $xfElement } } catch "unset auto_index" catch "unset auto_oldpath" catch "unset auto_execs" # initialize global variables proc InitGlobals {} { global {checkbutton5} set {checkbutton5} {0} global {fsBox} set {fsBox(activeBackground)} {} set {fsBox(activeForeground)} {} set {fsBox(all)} {0} set {fsBox(background)} {} set {fsBox(button)} {0} set {fsBox(extensions)} {0} set {fsBox(font)} {} set {fsBox(foreground)} {} set {fsBox(internalPath)} {/user/kono/ITL/demo} set {fsBox(name)} {ahoaho} set {fsBox(path)} {/user/kono/ITL/demo} set {fsBox(pattern)} {*} set {fsBox(scrollActiveForeground)} {} set {fsBox(scrollBackground)} {} set {fsBox(scrollForeground)} {} set {fsBox(scrollSide)} {left} set {fsBox(showPixmap)} {0} global {inputBox} set {inputBox(activeBackground)} {} set {inputBox(activeForeground)} {} set {inputBox(anchor)} {n} set {inputBox(background)} {} set {inputBox(erase)} {1} set {inputBox(font)} {} set {inputBox(foreground)} {} set {inputBox(justify)} {center} set {inputBox(scrollActiveForeground)} {} set {inputBox(scrollBackground)} {} set {inputBox(scrollForeground)} {} set {inputBox(scrollSide)} {left} set {inputBox(toplevelName)} {.inputBox} global {scalex} set {scalex} {326} global {scaley} set {scaley} {194} global {verbose} set {verbose} {0} # please don't modify the following # variables. They are needed by xf. global {autoLoadList} set {autoLoadList(xf-disp)} {0} global {internalAliasList} set {internalAliasList} {} global {moduleList} set {moduleList(xf-disp)} {} global {preloadList} set {preloadList(xfInternal)} {} global {symbolicName} set {symbolicName(canvas)} {.top0.frame0.canvas2} set {symbolicName(diag)} {.top0.frame6.button8} set {symbolicName(entry)} {.frame.frame4.text0} set {symbolicName(execute)} {.top0.frame6.button10} set {symbolicName(generate)} {.top0.frame1.button0} set {symbolicName(map)} {.top0.frame1.button13} set {symbolicName(root)} {.} set {symbolicName(states)} {.top0.frame1.label6} set {symbolicName(verbose)} {.frame3.checkbutton5} set {symbolicName(verify)} {.frame3.button7} global {xfWmSetPosition} set {xfWmSetPosition} {} global {xfWmSetSize} set {xfWmSetSize} {} global {xfAppDefToplevels} set {xfAppDefToplevels} {} } # initialize global variables InitGlobals # display/remove toplevel windows. ShowWindow. global xfShowWindow.top0 set xfShowWindow.top0 1 ShowWindow.top0 # load default bindings. if {[info exists env(XF_BIND_FILE)] && "[info procs XFShowHelp]" == ""} { source $env(XF_BIND_FILE) } # parse and apply application defaults. XFLocalLoadAppDefs Xf-disp XFLocalSetAppDefs # eof #