Tickit::Widget::Tabbed(3pm) | User Contributed Perl Documentation | Tickit::Widget::Tabbed(3pm) |
NAME¶
Tickit::Widget::Tabbed - provide tabbed window supportSYNOPSIS¶
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 tabwidget¶
Returns the "Tickit::Widget" contained by this tablabel¶
Returns the current label textset_label¶
Set new label text for the tabis_active¶
Returns true if this tab is the currently active oneactivate¶
Activate this tabset_on_activated¶
Set a callback or method name to invoke when the tab is activatedset_on_deactivated¶
Set a callback or method name to invoke when the tab is deactivatedpen¶
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 |