halley has asked for the wisdom of the Perl Monks concerning the following question:
I am playing around some more with Tk::Canvas, and in particular, the scrolled variety. The scrollbar mechanisms seem really primitive.
my $c = $parent->Scrolled('Canvas', -width => $width, -height => $height, -background => 'beige', -scrollbars => 'osoe', -scrollregion => [ 0, 0, $width, $height ]);
I've constructed a Scrolled Canvas, which apparently returns a ref of type Tk::Frame. That must have the children, including a Canvas and a couple of Scrollbars.
I also found the Tk::Autoscroll class, which didn't come with my build of Perl/Tk, but was easy enough to add.
When dragging around an item in a large scrolled canvas, I want to auto-scroll to keep the dragged item in view. This doesn't seem so hard, except knowing where the scroller is viewing at the current time.
I can't figure out the way to go from a blessed Canvas ref (given in the drag events), to calculate or query the area of the scrollregion that is currently visible.
Before I go digging farther, I bet someone already has some code that calculates the visible area.
--
[ e d @ h a l l e y . c c ]