[MGS} In response to a question on [Ask, and it shall be given.] I knocked up this little package. The question/request was: "When a user resizes a toplevel window I want to get a continuous feedback about the window's dimensions, so that I am able to display that on a label and user can set the exact size. The problem with event bind is that it is fired at the end of the resizing operation.I want dimensions 'live' during resizing." by Neo neonews@indiatimes.com. I'm not sure if this completely satisfies, but here is a little utility to display the size and position of a toplevel (or any?) window in response to a event. # sizeinfo.tcl -- # Display window size info while resizing. # Version : 0.0.1 # Author : Mark G. Saye # Email : markgsaye@yahoo.com # Copyright : Copyright (C) 2003 # Date : February 19, 2003 # ====================================================================== namespace eval sizeinfo { package require Tk package provide sizeinfo 0.0.1 } # ====================================================================== # create -- proc sizeinfo::create {W} { toplevel $W.sizeinfo -bd 0 wm withdraw $W.sizeinfo update idletasks wm transient $W.sizeinfo $W wm overrideredirect $W.sizeinfo 1 label $W.sizeinfo.label -relief raised -bd 2 pack $W.sizeinfo.label } # ====================================================================== # destroy -- proc sizeinfo::destroy {W} { ::destroy $W.sizeinfo } # ====================================================================== # refresh -- proc sizeinfo::show {W w h x y} { variable $W upvar 0 $W _ if { [info exists _(after)] } { after cancel $_(after) } if { ![winfo exists $W.sizeinfo] } { create $W } set label $W.sizeinfo.label $label configure -text "$w x $h + $x + $y" set x0 [expr {$x + ($w / 2)}] set y0 [expr {$y + ($h / 2)}] set _w [winfo reqwidth $label] set _h [winfo reqheight $label] set _x [expr {$x0 - ($_w / 2)}] set _y [expr {$y0 - ($_h / 2)}] wm geometry $W.sizeinfo ${_w}x${_h}+${_x}+${_y} if { ![winfo ismapped $W.sizeinfo] } { wm deiconify $W.sizeinfo update idletasks } set _(after) [after 1000 [list sizeinfo::destroy $W]] } # ====================================================================== proc sizeinfo::sizeinfo {W} { if { [string equal $W .] } { set w "" } { set w $W } bind $W [list sizeinfo::show $w %w %h %x %y] } # ====================================================================== # Demo code if { [info exists argv0] && [string equal [info script] $argv0] } { toplevel .t sizeinfo::sizeinfo . sizeinfo::sizeinfo .t } # ======================================================================