require 'tk' class Coords def initialize( canvas ) @canvas = canvas end def dialog( item ) @coords = item.coords() w = TkToplevel.new TkLabel.new(w, 'text'=>'coords').pack f1 = TkFrame.new(w).pack('fill'=>'x') scr = TkScrollbar.new(f1).pack('side'=>'right', 'fill'=>'y') e = TkText.new(f1, 'width'=>30, 'height'=>6).pack('side'=>'right') e.yscrollbar( scr ) e.insert('1.0', @coords) f2 = TkFrame.new(w).pack('fill'=>'x') TkButton.new(f2, 'text'=>'apply', 'command'=>proc{ @coords = e.get('1.0', 'end').chop eval( "item.coords(" + @coords.gsub(/\s/,',') + ")" ) }).pack('side'=>'left') TkButton.new(f2,'text'=>'dismiss', 'command'=>proc{ w.destroy }).pack('side'=>'right') end end module CoordsTest def test c = TkCanvas.new.pack item = TkcLine.new(c, 50, 50, 150, 100, 'width'=>2) conf = Coords.new(c) TkButton.new(nil, 'text'=>'coords', 'command'=>proc{ conf.dialog( item ) }).pack Tk.mainloop end end