"Drag" is an action idiom common to several [GUI] canons, roughly co-ordinate with, say "[pan]". It most often appears in discussions of [drag and drop] facilities. It only takes a few lines of [Tk] to exhibit dragging. Here is an example [Michael Kraus] offered in [the comp.lang.tcl newsgroup]: This demo creates a small window consisting of a single button, that can be dragged around on the screen. Clicking the button quits the program. ---- pack [button .b -text "The Button" -command exit] wm overrideredirect . 1 bind .b <1> { set iX0 [expr %X-[winfo rootx .b]] set iY0 [expr %Y-[winfo rooty .b]] set bMoved 0 } bind .b { wm geometry . +[expr %X-$iX0]+[expr %Y-$iY0] set bMoved 1 } bind .b { if { $bMoved } break } ---- [Lars H]: The following demonstrates one way of dragging a [canvas] -- change which part of the coordinate system is visible in the window, by pressing and dragging button 1. pack [canvas .c] -expand 1 -fill both .c create text 10 10 -anchor nw -text "Hello world!" .c create line {-100 0 100 0} -arrow last .c create line {0 -100 0 100} -arrow last bind .c {%W scan mark %x %y} bind .c {%W scan dragto %x %y 1} This is particularly useful with quick hacks, where one displays some piece of graphic in a canvas and doesn't know for sure whether all of it fits in the visible part of the canvas. ---- [[Next up: exhibit dragging an ''item'' around a [canvas]. Check with [CL] if you're in a hurry.]] ---- [[ [Category Concept] | [Category GUI] ]]