You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
5.6 KiB
116 lines
5.6 KiB
[comment {--- punk::docgen generated from inline doctools comments ---}] |
|
[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] |
|
[comment {--- punk::docgen overwrites this file ---}] |
|
[manpage_begin punkshell_module_textblock 0 0.1.3] |
|
[copyright "2024"] |
|
[titledesc {punk textblock functions}] [comment {-- Name section and table of contents description --}] |
|
[moddesc {punk textblock}] [comment {-- Description at end of page heading --}] |
|
[require textblock] |
|
[keywords module ansi text layout colour table frame console terminal] |
|
[description] |
|
[para] Ansi-aware terminal textblock manipulation |
|
[section Overview] |
|
[para] overview of textblock |
|
[subsection Concepts] |
|
[para] |
|
[subsection dependencies] |
|
[para] packages used by textblock |
|
[list_begin itemized] |
|
[item] [package {Tcl 8.6-}] |
|
[item] [package {punk::args}] |
|
[item] [package {punk::char}] |
|
[item] [package {punk::ansi}] |
|
[item] [package {punk::lib}] |
|
[item] [package {overtype}] |
|
[item] [package {term::ansi::code::macros}] |
|
[item] [package {textutil}] |
|
[list_end] |
|
[section API] |
|
[subsection {Namespace textblock::class}] |
|
[para] class definitions |
|
[list_begin itemized] [comment {- textblock::class groupings -}] |
|
[item] |
|
[para] [emph {handler_classes}] |
|
[list_begin enumerated] |
|
[enum] CLASS [class textblock::class::table] |
|
[list_begin definitions] |
|
[para] Create a table suitable for terminal output with various border styles. |
|
[para] The table can contain multiline cells and ANSI colour and text style attributes. |
|
[para] Multiple header rows can be configured. |
|
[para] Header rows can span columns - data rows cannot. |
|
[para] The restriction on data rows is to maintain compatibility of the data with a Tcl matrix command |
|
[para] (see get_matrix command) |
|
[para] Both header and data cells can have various text and blockalignments configured. |
|
[para] [emph METHODS] |
|
[call class::table [method constructor] [arg args]] |
|
[para] TODO - document the many options |
|
[call class::table [method configure] [arg args]] |
|
[para] get or set various table-level properties |
|
[call class::table [method printmatrix] [arg matrix]] |
|
[para] clear all table rows and print a matrix into the table |
|
[para] The rowxcolumn structure must match |
|
[call class::table [method as_matrix] [arg ?cmd?]] |
|
[para] return a struct::matrix command representing the data portion of the table. |
|
[call class::table [method add_column] [arg args]] |
|
[call class::table [method column_count]] |
|
[para] return the number of columns |
|
[call class::table [method configure_column] [arg index_expression] [arg args]] |
|
[para] - undocumented |
|
[call class::table [method header_count]] |
|
[para] return the number of header rows |
|
[call class::table [method header_height] [arg header_index]] |
|
[para] return the height of a header as the number of content-lines |
|
[call class::table [method header_colspans]] |
|
[para] Show the colspans configured for all headers |
|
[call class::table [method configure_header]] |
|
[para] - configure header row-wise |
|
[call class::table [method add_row]\ |
|
[arg valuelist]\ |
|
[opt "[option -minheight] [arg int_minheight]"]\ |
|
[opt "[option -maxheight] [arg int_maxheight]"]\ |
|
[opt "[option -ansibase] [arg ansicode]"]\ |
|
] |
|
[call class::table [method configure_row]\ |
|
[arg index_expression]\ |
|
[opt "[option -minheight] [arg int_minheight]"]\ |
|
[opt "[option -maxheight] [arg int_maxheight]"]\ |
|
[opt "[option -ansibase] [arg ansicode]"]\ |
|
] |
|
[call class::table [method row_count]] |
|
[para] return the number of data rows in the table. |
|
[call class::table [method row_clear]] |
|
[para] Remove all rows without resetting column data. |
|
[para] When adding new rows the number of entries will need to match the existing column count. |
|
[call class::table [method clear]] |
|
[para] Remove all row and column data. |
|
[para] If a subsequent call to add_row is made it can contain any number of values. |
|
[para] Further calls to add_row will need to contain the same number of values |
|
[para] as the first call unless default values have been set for the missing columns (review - in flux). |
|
[call class::table [method get_column_cells_by_index] [arg index_expression]] |
|
[para] Return a dict with keys 'headers' and 'cells' giving column header and data values |
|
[call class::table [method get_column_values_by_index] [arg index_expression]] |
|
[para] List the cell values of a column from the data area only (no header values) |
|
[call class::table [method debug]] |
|
[para] display lots of debug information about how the table is constructed. |
|
[call class::table [method column_width] [arg index_expression]] |
|
[para] inner width of column ie the available cell-width without borders/separators |
|
[call class::table [method column_width]] |
|
[para] ordered list of column widths (inner widths) |
|
[call class::table [method width]] |
|
[para] width of the table including borders and separators |
|
[para] calculate width based on assumption frame verticals are 1 screen-column wide |
|
[para] (review - consider possibility of custom unicode double-wide frame?) |
|
[call class::table [method spangroups]] |
|
[para] return a dict keyed by column-index showing advanced span information |
|
[para] (debug tool) |
|
[call class::table [method print]] |
|
[para] Return the table as text suitable for console display |
|
[call class::table [method print_bodymatrix]] |
|
[para] output the matrix string corresponding to the body data using the matrix 2string format |
|
[para] this will be a table without borders,headers,title etc and will exclude additional ANSI applied due to table, row or column settings. |
|
[para] If the original cell data itself contains ANSI - the output will still contain those ansi codes. |
|
|
|
[list_end] |
|
[list_end] [comment {- end enumeration provider_classes }] |
|
[list_end] [comment {- end itemized list textblock::class groupings -}] |
|
[manpage_end]
|
|
|