Scroll to navigation

Tickit::Widget::Tabbed(3pm) User Contributed Perl Documentation Tickit::Widget::Tabbed(3pm)

NAME

Tickit::Widget::Tabbed - provide tabbed window support

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.

STYLE

The default style pen is used as the widget pen. The following style pen prefixes are also used:
ribbon => PEN
The pen used for the ribbon
active => PEN
The pen attributes used for the active tab on the ribbon
more => PEN
The pen used for "more" ribbon scroll markers

The following style keys are used:

more_left => STRING
more_right => STRING
The text used to indicate that there is more content scrolled to the left or right, respectively, in the ribbon

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.

tab_position

Accessor for the tab position (top, left, right, bottom).

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.

active_tab_widget

Returns the widget in the currently active tab.

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.

activate_tab

Switch to the given tab; by 0-based index, or object.

next_tab

Switch to the next tab. This may be bound as a key action.

prev_tab

Switch to the previous tab. This may be bound as a key action.

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

activate

Activate this tab

set_on_activated

Set a callback or method name to invoke when the tab is activated

set_on_deactivated

Set a callback or method name to invoke when the tab is deactivated

pen

Returns the "Tickit::Pen" used to draw the label.

Pen observers are no longer registered on the return value; to set a different pen on the tab, use the "set_pen" method instead.

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";

CUSTOM RIBBON CLASS

Rather than use the default built-in object class for the ribbon object, a "Tickit::Widget::Tabbed" or subclass thereof can use an object in another subclass instead. This is most useful for subclasses of the tabbed widget itself.

For more detail, see the documentation in Tickit::Widget::Tabbed::Ribbon.

SEE ALSO

  • Tickit::Widget::Table
  • Tickit::Widget::HBox
  • Tickit::Widget::VBox
  • Tickit::Widget::Tree
  • Tickit::Window

AUTHOR

Tom Molesworth <cpan@entitymodel.com>, Paul Evans <leonerd@leonerd.org.uk>

LICENSE

Copyright Tom Molesworth 2011; Paul Evans 2014. Licensed under the same terms as Perl itself.
2018-07-29 perl v5.26.2