FLTK::ScrollGroup - Group that adds scrollbars so you can scroll around the area
This container widget lets you maneuver around a set of widgets much larger than your window. If the child widgets are larger than the size of this object then scrollbars will appear so that you can scroll over to them.
type( ) will just scroll a whole arrangement of widgets and never resize them.
This is useful if you just want to get a big control panel into a smaller window.
The bounding box of the widgets are the area it can scroll,
this will remove any borders,
if you want the borders preserved put some invisible widgets there as placeholders.
This can be used to pan around a large drawing by making a single child widget "canvas".
This child widget should be of your own class,
draw( ) method that draws everything.
The scrolling is done by changing the
x( ) and
y( ) of the widget and drawing it with the fltk clip region set to the newly exposed rectangles.
You can speed things up by using
FLTK::not_clipped( ) or
FLTK::intersect_with_clip( ) to detect and skip the clipped portions of the drawing.
By default you can scroll in both directions,
and the scrollbars disappear if the data will fit in the area of the scroll.
type( ) can change this:
HORIZONTALresize vertically but scroll horizontally
VERTICALresize horizontally but scroll vertically
BOTHthis is the default
HORIZONTAL_ALWAYSresize vertically but always show horizontal scrollbar
VERTICAL_ALWAYSresize horizontally but always show vertical scrollbar
BOTH_ALWAYSalways show both scrollbars
If you use
VERTICAL you must initally position and size your child widgets as though the scrollbar is off (ie fill the
box( ) width entirely if
type( ) is
The first time
layout( ) is called it will resize the widgets to fit inside the scrollbars.
Currently you cannot use Window or any subclass (including GlWindow) as a child of this. The clipping is not conveyed to the operating system's window and it will draw over the scrollbars and neighboring objects.
$scrollgroup->bbox( $rect );
my $self = $scrollgroup->new( $x, $y, $w, $h, $label, $begin );
Creates a new FLTK::ScrollGroup widget.
Sanko Robinson <email@example.com> - http://sankorobinson.com/
Copyright (C) 2008-2010 by Sanko Robinson <firstname.lastname@example.org>
This program is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0. See the LICENSE file included with this distribution or notes on the Artistic License 2.0 for clarification.
When separated from the distribution, all original POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See the clarification of the CCA-SA3.0.