Skip to content

Add table list box#222

Closed
ebeneezer wants to merge 1 commit into
magiblot:masterfrom
ebeneezer:codex/table-list-box
Closed

Add table list box#222
ebeneezer wants to merge 1 commit into
magiblot:masterfrom
ebeneezer:codex/table-list-box

Conversation

@ebeneezer

Copy link
Copy Markdown

Summary

Adds TTableListBox, a TListViewer-based control for displaying a one-dimensional selection list as rows with multiple text columns. This differs from TListBox's existing numCols layout, where items are distributed across screen columns; here each table row remains one selectable item.

The control accepts a flat const char* cell matrix plus row/column counts, computes display widths per column, and renders padded row text through the existing list-view drawing path. It does not own the cell strings and does not change existing TListBox behavior.

Validation

  • cmake -S . -B build -DTV_BUILD_EXAMPLES=ON -DTV_BUILD_TESTS=ON
  • cmake --build build -j2
  • header compile smoke test for Uses_TTableListBox
  • git -c core.whitespace=cr-at-eol diff --cached --check before commit

Notes

This is intended for report/table-like lists such as command/key binding views, diagnostics, or profile lists where a single selectable row has multiple visible fields.

@ebeneezer

Copy link
Copy Markdown
Author

Clarification: this is different from TListBox's existing numCols mode. numCols lays out separate list items across multiple screen columns, while TTableListBox keeps each logical item as one selectable row and displays that row as multiple aligned fields.

@ebeneezer

Copy link
Copy Markdown
Author

Downstream usage example: the right-hand list shows one selectable logical row rendered as several aligned fields (command, description, binding). This is the use case TTableListBox is meant to cover, unlike TListBox's numCols layout where separate items are distributed across screen columns.

@ebeneezer

Copy link
Copy Markdown
Author
keymanager-multicolumn-tableview-box

@ebeneezer
ebeneezer marked this pull request as ready for review May 23, 2026 10:19
@ebeneezer ebeneezer closed this by deleting the head repository Jun 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant