obj method canvaseditor createLine {{direction both}} { set canvas [my canvas] lassign [pointerXY] x y # set x [$self canvasx $x] set y [$self canvasy $y] # set line [new line $x $y $x $y] $self select $line # $self initUndoRedo " $self select $line draw no " " $self select $line draw yes " # lassign [$line dots] a b $self basicBindings off $self statusLine Draw line $direction $self pointerToDot $b switch -exact -- $direction { horizontal { bind $canvas <Motion> [subst -nocommand { $b configure -x [$self canvasx %x] -y $y }] } vertical { bind $canvas <Motion> [subst -nocommand { $b configure -x $x -y [$self canvasy %y] }] } default { bind $canvas <Motion> [subst -nocommand { $b configure\ -x [$self canvasx %x]\ -y [$self canvasy %y] }] } } bind $canvas <Motion> "+$line draw" bind $canvas <<Click>> " $self basicBindings $self select $line $self snapMode off $self select $line " $self canvas configure -cursor pencil $line draw $self snapMode on }
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z