NAME
Tickit::Widget::Tabbed - provide tabbed window support
VERSION
version 0.002
SYNOPSIS
use Tickit::Widget::Tabbed;
my $tabbed = Tickit::Widget::Tabbed->new;
$tabbed->add_tab(Tickit::Widget::Static->new(text => 'some text'), label => 'First tab');
$tabbed->add_tab(Tickit::Widget::Static->new(text => 'some text'), label => 'Second tab');
DESCRIPTION
Provides a container that operates as a tabbed window.
Subclass of Tickit::ContainerWidget.
METHODS
new
Instantiate a new tabbed window.
Takes the following named parameters:
tab_position - (optional) location of the tabs, should be one of left, top, right, bottom.
pen_tabs - (optional)
Tickit::Pen
to use to render the tabspen_active - (optional)
Tickit::Pen
of additional attributes to use to render the active tab
child_window
Returns the child window.
tab_position
Accessor for the tab position (top, left, right, bottom).
pen_tabs
pen_active
Accessors for the rendering pens.
active_tab_index
Returns the 0-based index of the currently-active tab.
active_tab
Returns the currently-active tab as a tab object. See below.
add_tab
Add a new tab to this tabbed widget. Returns an object representing the tab; see "METHODS ON TAB OBJECTS" below.
First parameter is the widget to use.
Remaining form a hash:
remove_tab
Remove tab given by 0-based index or tab object.
move_tab
Move tab given by 0-based index or tab object forward the given number of positions.
tab
Returns the widget in the currently active tab.
activate_tab
Switch to the given tab; by 0-based index, or object.
next_tab
Switch to the next tab.
prev_tab
Switch to the previous tab.
METHODS ON TAB OBJECTS
The following methods may be called on the objects returned by add_tab
or active_tab
.
index
Returns the 0-based index of this tab
widget
Returns the Tickit::Widget
contained by this tab
label
Returns the current label text
set_label
Set new label text for the tab
is_active
Returns true if this tab is the currently active one
set_on_activated
Set a callback to invoke when the tab is activated
set_on_deactivated
Set a callback to invoke when the tab is deactivated
pen
Returns the Tickit::Pen
used to draw the label
CUSTOM TAB CLASS
Rather than use the default built-in object class for tab objects, a Tickit::Widget::Tabbed
or subclass thereof can return objects in another class instead. This is most useful for subclasses of the tabbed widget itself.
To perform this, create a subclass of Tickit::Widget::Tabbed::Tab
with a constructor having the following behaviour:
sub new
{
my $class = shift;
my ( $tabbed, %args ) = @_;
...
my $self = $class->SUPER::new( $tabbed, %args );
...
return $self;
}
Arrange for this class to be used by the tabbed widget either by passing its name as a constructor argument called tab_class
, or by overriding a method called TAB_CLASS
.
my $tabbed = Tickit::Widget::Tabbed->new(
tab_class => "Tab::Class::Name"
);
or
use constant TAB_CLASS => "Tab::Class::Name";
SEE ALSO
AUTHOR
Tom Molesworth <cpan@entitymodel.com>
LICENSE
Copyright Tom Molesworth 2011. Licensed under the same terms as Perl itself.