Table of Contents

Namespace ItTiger.TigerCli.Tui.Controls

Classes

FileSystemFolderBrowser
Default IFolderBrowser backed by System.IO. Exception-safe: unauthorized, missing, or transiently failing locations surface as empty listings rather than thrown exceptions. Platform behavior follows the host OS by default and can be overridden for testing.
InlineActivityControl<T>
Rich activity dialog control: a live CliGrid-backed layout (columns, rows, text and progress-bar elements) driven by named dynamic row values, plus a background operation and a single stop button (Cancel or Abort — never both). The operation runs on a background task and reports values through an ActivityContext; updates are applied on the modal-loop thread in AdvanceState(DateTime). Completion, failure and a confirmed stop all close the dialog without a keypress through CompletionResult.
InlineDialog
Modal inline dialog that hosts one InlineControlBase and renders it through the shared CliGrid layout pipeline.
InlineDialogConfirmationPolicy
Optional, reusable confirmation policy for an InlineDialog. When a confirmable key-produced result (Cancel or Abort) is requested and this policy includes that kind, the dialog enters an internal confirmation mode (a Yes/No message box) before completing. Choosing Yes completes with the originally requested kind; No (or Escape) dismisses the confirmation and resumes the original dialog. Loop-/externally-produced kinds (TokenCancel, Timeout, SystemCancel) are never confirmed.
InlineFolderSelect
Composite folder picker: editable path input, folder list, and OK/Cancel buttons.
InlineMessageBoxControl
A message-box style inline control: a block of message text plus a row of buttons. It is the first consumer of the multi-widget dialog layout — it exposes exactly two top-level widgets, the message content (InFrameScrollable) and the button group (InFrame), and routes keys to the (focused) button group.
InlineMultiColumnSelect
Dialog-hostable single-selection control over structured, multi-column rows. It wraps an InlineMultiColumnSelectWidget and behaves like InlineSelect — keyboard navigation, Enter confirms the highlighted row (payload = its index), Escape cancels — but each row is laid out across several aligned columns instead of a single preformatted line.
InlineMultiControl
Base class for dialog-hostable inline controls composed from several top-level widgets.
InlineMultiControl.InlineMultiControlWidget
Metadata for one widget slot owned by an InlineMultiControl.
InlineMultiSelect
Dialog-hostable multi-selection checklist control.
InlineSelect
Dialog-hostable single-selection list control backed by InlineSelectWidget.
InlineTextInput
Dialog-hostable single-line text input control backed by InlineTextInputWidget.
SpinnerTicker
A TuiTicker that cycles through a fixed sequence of string frames, wrapping back to the first frame after the last. Suitable for a loading spinner or any small cyclic indicator. Frames come either from a predefined SpinnerFrameSet (the default being a four-step braille spinner) or from a caller-supplied custom sequence. Generic by design — it owns frames and timing only and carries no knowledge of any particular control. The frame strings are raw content: any presentation (brackets, styling, title prefixing) is decided by the overlay or title that renders them.