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 Alignment {
Begin,
Center,
End
};
using CppUtils::Terminal::DynamicAreaBuffer = typedef Thread::SharedLocker<DynamicAreaBufferStorage>;
using CppUtils::Terminal::ProgressBarStyle = typedef std::string;
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;

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;