Posted to tcl by kbk at Fri Feb 25 20:13:39 GMT 2011view pretty
proc startSelection {x y} {
variable xstart
variable ystart
set xstart [.c canvasx $x]
set ystart [.c canvasy $y]
.c create rectangle $xstart $ystart $xstart $ystart -tags selector \
-outline green -dash - -fill {}
}
proc adjustSelection {x y} {
variable xstart
variable ystart
set x [.c canvasx $x]
set y [.c canvasy $y]
.c coords selector $xstart $ystart $x $y
return [list $xstart $ystart $x $y]
}
proc endSelection {x y b} {
lassign [adjustSelection $x $y] x0 y0 x1 y1
.c delete selector
# At this point you probably want to do [.c find overlapping $x0 $y0 $x1 $y1] and
# do something with the result.
}
bind .c <ButtonPress-1> [list startSelection %x %y]
bind .c <B1-Motion> [list adjustSelection %x %y]
bind .c <ButtonRelease-1> [list endSelection %x %y %b]