).Below you'll find soon a snit widget providing this widget in pure tcl. It is based on the gradient work of George Peter Staplin.--- 26th. August 2005. I enhanced the code a bit. When the color resolution of the used display is too low (read != 32bit) to paint a smooth gradient, a plain background using bg0 is painted. This avoids unpleasent strips.Author Carsten Zerbst #
# Gradient Panel
#
# a clone of Karsten Lentzsch GradientPanel in Tcl
# using the canvas and the gradient code found in
# tclers wiki. It is implemented using Snit as pure tcl
# megawidget.
#
#
# Links:
# Karsten Lentzsch www.jgoodies.com
# Snit: http://www.wjduquette.com/snit/
# Gradient: http://wiki.tcl.tk/6100
#
# Author: Carsten Zerbst carsten.zerbst@groy-groy.de
#
package require snit
package require Tk
package require Img
package provide gradientpanel 0.1
snit::widgetadaptor gradientpanel {
option -font
option -text
option -title
option -bg0 -default white
option -bg1
option -fg -default black
option -icon
constructor { args } {
# Create a canvas widget
installhull [ canvas $self]
$self configure -height 125
$self configurelist $args
# if nothing set, determine gradient color
if {[string length [$self cget -bg1]] == 0} {
# try to determine new end color
frame $self.dummyframe
$self configure -bg1 [ $self.dummyframe cget -bg]
destroy $self.dummyframe
}
# same for font
if {[string length [$self cget -font]] == 0} {
label $self.dummylabel
$self configure -font [ $self.dummylabel cget -font]
destroy $self.dummylabel
}
$self _drawText
$self _drawGradient
bind $win <Configure> [list $self _drawGradient ]
}
# this delegates some methods to be able to manipulate
# the canvas context
delegate method * to hull
delegate option * to hull
# use to draw the text
method _drawText { } {
set font [$self cget -font ]
$self delete text
$self create text 30 30 -text [$self cget -title] -anchor w \
-font $font -fill [$self cget -fg] -tag [list text title]
set y 50
if {[llength $font] > 2} {
set messagefont [lreplace $font 2 2 normal]
} else {
set messagefont $font
}
foreach tok [split [$self cget -text] \n] {
$self create text 40 $y -text $tok -anchor w \
-font $messagefont -fill [$self cget -fg] \
-tag [list text message]
incr y 18
}
}
# used to redraw the gradient and icon after resize
method _drawGradient { } {
$self delete gradient
set width [winfo width $win]
set height [winfo height $win]
set max $width;
if {[catch {winfo rgb $self [ $self cget -bg0 ]} color1]} {
puts stderr $color1
return -code error "Invalid color [ $self cget -bg0 ]"
}
if {[catch {winfo rgb $self [ $self cget -bg1 ]} color2]} {
return -code error "Invalid color [ $self cget -bg1 ]"
}
# Check color resolution. Low color resolution results in stripes
# instead of a smooth gradient. In this case we better use only
# bg0 as background
if {[lindex [ winfo rgb $self #010000 ] 0] != 257 } {
$win create rectangle 0 0 $width $height -tags gradient -fill [ $self cget -bg0 ]
} else {
foreach {r1 g1 b1} $color1 break
foreach {r2 g2 b2} $color2 break
set rRange [expr $r2.0 - $r1]
set gRange [expr $g2.0 - $g1]
set bRange [expr $b2.0 - $b1]
set rRatio [expr $rRange / $max]
set gRatio [expr $gRange / $max]
set bRatio [expr $bRange / $max]
for {set i 0} {$i < $max} {incr i } {
set nR [expr int( $r1 + ($rRatio * $i) )]
set nG [expr int( $g1 + ($gRatio * $i) )]
set nB [expr int( $b1 + ($bRatio * $i) )]
set col [format {%4.4x} $nR]
append col [format {%4.4x} $nG]
append col [format {%4.4x} $nB]
$win create line $i 0 $i $height -tags gradient -fill #${col}
}
}
$self lower gradient
# draw icon
$self delete icon
set icon [$self cget -icon]
if {[string length $icon ] > 0} {
set distance 10
set xmin [expr [lindex [$win bbox text] 2] + $distance]
set width [ winfo width $self]
set x [expr $width - [image width $icon ]]
if { $xmin > $x } {
set x $xmin
}
set y [ winfo height $self]
$self create image $x $y -image $icon -anchor sw -tag icon
}
}
}
A simple example looks like this
package require Tk
if {[catch {package require gradientpanel}]} {
source gradientpanel.tcl
}
set bild "R0lGODlhnAB9AOcAAP39/f7+/v////n5+fDw8Ofn5+jo6Obm5vf398rKytTU
1NPT09HR0bm5ucDAwMLCwry8vOvr66CgoF1dXUlJSUVFRWpqanV1dY2NjZeX
l39/f4uLi7+/v+3t7dDQ0GxsbDIyMjU1NVBQUJmZmU1NTVtbW09PT1hYWG1t
ba6urvz8/PHx8enp6eDg4Nra2s7Ozpqamjs7O0FBQYSEhHd3d0dHRz4+PkRE
REhISEpKSlNTU3BwcK2trcHBwc/Pz7u7u7CwsD09PVZWVl5eXk5OTkxMTEND
Q1dXV35+fjo6Ojk5OVJSUnFxcW5ubrW1tZycnJOTk4qKipubm319fVxcXEtL
S4mJiVlZWTY2NjAwMC8vLy4uLjExMUBAQGNjY76+vtvb29zc3N7e3tjY2MvL
y6ysrHZ2dl9fX8nJyTQ0NFpaWmZmZmtra6Ojo+zs7O7u7uTk5KWlpZSUlIGB
gWlpaWBgYHJycq+vr4WFhYyMjIODg9fX19nZ2erq6tbW1rKysqSkpHp6eo+P
j+Xl5eHh4aurq4CAgLGxsaioqIeHh0JCQnx8fJiYmO/v7/Pz8/X19d3d3czM
zMTExM3NzY6OjkZGRlVVVZWVldLS0vr6+vj4+PT09MjIyKenp3Nzc3R0dHl5
eePj4+Li4tXV1bS0tKGhoWdnZ29vb5+fn8fHx6qqqpaWlp2dnWhoaIKCglRU
VFFRUWJiYmRkZJCQkLq6ujw8PD8/P2VlZbOzs6ampqmpqXh4eHt7e4aGhmFh
YTg4ODc3NzMzM7a2tsXFxZ6enoiIiJKSkpGRkb29vbe3t6Kiori4uN/f38PD
w/Ly8sbGxi0tLSwsLCgoKCUlJSYmJioqKisrKycnJykpKSMjIyEhISAgICIi
IiQkJB4eHh8fH///////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////yH5BAEKAP8ALAAAAACcAH0AAAj+AP8JHEiwoMGD
CBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX
MGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGRAI4qRRhAAIABBAoYOLC0aoAA
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
WIZeSIRT8C6OCAgAOw=="
#
# Example code
#
proc example { } {
#set m1 [ image create photo -file möwe.png]
set m1 [ image create photo -data $::bild]
set text [join [list "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." \
"Pellentesque at tortor. Morbi ac wisi imperdiet enim" \
"mattis egestas. Sed ac"] \n]
set title "Lorem Ipsum"
set gp [ gradientpanel create .test -text $text -title $title -icon $m1 ]
label .rest -text "The Rest of Your Panel"
grid $gp -sticky ew
grid .rest -sticky nesw
grid columnconfigure . 0 -weight 1
grid rowconfigure . 1 -weight 1
wm geometry . 600x300
}
example
escargo 10 Aug 2005 - Added code to _drawText for cases where the font name is less than 3 elements; modified the example so that if the page is processed by wish-reaper the single file becomes executable.
schlenk - How about adding this widget to tklib?One minor suggestion: add an option -titlefont to configure the font for the title indepentently from the rest of the text

