cosmentic
This commit is contained in:
parent
b954338cf5
commit
27e3e5fab3
@ -1,8 +1,13 @@
|
||||
#include "tableprint.hpp"
|
||||
#include <iomanip>
|
||||
#include <algorithm>
|
||||
#include <locale>
|
||||
#include <cwchar>
|
||||
|
||||
tableprint::tableprint() {}
|
||||
tableprint::tableprint() {
|
||||
// Set locale for wide character support
|
||||
std::setlocale(LC_ALL, "");
|
||||
}
|
||||
|
||||
tableprint::~tableprint() {}
|
||||
|
||||
@ -21,33 +26,55 @@ void tableprint::print() {
|
||||
}
|
||||
}
|
||||
|
||||
// Print header
|
||||
std::cout << "\033[1;36m"; // Cyan color for header
|
||||
// Print top border
|
||||
std::wcout << L"\033[37m"; // Light grey color for borders
|
||||
std::wcout << L"┌";
|
||||
for (size_t i = 0; i < rows[0].size(); ++i) {
|
||||
std::cout << std::setw(col_widths[i] + 2) << std::left << rows[0][i];
|
||||
std::wcout << std::wstring(col_widths[i] + 2, L'─');
|
||||
if (i < rows[0].size() - 1) std::wcout << L"┬";
|
||||
}
|
||||
std::cout << "\033[0m" << std::endl; // Reset color
|
||||
std::wcout << L"┐" << std::endl;
|
||||
|
||||
// Print separator
|
||||
// Print header
|
||||
std::wcout << L"│";
|
||||
std::wcout << L"\033[1;36m"; // Cyan color for header
|
||||
for (size_t i = 0; i < rows[0].size(); ++i) {
|
||||
std::cout << std::string(col_widths[i] + 2, '-');
|
||||
std::wcout << L" " << std::setw(col_widths[i]) << std::left << std::wstring(rows[0][i].begin(), rows[0][i].end()) << L" ";
|
||||
std::wcout << L"\033[37m│"; // Reset to border color
|
||||
}
|
||||
std::cout << std::endl;
|
||||
std::wcout << std::endl;
|
||||
|
||||
// Print header separator
|
||||
std::wcout << L"├";
|
||||
for (size_t i = 0; i < rows[0].size(); ++i) {
|
||||
std::wcout << std::wstring(col_widths[i] + 2, L'─');
|
||||
if (i < rows[0].size() - 1) std::wcout << L"┼";
|
||||
}
|
||||
std::wcout << L"┤" << std::endl;
|
||||
|
||||
// Print rows
|
||||
for (size_t row_idx = 1; row_idx < rows.size(); ++row_idx) {
|
||||
const auto& row = rows[row_idx];
|
||||
std::wcout << L"│";
|
||||
for (size_t i = 0; i < row.size(); ++i) {
|
||||
std::string cell = row[i];
|
||||
// Replace :tick: and :cross: with colored symbols
|
||||
if (cell == ":tick:") {
|
||||
std::cout << "\033[1;32m" << std::setw(col_widths[i] + 2) << std::left << "✓" << "\033[0m";
|
||||
std::wcout << L" " << L"\033[1;32m" << std::setw(col_widths[i]) << std::left << L"✓" << L"\033[37m" << L" │";
|
||||
} else if (cell == ":cross:") {
|
||||
std::cout << "\033[1;31m" << std::setw(col_widths[i] + 2) << std::left << "✗" << "\033[0m";
|
||||
std::wcout << L" " << L"\033[1;31m" << std::setw(col_widths[i]) << std::left << L"✗" << L"\033[37m" << L" │";
|
||||
} else {
|
||||
std::cout << std::setw(col_widths[i] + 2) << std::left << cell;
|
||||
std::wcout << L" " << std::setw(col_widths[i]) << std::left << std::wstring(cell.begin(), cell.end()) << L" │";
|
||||
}
|
||||
}
|
||||
std::cout << std::endl;
|
||||
std::wcout << std::endl;
|
||||
}
|
||||
|
||||
// Print bottom border
|
||||
std::wcout << L"└";
|
||||
for (size_t i = 0; i < rows[0].size(); ++i) {
|
||||
std::wcout << std::wstring(col_widths[i] + 2, L'─');
|
||||
if (i < rows[0].size() - 1) std::wcout << L"┴";
|
||||
}
|
||||
std::wcout << L"┘" << L"\033[0m" << std::endl; // Reset color
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user