#include #include #include #include #include class Debug : public Mutil::Logging::LoggerObj { std::string NormalRen = Mutil::Console::Graphics::Rendition().Compile(); std::string MessageRen = Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 135).Compile(); std::string TraceRen = Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RBold, 241).Compile(); public: Debug() : LoggerObj(std::cout, [this](const std::string_view m) {return std::format("{}{}[D] {}{}", NormalRen, MessageRen, m, NormalRen); }) {}; void Trace(const std::source_location &location = std::source_location::current()) { this->operator()("{}{} @ {}:{}", TraceRen, location.function_name(), location.file_name(), location.line()); }; }; int main() { std::function λmessage = [](const std::string_view m) { return std::format("{}{} {}{}{}", Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RItalic, 252, 186, 3).Compile(), "-->", Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RUnderline, 74).Compile(), m, Mutil::Console::Graphics::Rendition().Compile()); }; Mutil::Logging::LoggerObj l(std::cout, λmessage); l("Hello world"); l << "something" << "something." << "something.."; Mutil::Console::Graphics::Rendition r(Mutil::Console::Graphics::RItalic, 252, 186, 3); std::string c = r.Compile(); std::cout << c << "ass" << std::endl; std::cout << Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RBold | Mutil::Console::Graphics::RItalic, 160, 186, 3).Compile() << "SHIIIIIIT" << Mutil::Console::Graphics::Rendition(Mutil::Console::Graphics::RNormal).Compile() << std::endl; Debug d; d << "DEBUGGGGING"; d.Trace(); Mutil::Console::Graphics::String s("balls"); std::cout << s.Render({Mutil::Console::Graphics::RItalic}) << std::endl; //d << Mutil::Console::Functions::CursorUp(6); //d.Trace(); //std::cout << "\x1b[2J" << Mutil::Console::Functions::CursorPosition(1, 3) << "AAAAAAAAAAAAAAAAA" << std::endl; //std::cout << "\x1b[2J"; //std::cout << Mutil::Console::Functions::CursorPosition(1, 39 //) << "AAAAAAAA"; //std::cout << Mutil::Console::Functions::CursorPosition(2, 35) << "AAAA"; //std::cout << Mutil::Console::Functions::CursorPosition(3, 31) << "AAAA"; // std::cout << Mutil::Console::Functions::CursorPosition(4, 29) << "AA"; // std::cout << std::endl; Mutil::Console::Functions::Display display; display.J(2); display.H(); display.m({Mutil::Console::Graphics::RUnderline,70}); //const char* womp = "womp womp"; //std::cout << womp << std::endl; display << "ASS" << std::endl; display << "DICK" << "FUCK" << std::endl; display.m({}); //display.H(12, 40); //display << "λ" << std::endl; display.J(2); //display << "\x1b[?47h"; for (uint i = 1; i < 24; i++) { //display.J(2); Mutil::Console::Graphics::Rendition r(0, i); display.H(i, i+1); display.m(r); display << std::format("F{}", i) << "λ" << std::endl; // 1 second = 1000000 microseconds // 24 frames (technically) // 1000000 / 24 // 41666 microseconds between frames roughly usleep(41666*2); display.A(); display.m(r); display.G(i+std::string(std::format("F{}λ", i)).size()-1); usleep(41666*2); display.K(); for (uint j = i+std::string(std::format("F{}λ", i)).size()-1; j < 80; j++) { display << "-" << std::endl; display.A(); display.G(j); usleep(41666/2); } display << "λ"; display << '\n'; //display.K(0); } display.m({}); //display << '\n'; //display << "\x1b[?47l"; //display << "\x1b[?47h"; ////display.H(); ////display.J(2); ////display.s(); ////display.H(24,80); ////display.m({Mutil::Console::Graphics::RUnderline, 27}); ////display << "SomethingSomethingAsshole" << std::endl; //display.H(3,3); ////display.m({}); ////display.u(); //display.s(); //display.H(24,80); //display << "0" << std::endl; //display.u(); //display << "\x1b[?47l"; //Desktop::Browser::OpenURL("https://git.redacted.cc/maxine/mutil"); }