class TkMove def initialize( canvas, tag ) @lastx, @lasty = 0, 0 bind( canvas, tag ) end def bind( canvas, tag ) canvas.itembind(tag,'1',proc{|x,y| self.plotDown canvas, x, y }, "%x %y") canvas.itembind(tag, 'B1-Motion',proc{|x,y| self.plotMove canvas, x, y }, "%x %y") end def unbind( canvas, tag ) canvas.itembind(tag, '1', proc{}) canvas.itembind(tag, 'B1-Motion', proc{}) end def plotDown (w, x, y) w.dtag 'selected' w.addtag_withtag 'selected', 'current' w.raise 'current' @lastx, @lasty = x, y end def plotMove (w, x, y) w.move 'selected', x - @lastx, y - @lasty @lastx, @lasty = x, y end end