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 ]
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: getting visible area of Tk::Scrolled?
by zentara (Archbishop) on Sep 16, 2011 at 20:21 UTC | |
Re: getting visible area of Tk::Scrolled?
by BrowserUk (Patriarch) on Sep 16, 2011 at 19:05 UTC | |
by halley (Prior) on Sep 17, 2011 at 12:52 UTC | |
by BrowserUk (Patriarch) on Sep 17, 2011 at 13:06 UTC | |
by halley (Prior) on Sep 19, 2011 at 20:42 UTC |