9#define WIN32_LEAN_AND_MEAN
28Dimensions& FallbackSize() {
29#if defined(__EMSCRIPTEN__)
32 constexpr int fallback_width = 140;
33 constexpr int fallback_height = 43;
36 constexpr int fallback_width = 80;
37 constexpr int fallback_height = 24;
39 static Dimensions g_fallback_size{
43 return g_fallback_size;
46const char* Safe(
const char* c) {
47 return (c !=
nullptr) ? c :
"";
50bool Contains(
const std::string& s,
const char* key) {
51 return s.find(key) != std::string::npos;
55#if defined(__EMSCRIPTEN__)
59 std::string COLORTERM = Safe(std::getenv(
"COLORTERM"));
60 if (Contains(COLORTERM,
"24bit") || Contains(COLORTERM,
"truecolor")) {
64 std::string TERM = Safe(std::getenv(
"TERM"));
65 if (Contains(COLORTERM,
"256") || Contains(TERM,
"256")) {
69#if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
72 if (TERM.empty() && COLORTERM.empty()) {
88#if defined(__EMSCRIPTEN__)
91 return FallbackSize();
93 CONSOLE_SCREEN_BUFFER_INFO csbi;
95 if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)) {
96 return Dimensions{csbi.srWindow.Right - csbi.srWindow.Left + 1,
97 csbi.srWindow.Bottom - csbi.srWindow.Top + 1};
100 return FallbackSize();
103 const int status = ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
105 if (w.ws_col == 0 || w.ws_row == 0 || status < 0) {
106 return FallbackSize();
115 FallbackSize() = fallbackSize;
123 g_cached_supported_color = ComputeColorSupport();
125 return g_cached_supported_color;
132 g_cached_supported_color =
color;
void SetColorSupport(Color color)
自動検出が失敗した場合にターミナルの色サポートを上書きします
Decorator color(Color)
前景色を使用して装飾します。
Color
Colorは、ターミナルの色サポートを表す列挙型です。
Dimensions Size()
ターミナルサイズを取得します。
Color ColorSupport()
ターミナルの色サポートを取得します。
Dimensionsは、ターミナルのサイズを表す構造体です。
FTXUI ftxui::Terminal::名前空間
void SetFallbackSize(const Dimensions &fallbackSize)
自動検出が失敗した場合にターミナルサイズを上書きします