|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace eval ::tix { |
|
} |
|
|
|
proc tixScriptVersion {} { return $::tix_version } |
|
proc tixScriptPatchLevel {} { return $::tix_patchLevel } |
|
|
|
proc ::tix::Init {dir} { |
|
global tix env tix_library tcl_platform auto_path |
|
|
|
if {[info exists tix(initialized)]} { |
|
return |
|
} |
|
|
|
if {![info exists tix_library]} { |
|
|
|
set tix_library "" |
|
} elseif {[file isdir $tix_library]} { |
|
if {![info exists auto_path] || |
|
[lsearch $auto_path $tix_library] == -1} { |
|
lappend auto_path $tix_library |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
package require Tcl 8.4 |
|
package require -exact Tix 8.4.3 |
|
|
|
|
|
|
|
|
|
foreach file { |
|
fs.tcl |
|
Tix.tcl Event.tcl |
|
Balloon.tcl BtnBox.tcl |
|
CObjView.tcl ChkList.tcl |
|
ComboBox.tcl Compat.tcl |
|
Console.tcl Control.tcl |
|
DefSchm.tcl DialogS.tcl |
|
DirBox.tcl DirDlg.tcl |
|
DirList.tcl DirTree.tcl |
|
DragDrop.tcl DtlList.tcl |
|
EFileBox.tcl EFileDlg.tcl |
|
FileBox.tcl FileCbx.tcl |
|
FileDlg.tcl FileEnt.tcl |
|
FloatEnt.tcl |
|
Grid.tcl HList.tcl |
|
HListDD.tcl IconView.tcl |
|
LabEntry.tcl LabFrame.tcl |
|
LabWidg.tcl ListNBk.tcl |
|
Meter.tcl MultView.tcl |
|
NoteBook.tcl OldUtil.tcl |
|
OptMenu.tcl PanedWin.tcl |
|
PopMenu.tcl Primitiv.tcl |
|
ResizeH.tcl SGrid.tcl |
|
SHList.tcl SListBox.tcl |
|
STList.tcl SText.tcl |
|
SWidget.tcl SWindow.tcl |
|
Select.tcl Shell.tcl |
|
SimpDlg.tcl StackWin.tcl |
|
StatBar.tcl StdBBox.tcl |
|
StdShell.tcl TList.tcl |
|
Tree.tcl |
|
Utils.tcl VResize.tcl |
|
VStack.tcl VTree.tcl |
|
Variable.tcl WInfo.tcl |
|
} { |
|
uplevel \#0 [list source [file join $dir $file]] |
|
} |
|
|
|
|
|
|
|
tixAppContext tix |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach w { |
|
HList TList Grid ComboBox Control FloatEntry |
|
LabelEntry ScrolledGrid ScrolledListBox |
|
} { |
|
tix${w}Bind |
|
} |
|
|
|
rename ::tix::Init "" |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
proc tixWidgetClassEx {name classDecl} { |
|
tixWidgetClass $name [uplevel [list subst $classDecl]] |
|
} |
|
|
|
|
|
|
|
|
|
interp alias {} tixFileJoin {} file join |
|
interp alias {} tixStrEq {} string equal |
|
proc tixTrue {args} { return 1 } |
|
proc tixFalse {args} { return 0 } |
|
proc tixStringSub {var fromStr toStr} { |
|
upvar 1 var var |
|
set var [string map $var [list $fromStr $toStr]] |
|
} |
|
proc tixGetBoolean {args} { |
|
set len [llength [info level 0]] |
|
set nocomplain 0 |
|
if {$len == 3} { |
|
if {[lindex $args 0] ne "-nocomplain"} { |
|
return -code error "wrong \# args:\ |
|
must be [lindex [info level 0] 0] ?-nocomplain? string" |
|
} |
|
set nocomplain 1 |
|
set val [lindex $args 1] |
|
} elseif {$len != 2} { |
|
return -code error "wrong \# args:\ |
|
must be [lindex [info level 0] 0] ?-nocomplain? string" |
|
} else { |
|
set val [lindex $args 0] |
|
} |
|
if {[string is boolean -strict $val] || $nocomplain} { |
|
return [string is true -strict $val] |
|
} elseif {$nocomplain} { |
|
return 0 |
|
} else { |
|
return -code error "\"$val\" is not a valid boolean" |
|
} |
|
} |
|
interp alias {} tixVerifyBoolean {} tixGetBoolean |
|
proc tixGetInt {args} { |
|
set len [llength [info level 0]] |
|
set nocomplain 0 |
|
set trunc 0 |
|
for {set i 1} {$i < $len-1} {incr i} { |
|
set arg [lindex $args 0] |
|
if {$arg eq "-nocomplain"} { |
|
set nocomplain 1 |
|
} elseif {$arg eq "-trunc"} { |
|
set trunc 1 |
|
} else { |
|
return -code error "wrong \# args: must be\ |
|
[lindex [info level 0] 0] ?-nocomplain? ?-trunc? string" |
|
} |
|
} |
|
if {$i != $len-1} { |
|
return -code error "wrong \# args: must be\ |
|
[lindex [info level 0] 0] ?-nocomplain? ?-trunc? string" |
|
} |
|
set val [lindex $args end] |
|
set code [catch {expr {round($val)}} res] |
|
if {$code} { |
|
if {$nocomplain} { |
|
return 0 |
|
} else { |
|
return -code error "\"$val\" cannot be converted to integer" |
|
} |
|
} |
|
if {$trunc} { |
|
return [expr {int($val)}] |
|
} else { |
|
return $res |
|
} |
|
} |
|
proc tixFile {option filename} { |
|
set len [string length $option] |
|
if {$len > 1 && [string equal -length $len $option "tildesubst"]} { |
|
set code [catch {file normalize $filename} res] |
|
if {$code == 0} { |
|
set filename $res |
|
} |
|
} elseif {$len > 1 && [string equal -length $len $option "trimslash"]} { |
|
|
|
set filename [file join $filename] |
|
if {$filename ne "/"} { |
|
set filename [string trimright $filename "/"] |
|
} |
|
} else { |
|
return -code error "unknown option \"$option\",\ |
|
must be tildesubst or trimslash" |
|
} |
|
return $filename |
|
} |
|
|
|
interp alias {} tixRaiseWindow {} raise |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if {[info exists tix_library]} { |
|
::tix::Init [file dirname [info script]] |
|
} |
|
|