/usr/share/blt2.4/demos/tabset4.tcl is in blt-demo 2.4z-7ubuntu2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #!/usr/bin/wish
package require BLT
# --------------------------------------------------------------------------
# Starting with Tcl 8.x, the BLT commands are stored in their own
# namespace called "blt". The idea is to prevent name clashes with
# Tcl commands and variables from other packages, such as a "table"
# command in two different packages.
#
# You can access the BLT commands in a couple of ways. You can prefix
# all the BLT commands with the namespace qualifier "blt::"
#
# blt::graph .g
# blt::table . .g -resize both
#
# or you can import all the command into the global namespace.
#
# namespace import blt::*
# graph .g
# table . .g -resize both
#
# --------------------------------------------------------------------------
if { $tcl_version >= 8.0 } {
namespace import blt::*
namespace import -force blt::tile::*
}
source scripts/demo.tcl
#bltdebug 100
source scripts/stipples.tcl
tabset .t \
-samewidth yes \
-side left \
-textside bottom \
-textside top \
-bg red \
-tiers 1 \
-scrollincrement 10 \
-scrollcommand { .s set } \
-rotate 0 \
-selectcommand { MakePhoto %W %n }
scrollbar .s -command { .t view } -orient horizontal
option clear
option add *Tabset.Tab.font -*-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
set files [glob ./images/*.gif]
set files [lsort $files]
#set vertFilter sinc
#set horzFilter sinc
set vertFilter none
set horzFilter none
proc ResizePhoto { src dest maxSize } {
set maxSize [winfo fpixels . $maxSize]
set w [image width $src]
set h [image height $src]
set sw [expr double($maxSize) / $w]
set sh [expr double($maxSize) / $h]
set s [expr min($sw, $sh)]
set w [expr round($s * $w)]
set h [expr round($s * $h)]
$dest configure -width $w -height $h
global horzFilter vertFilter
winop resample $src $dest $horzFilter $vertFilter
}
image create photo src
image create photo dest
label .t.label -image dest -bg purple
proc MakePhoto { w name } {
set file ./images/$name.gif
src configure -file $file
set width [$w tab pagewidth]
set height [$w tab pageheight]
if { $width < $height } {
ResizePhoto src dest $width
} else {
ResizePhoto src dest $height
}
.t tab dockall
.t tab configure $name -window .t.label -padx 4m -pady 4m -fill both
}
table . \
.t 0,0 -fill both \
.s 1,0 -fill x
table configure . r1 -resize none
focus .t
foreach f $files {
src configure -file $f
set f [file tail [file root $f]]
set thumb [image create photo]
ResizePhoto src $thumb 0.5i
.t insert end $f -image $thumb -fill both
}
.t focus 0
.t invoke 0
|