Skip to content
Welcome to the new CppUtils documentation!

Namespace: CppUtils::Terminal

enum class Direction {
Row,
Column
};
enum class JustifyContent {
Start,
Center,
End,
SpaceBetween,
SpaceAround,
SpaceEvenly
};
enum class AlignItems {
Start,
Center,
End,
Stretch
};
enum class PrimitiveStyle {
Outline,
Filled
};
enum class Flag {
None = 0,
Raw = None,
WaitForEnter = ICANON,
PrintTypedKeys = ECHO,
ProcessInterruptSignals = ISIG,
TextEditingShortcuts = IEXTEN,
MouseInput = 0,
MouseTextSelection = 0,
AllowMouseSelection = 0,
AnsiEscapeCodes = 0,
Default = static_cast<tcflag_t>(WaitForEnter) | static_cast<tcflag_t>(PrintTypedKeys) | static_cast<tcflag_t>(ProcessInterruptSignals) | static_cast<tcflag_t>(TextEditingShortcuts)
};
enum class Alignment {
Begin,
Center,
End
};
using CppUtils::Terminal::DynamicAreaBuffer = typedef Thread::SharedLocker<DynamicAreaBufferStorage>;
using CppUtils::Terminal::InputHandle = typedef int;
using CppUtils::Terminal::ProgressBarStyle = typedef std::string;
using CppUtils::Terminal::State = typedef termios;
constexpr auto CppUtils::Terminal::DefaultInputHandle;
auto getCursorPosition() -> std::expected<Container::Size2<>, std::string_view>;
auto setCursorPosition(Container::Size2<> position) -> void;
auto getTerminalHandle(std::FILE* file) -> System::Handle;
auto getTerminalHandle(std::ios_base& stream) -> System::Handle;
auto drawLine(WritableAreaView& view, const Container::Size2<>& start, const Container::Size2<>& end, const CharCell& c) -> void;
auto drawRectangle(WritableAreaView& view, const Container::Size2<>& topLeft, const Container::Size2<>& size, PrimitiveStyle style, const CharCell& c) -> void;
auto drawCircle(WritableAreaView& view, const Container::Size2<>& center, std::size_t radius, PrimitiveStyle style, const CharCell& c) -> void;
auto drawEllipse(WritableAreaView& view, const Container::Size2<>& start, const Container::Size2<>& end, PrimitiveStyle style, const CharCell& c) -> void;
auto getTerminalSize() -> Container::Size2<>;
template <std::size_t Width, std::size_t Height, std::size_t NbFrames, Chrono::Duration Duration = std::chrono::milliseconds>
Spinner(std::array<FixedAreaBuffer<Width, Height>, NbFrames>&& frames, const Duration& duration=std::chrono::milliseconds{50}) -> Spinner<Width, Height, NbFrames, Duration>;
auto getTerminalTitle() -> auto;
auto setTerminalTitle(const String::GenericText auto& title) -> void;
constexpr auto operator&(Flag lhs, Flag rhs) -> bool;
constexpr auto operator|(Flag lhs, Flag rhs) -> Flag;
constexpr auto operator~(Flag flag) noexcept -> Flag;
auto getState(InputHandle handle=DefaultInputHandle) -> std::optional<State>;
auto setState(State state, InputHandle handle=DefaultInputHandle) -> bool;
auto hasFlag(Flag flag, InputHandle handle=DefaultInputHandle) -> bool;
auto isRawMode(InputHandle handle=DefaultInputHandle) -> bool;
auto enableRawMode(InputHandle handle=DefaultInputHandle) -> std::optional<State>;
auto setConsoleOutputUTF8() -> void;
auto enableAnsi() -> void;
auto operator+(const Viewport& lhs, const Viewport& rhs) noexcept -> Viewport;
auto operator-(const Viewport& lhs, const Viewport& rhs) noexcept -> Viewport;