obj method canvaseditor selectByRect {{how enclosed}} {
lassign [$self canvas coords selection] selx0 sely0 selx1 sely1
$self canvas delete selection
set items [$self canvas find $how $selx0 $sely0 $selx1 $sely1]
set objects ""
foreach item $items {
if {[$self canvas itemcget $item -state] eq "disabled"} continue
foreach tag [$self canvas gettags $item] {
if {[regexp {(line|fill)(::.*)} $tag - class object]} then {
lappend objects [$object topgroup]
}
}
}
set objects [lunique $objects]
if {$how eq "enclosed"} then {
set result {}
foreach object $objects {
lassign [$object bbox] objx0 objy0 objx1 objy1
if {$selx0 > $objx0} continue
if {$sely0 > $objy0} continue
if {$selx1 < $objx1} continue
if {$sely1 < $objy1} continue
lappend result $object
}
} else {
set result $objects
}
$self basicBindings on
if {$result ne {}} then {
$self select {*}$result
}
}
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z