There are many paned window implementations, including a core one that was released in 8.4.
http://www.purl.org/tcl/home/man/tcl8.4/TkCmd/panedwindow.html See also paned window.
Here is information on Iwidgets implementation:
Docs can be found at http://incrtcl.sourceforge.net/iwidgets/iwidgets/panedwindow.html (the example provided may be outdated and fail to work with the latest Tcl/Tk) and http://purl.org/tcl/home/man/iwidgets3.0/panedwindow.n.html
Some users with iwidget panedwindows in their apps find that, when moving to Tk 8.4 , their applications are now generating syntax errors. This is because the Tk panedwindow and iwidgets panedwindow widgets use the same class - however, they don't have the same bindings.
Tom Silva writes on the itcl mailing list: I use this code-fix in panedwindow.itk, in the Panedwindow constructor, down near the bottom (just before "eval itk_initialize $args").
set btags [bindtags $itk_component(hull)] if {[set ndx [lsearch -exact $btags Panedwindow]] >= 0} \ { bindtags $itk_component(hull) [lreplace $btags $ndx $ndx IPanedwindow] }
Prompted by an observation by Bryan Oakley that, whereas
[winfo manager $w] forget $w
does what one want for $w-s managed by pack, place, and grid, but not for panedwindow, Joe English offered this "interesting solution":
set scratch [winfo parent $w].__temp__ pack $w in $scratch pack forget $w destroy $scratch
Category Widget - Category Command, a part of Tk and incr Widgets