diff --git a/other/build.nr b/other/build.nr index 8692eaf..e8d0f83 100644 --- a/other/build.nr +++ b/other/build.nr @@ -1 +1 @@ -2029 +2031 diff --git a/src/ostd/io/IOHandlers.hpp b/src/ostd/io/IOHandlers.hpp index f43aa15..f1cd8ad 100644 --- a/src/ostd/io/IOHandlers.hpp +++ b/src/ostd/io/IOHandlers.hpp @@ -212,5 +212,18 @@ namespace ostd OutputHandlerBase& flush(void) override; OutputHandlerBase& reset(void) override; OutputHandlerBase& clear(void) override; + + OutputHandlerBase& xy(IPoint position) override; + OutputHandlerBase& xy(int32_t x, int32_t y) override; + OutputHandlerBase& x(int32_t x) override; + OutputHandlerBase& y(int32_t y) override; + + IPoint getCursorPosition(void) override; + void getCursorPosition(int32_t& outX, int32_t& outY) override; + int32_t getCursorX(void) override; + int32_t getCursorY(void) override; + + void getConsoleSize(int32_t& outColumns, int32_t& outRows) override; + IPoint getConsoleSize(void) override; }; } diff --git a/src/ostd/io/OutputHandlers.cpp b/src/ostd/io/OutputHandlers.cpp index 49d2b48..7166f2a 100755 --- a/src/ostd/io/OutputHandlers.cpp +++ b/src/ostd/io/OutputHandlers.cpp @@ -213,4 +213,65 @@ namespace ostd BasicConsole::clearConsole(); return *this; } + + OutputHandlerBase& ConsoleOutputHandler::xy(IPoint position) + { + BasicConsole::setConsoleCursorPosition(position.x, position.y); + return *this; + } + + OutputHandlerBase& ConsoleOutputHandler::xy(int32_t x, int32_t y) + { + BasicConsole::setConsoleCursorPosition(x, y); + return *this; + } + + OutputHandlerBase& ConsoleOutputHandler::x(int32_t x) + { + int32_t y = getCursorPosition().y; + return xy(x, y); + } + + OutputHandlerBase& ConsoleOutputHandler::y(int32_t y) + { + int32_t x = getCursorPosition().x; + return xy(x, y); + } + + IPoint ConsoleOutputHandler::getCursorPosition(void) + { + return BasicConsole::getConsoleCursorPosition(); + } + + void ConsoleOutputHandler::getCursorPosition(int32_t& outX, int32_t& outY) + { + auto pos = BasicConsole::getConsoleCursorPosition();; + outX = pos.x; + outY = pos.y; + } + + int32_t ConsoleOutputHandler::getCursorX(void) + { + auto pos = BasicConsole::getConsoleCursorPosition();; + return pos.x; + } + + int32_t ConsoleOutputHandler::getCursorY(void) + { + auto pos = BasicConsole::getConsoleCursorPosition();; + return pos.y; + } + + void ConsoleOutputHandler::getConsoleSize(int32_t& outColumns, int32_t& outRows) + { + BasicConsole::getConsoleSize(outColumns, outRows); + } + + IPoint ConsoleOutputHandler::getConsoleSize(void) + { + IPoint size; + BasicConsole::getConsoleSize(size.x, size.y); + return size; + } + } diff --git a/src/ostd/string/TextStyleParser.hpp b/src/ostd/string/TextStyleParser.hpp index 04e1c7b..c0b6040 100644 --- a/src/ostd/string/TextStyleParser.hpp +++ b/src/ostd/string/TextStyleParser.hpp @@ -139,11 +139,6 @@ namespace ostd private: String m_rawString { "" }; }; - - //TODO: Implement - // public: class FullColor { - - // }; }; typedef TextStyleBuilder::Console ConsoleRichString;