The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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 tabs

  • pen_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:

label - label to show on the new tab

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.