NAME

Tk::Adjuster, packAdjust - Allow size of packed widgets to be adjusted by user

SYNOPSIS


use Tk; use Tk::Adjuster;


$widget->packAdjust([pack options]);

DESCRIPTION

packAdjust calls pack on the widget and then creates an instance of Tk::Adjuster and packs that "after" the widget. Tk::Adjust is a Frame containing a "line" and a blob.

Dragging either with Mouse Button-1 results in a line being dragged to indicate new size. Releasing Button submits GeometryRequests on behalf of the widget which will cause the packer to change widget's size.

If Drag is done with Shift button down, then GeometryRequests are made in "real time" so that text-flow effects can be seen, but as a lot more work is done behaviour may be sluggish.

If widget is packed with -side => left or -side => right then width is adjusted. If packed -side => top or -side => bottom then height is adjusted.

packPropagate is turned off for the master window to prevent adjustment changing overall window size. Similarly packPropagate is turned off for the managed widget if it has things packed inside it. This is so that the GeometryRequests that Tk::Adjuster are not overriden by pack.

NOTES

The 'line' which is used to feedback position is in fact a 'Menu' widget set to an unorthodox shape, and with a black background.

BUGS

If the size of adjustable widget is increased to the limit there is no longer room for the Tk::Ajuster widget. As a work-round it forcibly makes room for itself if it is unmapped. However the "grab" it held will have been lost and button-motion events may be sent to other widgets which are not expecting them, which can result in error messages.