NAME
Tickit::Widget::Table - tabular widget support for Tickit
VERSION
version 0.002
SYNOPSIS
use Tickit::Widget::HBox;
use Tickit::Widget::Table;
# Create the widget
my $table = Tickit::Widget::Table->new(
padding => 1,
columns => [
{ label => 'First column', align => 'center', width => 'auto' },
{ label => 'Second column', align => 'right', width => 'auto' },
],
);
$table->add_row(
'First entry',
'Second column',
);
$table->add_row(
'Second entry',
'More data',
);
# Put it in something
my $container = Tickit::Widget::HBox->new;
$container->add($table, expand => 1);
DESCRIPTION
Basic support for table widgets. See examples/ in the main distribution for usage instructions.
METHODS
new
Create a new table widget.
Takes the following named parameters:
columns - column definition arrayref, see "add_column" for the details
padding - amount of padding (in chars) to apply between columns
default_cell_action - coderef to execute when a cell is activated unless there is an action defined on the cell, row or column.
default_row_action - coderef to execute when a row is activated.
header - flag to select whether a header is shown. If not provided it is assumed that a header is wanted.
add_header_row
Adds a header row to the top of the table. Takes no parameters.
add_initial_columns
Populates initial columns from the given arrayref. Generally handled internally when passing columns
in the constructor.
padding
Returns amount of padding between cells
lines
Number of rows.
cols
Number of screen columns.
rows
'rows' are the number of data rows we have in the table. That's one less than the total number of rows if we have a header row
columns
Number of columns in the table.
data_rows
Returns the rows containing data - this excludes the header row if there is one.
reposition_cursor
Put the cursor in the right place. Possibly used internally, probably of dubious utility.
header_row
Returns the header row if there is one.
set_highlighted_row
Highlight a row in the table. Only one row can be highlighted at a time, as opposed to selected rows.
highlight_row
Returns the currently-highlighted row.
highlight_row_index
Index of the currently-highlighted row.
refit
Check current widths and apply width on columns we already have sufficient information for.
min_refit
Try to shrink columns down to minimum possible width if they're flexible. Typically used by "add_column" to allow the new column to fit properly.
get_column_width
Return the width for the given column, or undef if this column should be autosized.
column_list
Returns all columns for this table as a list.
add_column
Add a new column to the table, returning a Tickit::Widget::Table::Column instance.
add_row
Adds a new row of data to the table. This will instantiate a new Tickit::Widget::Table::Row and return it.
remove_row
Remove the given row.
clear_data
Clears any data for this table, leaving structure including header row intact.
window_gained
Once we have a window, we want to refit to ensure that all the child elements are given subwindows with appropriate geometry.
window_lost
When the main window is lost, we also clear all the subwindows that were created for children.
on_key
Key handling: convert some common key requests to events.
on_quit
Handle a quit request. This is clearly not the place to have code like this.
on_switch_window
uh, no. you didn't see this.
on_toggle_select_all
Select everything, unless everything is already selected in which case select nothing instead.
on_select
Toggle selection for this row.
on_key_insert
Should not be here.
on_key_delete
Should not be here.
on_cursor_up
Move to the row above.
on_cursor_home
Move to the top of the table.
on_cursor_end
Move to the end of the table.
on_cursor_pageup
Move several lines up.
on_cursor_down
Move one line down.
on_cursor_pagedown
Move several lines down.
AUTHOR
Tom Molesworth <cpan@entitymodel.com>
LICENSE
Copyright Tom Molesworth 2011. Licensed under the same terms as Perl itself.