|
ttx 0.1.0
|
Represents a group of terminal rows. More...
#include <ttx/terminal/row_group.h>
Public Member Functions | |
| RowGroup () | |
| auto | rows () -> di::Ring< Row > & |
| auto | rows () const -> di::Ring< Row > const & |
| auto | empty () const -> bool |
| auto | total_rows () const |
| void | drop_graphics_id (u16 &id) |
| void | drop_hyperlink_id (u16 &id) |
| void | drop_multi_cell_id (u16 &id) |
| auto | graphics_rendition (u16 id) const -> GraphicsRendition const & |
| auto | hyperlink (u16 id) const -> Hyperlink const & |
| auto | maybe_hyperlink (u16 id) const -> di::Optional< Hyperlink const & > |
| auto | multi_cell_info (u16 id) const -> MultiCellInfo const & |
| auto | graphics_id (GraphicsRendition const &rendition) -> di::Optional< u16 > |
| auto | use_graphics_id (u16 id) -> u16 |
| auto | allocate_graphics_id (GraphicsRendition const &rendition) -> di::Optional< u16 > |
| auto | maybe_allocate_graphics_id (GraphicsRendition const &rendition) -> di::Optional< u16 > |
| auto | hyperlink_id (di::String const &hyperlink_id) -> di::Optional< u16 > |
| auto | use_hyperlink_id (u16 id) -> u16 |
| auto | allocate_hyperlink_id (Hyperlink &&hyperlink) -> di::Optional< u16 > |
| auto | maybe_allocate_hyperlink_id (Hyperlink const &hyperlink) -> di::Optional< u16 > |
| auto | multi_cell_id (MultiCellInfo const &multi_cell_info) -> di::Optional< u16 > |
| auto | use_multi_cell_id (u16 id) -> u16 |
| auto | allocate_multi_cell_id (MultiCellInfo const &multi_cell_info) -> di::Optional< u16 > |
| auto | maybe_allocate_multi_cell_id (MultiCellInfo const &multi_cell_info) -> di::Optional< u16 > |
| auto | transfer_from (RowGroup &from, usize from_index, usize to_index, usize row_count, di::Optional< u32 > desired_cols={}) -> usize |
| auto | strip_trailing_empty_cells (usize row_index) -> usize |
| void | drop_cell (Cell &cell) |
| auto | iterate_row (u32 row) const |
Represents a group of terminal rows.
An invidual screen will have 1 active row group and potentially several additional row groups which store the scroll back history. Within a row group, attributes like the graphics rendition and hyperlink information are deduplicated using an IdMap.
Internally, rows are stored in a ring buffer to speed up certain operations during resizing (specifically inserting rows at the start of the group).
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
| void ttx::terminal::RowGroup::drop_cell | ( | Cell & | cell | ) |
This function does not remove the text associated with the cell, as the caller typically has enough context to do this more efficiently (because they are erasing multiple cells).
| void ttx::terminal::RowGroup::drop_graphics_id | ( | u16 & | id | ) |
| void ttx::terminal::RowGroup::drop_hyperlink_id | ( | u16 & | id | ) |
| void ttx::terminal::RowGroup::drop_multi_cell_id | ( | u16 & | id | ) |
|
inline |
|
inline |
| auto ttx::terminal::RowGroup::graphics_rendition | ( | u16 | id | ) | const -> GraphicsRendition const& |
| auto ttx::terminal::RowGroup::hyperlink | ( | u16 | id | ) | const -> Hyperlink const& |
|
inline |
|
inline |
| auto ttx::terminal::RowGroup::maybe_allocate_graphics_id | ( | GraphicsRendition const & | rendition | ) | -> di::Optional<u16> |
| auto ttx::terminal::RowGroup::maybe_allocate_hyperlink_id | ( | Hyperlink const & | hyperlink | ) | -> di::Optional<u16> |
| auto ttx::terminal::RowGroup::maybe_allocate_multi_cell_id | ( | MultiCellInfo const & | multi_cell_info | ) | -> di::Optional<u16> |
| auto ttx::terminal::RowGroup::maybe_hyperlink | ( | u16 | id | ) | const -> di::Optional<Hyperlink const&> |
|
inline |
| auto ttx::terminal::RowGroup::multi_cell_info | ( | u16 | id | ) | const -> MultiCellInfo const& |
|
inline |
|
inline |
| auto ttx::terminal::RowGroup::strip_trailing_empty_cells | ( | usize | row_index | ) | -> usize |
|
inline |
| auto ttx::terminal::RowGroup::transfer_from | ( | RowGroup & | from, |
| usize | from_index, | ||
| usize | to_index, | ||
| usize | row_count, | ||
| di::Optional< u32 > | desired_cols = {} ) -> usize |
|
inline |
|
inline |
|
inline |