aboutsummaryrefslogtreecommitdiff
path: root/src/game/statusline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/statusline.cpp')
-rw-r--r--src/game/statusline.cpp121
1 files changed, 0 insertions, 121 deletions
diff --git a/src/game/statusline.cpp b/src/game/statusline.cpp
deleted file mode 100644
index 1abb87b..0000000
--- a/src/game/statusline.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "statusline.hpp"
-
-#include "engine/escape.hpp"
-#include "util/color.hpp"
-
-#include <string>
-#include <utility>
-
-StatusLine::StatusLine(
- std::shared_ptr<ICursorController> cursor_controller,
- std::shared_ptr<IWindow> window
-) noexcept
- : _cursor_controller(std::move(cursor_controller)), _window(std::move(window))
-{
-}
-
-void StatusLine::initialize_background() noexcept
-{
- const auto previous_position = _move_to_statusline(0);
-
- auto background_color = get_background_esc_seq(STATUSBAR_COLOR);
-
- fmt::print("{}{}", background_color, std::string(_window->size().get_width(), ' '));
- fmt::print(RESET_ALL_MODES, fmt::arg("esc", ESC));
-
- _move_back(previous_position);
-}
-
-void StatusLine::set_status(
- const StatusLineSection &section,
- const std::string_view &status,
- std::size_t start
-) noexcept
-{
- _clear_section(section, start);
-
- auto section_start = _get_section_start_x(section);
-
- const auto previous_position =
- _move_to_statusline(section_start + static_cast<int32_t>(start));
-
- auto background_color = get_background_esc_seq(STATUSBAR_COLOR);
-
- auto section_length = _sections_lengths[section];
-
- fmt::print("{}{}", background_color, status);
- fmt::print(RESET_ALL_MODES, fmt::arg("esc", ESC));
-
- _move_back(previous_position);
-}
-
-void StatusLine::set_section_length(
- const StatusLineSection &section,
- uint32_t length
-) noexcept
-{
- _sections_lengths[section] = length;
-}
-
-auto StatusLine::_move_to_statusline(int32_t x) noexcept -> Vector2
-{
- const auto previous_position = _cursor_controller->where();
-
- const auto window_size = _window->size();
-
- _cursor_controller->hide();
-
- auto window_height = static_cast<Vector2::Value>(window_size.get_height());
-
- _cursor_controller->move_to(Vector2({ .x = x, .y = window_height }), true);
-
- return previous_position;
-}
-
-void StatusLine::_move_back(Vector2 previous_position) noexcept
-{
- _cursor_controller->move_to(previous_position, true);
- _cursor_controller->show();
-}
-
-auto StatusLine::_get_section_start_x(const StatusLineSection &section) const noexcept
- -> int32_t
-{
- int32_t section_start = 0;
-
- auto section_index = static_cast<int32_t>(section);
-
- while (section_index > 0)
- {
- section_start +=
- static_cast<int32_t>(_sections_lengths.at(StatusLineSection(section_index - 1)
- ));
-
- section_index--;
- }
-
- return section_start;
-}
-
-void StatusLine::_clear_section(
- const StatusLineSection &section,
- std::size_t start
-) noexcept
-{
- auto section_start = _get_section_start_x(section);
-
- auto start_int32 = static_cast<int32_t>(start);
-
- const auto previous_position = _move_to_statusline(section_start + start_int32);
-
- auto background_color = get_background_esc_seq(STATUSBAR_COLOR);
-
- auto section_length = _sections_lengths[section];
-
- auto start_uint32 = static_cast<uint32_t>(start);
-
- fmt::print("{}{}", background_color, std::string(section_length - start_uint32, ' '));
- fmt::print(RESET_ALL_MODES, fmt::arg("esc", ESC));
-
- _move_back(previous_position);
-}