Provided by: libtickit-widget-tabbed-perl_0.027-1_all
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". Since version 0.022 this module is implemented using Object::Pad, so you can rely on having that available for implementing a subclass: use Object::Pad; class MyCustomTabClass extends Tickit::Widget::Tabbed::Tab; 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 => "MyCustomTabClass" ); or use constant TAB_CLASS => "MyCustomTabClass";
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.