obj method canvaseditor warpMode {{mode both}} { set canvas [my canvas] $self statusLine "" set dot [$self nearestDot -selected -end] $self pointerToDot $dot $self memory currentDot $dot $self memory transformation "warp $mode" # $self memory dot $dot $self memory found "" # set x [$dot cget -x] set y [$dot cget -y] $self canvas configure -cursor crosshair $self selected blink off foreach obj [my selection] { if {$dot in [$obj dots]} then { lappend objects $obj } } switch -exact -- $mode { horizontal { set line [subst -nocommand { $dot configure -x [$self canvasx %x] }] } vertical { set line [subst -nocommand { $dot configure -y [$self canvasy %y] }] } default { set line [subst -nocommand { $dot configure -x [$self canvasx %x] -y [$self canvasy %y] }] } } lappend lines [string trim $line] lappend lines "$dot lines draw coords" # set code [join $lines \n] # $self memory before [$self dump] # $self basicBindings off $self statusLine Warp $mode $self snapMode on after idle [list bind $canvas <Motion> $code] bind $canvas <<Click>> "$self finishTransform dump" }
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z