NAME

Tickit::Widget::Table - tabular widget support for Tickit

VERSION

version 0.001

SYNOPSIS

 use Tickit::Widget::Table;
 # Create the widget
 my $table = Tickit::Widget::Table->new(
 	padding => 1,
	columns => [
	],
	data	=> [
	],
 );
 # Put it in something
 my $container = Tickit::Widget::HBox->new;
 $container->add($table, expand => 1);

DESCRIPTION

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.

add_initial_columns

padding

lines

cols

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

data_rows

reposition_cursor

header_row

set_highlighted_row

highlight_row

highlight_row_index

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

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.

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.