type TableColumn = {
header: &Widget,
width: &Length,
halign: &HAlign,
valign: &VAlign
};
type Table = {
columns: &Array<TableColumn>,
rows: &Array<Array<Widget>>,
width: &Length,
padding: &[f64, null],
separator: &[f64, null]
};
val table_column: fn(
?#width: &Length,
?#halign: &HAlign,
?#valign: &VAlign,
header: &Widget
) -> TableColumn;
// XCR estokes: We should add a test that passing a mismatched number of columns
// does not cause anything bad like a panic.
val table: fn(
?#width: &Length,
?#padding: &[f64, null],
?#separator: &[f64, null],
columns: &Array<TableColumn>,
rows: &Array<Array<Widget>>
) -> Widget