`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>
8.7 KiB
8.7 KiB
Tui
class Tui
Defined in tui.hpp:17
Private type
enum Completion
Private Attributes
std::vector< std::string > history
std::vector< std::string > recorded
std::vector< std::string > output
std::string input
int cursor_pos
int history_idx
int scroll_offset
Lines scrolled up from the tail; 0 = follow newest output.
bool quit
bool in_source
std::unique_ptr< System > sys
std::deque< Prompt > pending
std::map< std::string, CommandSpec > commands
std::map< std::string, std::string > vars
$var-style substitution table.
int screen_idx
std::vector< std::string > search_modules
std::vector< std::string > search_types
int search_module_idx
int search_type_idx
int search_focus_idx
std::string search_query
std::vector< std::string > connect_modules
int connect_m1_idx
int connect_m2_idx
std::string connect_p1_filter
std::string connect_p2_filter
std::vector< std::string > connect_p1_list
std::vector< std::string > connect_p2_list
int connect_p1_idx
int connect_p2_idx
int connect_focus_idx
std::vector< std::string > explore_modules
int explore_module_idx
std::vector< std::string > explore_types
int explore_type_idx
std::vector< std::string > explore_children
int explore_child_idx
std::string explore_child_filter
std::string explore_detail_filter
std::vector< std::string > explore_detail
int explore_detail_idx
std::string explore_header
int explore_focus_idx
std::atomic< bool > loading
true while a script is being processed; read by tick thread.
std::atomic< bool > tick_in_flight
main thread acks each tick by clearing this; ticker waits.
std::string loading_filename
std::vector< std::string > loading_lines
size_t loading_idx
int loading_executed
int loading_lineno
bool loading_prev_in_source
ftxui::ScreenInteractive * screen_ptr
set in Run() so Source() can post events. so Source() can post events.
std::vector< std::string > net_modules
int net_module_idx
std::string net_sig_filter
std::vector< std::string > net_sigs
rebuilt every frame from filter
int net_sig_idx
int net_focus_idx
std::vector< std::string > settype_modules
int settype_m_idx
std::string settype_p_filter
std::vector< std::string > settype_p_list
int settype_p_idx
std::string settype_type
std::string settype_status
int settype_focus_idx
Public Functions
Tui()
~Tui()
void Run()
Private Functions
void RegisterCommands()
void Print(const std::string &line)
void Submit()
void Dispatch(const std::string &raw)
void Finalize(const std::string &name, const CommandSpec &spec, const std::vector< std::string > &args)
void HistoryUp()
void HistoryDown()
void CancelPending()
void LoadHistory()
void AppendHistory(const std::string &cmd)
void Source(const std::string &filename)
void ProcessNextSourceLine()
std::string ExpandVars(const std::string &s) const
void CompleteCommand(size_t start=0)
void CompletePath(size_t start=0)
void CompleteInline()
void RefreshFilteredPartList(const std::vector< std::string > &modules, int m_idx, const std::string &filter, std::vector< std::string > &out, int &sel_idx)
ftxui::Component BuildMainScreen(ftxui::ScreenInteractive &screen)
ftxui::Component BuildSearchScreen()
ftxui::Component BuildConnectScreen()
ftxui::Component BuildSettypeScreen()
ftxui::Component BuildExploreScreen()
ftxui::Component BuildNetScreen()
← Back to classes · Top