Files
essim/doc/api/classes/Tui.md
François 66460262af Auto-generated API doc: doxygen → custom Python emitter → doc/api/.
`cmake --build build --target doc` runs Doxygen to produce XML, then
`doc/gen_api_md.py` (~330 lines, stdlib-only) emits a Markdown tree
under `doc/api/` that gitea renders directly in its file browser.

- 24 class/struct pages + 51 source-file pages + indices, with source
  links of the form `../../../../src/...#L42` that gitea turns into
  clickable line-anchored links.
- Doxyfile.in templated by CMake (XML-only output to build/doc/xml/).
- Pure Python emitter, zero external deps — no doxybook2 (not packaged
  on Arch) and no moxygen (avoids Node).
- Target gracefully disabled if Doxygen or Python 3 is missing at
  configure time; regular build target unaffected.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 08:13:15 +02:00

8.7 KiB

Tui

class Tui

Defined in tui.hpp:17

Private type

enum Completion

📍 tui.hpp:18

Private Attributes

std::vector< std::string > history

📍 tui.hpp:40

std::vector< std::string > recorded

📍 tui.hpp:41

std::vector< std::string > output

📍 tui.hpp:42

std::string input

📍 tui.hpp:43

int cursor_pos

📍 tui.hpp:44

int history_idx

📍 tui.hpp:45

int scroll_offset

📍 tui.hpp:46

Lines scrolled up from the tail; 0 = follow newest output.

bool quit

📍 tui.hpp:47

bool in_source

📍 tui.hpp:48

std::unique_ptr< System > sys

📍 tui.hpp:50

std::deque< Prompt > pending

📍 tui.hpp:51

std::map< std::string, CommandSpec > commands

📍 tui.hpp:52

std::map< std::string, std::string > vars

📍 tui.hpp:53

$var-style substitution table.

int screen_idx

📍 tui.hpp:56

std::vector< std::string > search_modules

📍 tui.hpp:59

std::vector< std::string > search_types

📍 tui.hpp:60

int search_module_idx

📍 tui.hpp:61

int search_type_idx

📍 tui.hpp:62

int search_focus_idx

📍 tui.hpp:63

std::string search_query

📍 tui.hpp:64

std::vector< std::string > connect_modules

📍 tui.hpp:67

int connect_m1_idx

📍 tui.hpp:68

int connect_m2_idx

📍 tui.hpp:69

std::string connect_p1_filter

📍 tui.hpp:70

std::string connect_p2_filter

📍 tui.hpp:71

std::vector< std::string > connect_p1_list

📍 tui.hpp:72

std::vector< std::string > connect_p2_list

📍 tui.hpp:73

int connect_p1_idx

📍 tui.hpp:74

int connect_p2_idx

📍 tui.hpp:75

int connect_focus_idx

📍 tui.hpp:76

std::vector< std::string > explore_modules

📍 tui.hpp:79

int explore_module_idx

📍 tui.hpp:80

std::vector< std::string > explore_types

📍 tui.hpp:81

int explore_type_idx

📍 tui.hpp:82

std::vector< std::string > explore_children

📍 tui.hpp:83

int explore_child_idx

📍 tui.hpp:84

std::string explore_child_filter

📍 tui.hpp:85

std::string explore_detail_filter

📍 tui.hpp:86

std::vector< std::string > explore_detail

📍 tui.hpp:87

int explore_detail_idx

📍 tui.hpp:88

std::string explore_header

📍 tui.hpp:89

int explore_focus_idx

📍 tui.hpp:90

std::atomic< bool > loading

📍 tui.hpp:93

true while a script is being processed; read by tick thread.

std::atomic< bool > tick_in_flight

📍 tui.hpp:94

main thread acks each tick by clearing this; ticker waits.

std::string loading_filename

📍 tui.hpp:95

std::vector< std::string > loading_lines

📍 tui.hpp:96

size_t loading_idx

📍 tui.hpp:97

int loading_executed

📍 tui.hpp:98

int loading_lineno

📍 tui.hpp:99

bool loading_prev_in_source

📍 tui.hpp:100

ftxui::ScreenInteractive * screen_ptr

📍 tui.hpp:101

set in Run() so Source() can post events. so Source() can post events.

std::vector< std::string > net_modules

📍 tui.hpp:104

int net_module_idx

📍 tui.hpp:105

std::string net_sig_filter

📍 tui.hpp:106

std::vector< std::string > net_sigs

📍 tui.hpp:107

rebuilt every frame from filter

int net_sig_idx

📍 tui.hpp:108

int net_focus_idx

📍 tui.hpp:109

std::vector< std::string > settype_modules

📍 tui.hpp:112

int settype_m_idx

📍 tui.hpp:113

std::string settype_p_filter

📍 tui.hpp:114

std::vector< std::string > settype_p_list

📍 tui.hpp:115

int settype_p_idx

📍 tui.hpp:116

std::string settype_type

📍 tui.hpp:117

std::string settype_status

📍 tui.hpp:118

int settype_focus_idx

📍 tui.hpp:119

Public Functions

Tui()

📍 tui.hpp:122

~Tui()

📍 tui.hpp:123

void Run()

📍 tui.hpp:124

Private Functions

void RegisterCommands()

📍 tui.hpp:128

void Print(const std::string &line)

📍 tui.hpp:131

void Submit()

📍 tui.hpp:132

void Dispatch(const std::string &raw)

📍 tui.hpp:133

void Finalize(const std::string &name, const CommandSpec &spec, const std::vector< std::string > &args)

📍 tui.hpp:134

void HistoryUp()

📍 tui.hpp:137

void HistoryDown()

📍 tui.hpp:138

void CancelPending()

📍 tui.hpp:139

void LoadHistory()

📍 tui.hpp:140

void AppendHistory(const std::string &cmd)

📍 tui.hpp:141

void Source(const std::string &filename)

📍 tui.hpp:142

void ProcessNextSourceLine()

📍 tui.hpp:143

std::string ExpandVars(const std::string &s) const

📍 tui.hpp:144

void CompleteCommand(size_t start=0)

📍 tui.hpp:147

void CompletePath(size_t start=0)

📍 tui.hpp:148

void CompleteInline()

📍 tui.hpp:149

void RefreshFilteredPartList(const std::vector< std::string > &modules, int m_idx, const std::string &filter, std::vector< std::string > &out, int &sel_idx)

📍 tui.hpp:152

ftxui::Component BuildMainScreen(ftxui::ScreenInteractive &screen)

📍 tui.hpp:159

ftxui::Component BuildSearchScreen()

📍 tui.hpp:160

ftxui::Component BuildConnectScreen()

📍 tui.hpp:161

ftxui::Component BuildSettypeScreen()

📍 tui.hpp:162

ftxui::Component BuildExploreScreen()

📍 tui.hpp:163

ftxui::Component BuildNetScreen()

📍 tui.hpp:164


Back to classes · Top