part
parent
767bd95fbe
commit
6bcb5ff2f5
|
@ -1,6 +1,6 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
include(cmake/color.cmake)
|
||||
set(BLT_VERSION 5.2.12)
|
||||
set(BLT_VERSION 5.2.13)
|
||||
|
||||
set(BLT_TARGET BLT)
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <string>
|
||||
#include <blt/logging/injector.h>
|
||||
#include <blt/std/types.h>
|
||||
#include <blt/math/vectors.h>
|
||||
|
||||
namespace blt::logging
|
||||
{
|
||||
|
@ -36,7 +37,7 @@ namespace blt::logging
|
|||
return 1;
|
||||
}
|
||||
|
||||
virtual std::string print();
|
||||
virtual std::string print() = 0;
|
||||
};
|
||||
|
||||
class status_bar_t final : public injector_t
|
||||
|
@ -46,10 +47,13 @@ namespace blt::logging
|
|||
|
||||
injector_output_t inject(const std::string& input) override;
|
||||
|
||||
virtual ~status_bar_t() override;
|
||||
void redraw();
|
||||
|
||||
~status_bar_t() override;
|
||||
private:
|
||||
i32 m_status_size;
|
||||
i32 m_last_position[2];
|
||||
vec2i m_last_log_position;
|
||||
vec2i m_begin_position;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 7ef2e733416953b222851f9a360d7fc72d068ee5
|
||||
Subproject commit 93201da2ba5a6aba0a6e57ada64973555629b3e3
|
|
@ -21,8 +21,10 @@
|
|||
#include <unistd.h>
|
||||
#include <blt/logging/ansi.h>
|
||||
#include <blt/logging/fmt_tokenizer.h>
|
||||
#include <blt/logging/logging.h>
|
||||
#include <blt/logging/status.h>
|
||||
#include <blt/math/vectors.h>
|
||||
#include <blt/math/log_util.h>
|
||||
|
||||
namespace blt::logging
|
||||
{
|
||||
|
@ -78,34 +80,43 @@ namespace blt::logging
|
|||
|
||||
status_bar_t::status_bar_t(const i32 status_size): m_status_size(status_size)
|
||||
{
|
||||
std::cout << ansi::cursor::home << std::flush;
|
||||
std::cout << ansi::erase::entire_screen << std::flush;
|
||||
m_begin_position = m_last_log_position = get_cursor_position();
|
||||
std::cout << ansi::cursor::hide_cursor;
|
||||
}
|
||||
|
||||
std::string status_item_t::print()
|
||||
{}
|
||||
|
||||
injector_output_t status_bar_t::inject(const std::string& input)
|
||||
{
|
||||
injector_output_t output{input, false, false};
|
||||
if (output.new_logging_output.back() != '\n')
|
||||
output.new_logging_output += '\n';
|
||||
|
||||
std::cout << ansi::cursor::lower_left_corner;
|
||||
std::cout << ansi::scroll::scroll_up(1);
|
||||
if (get_cursor_position() != m_begin_position)
|
||||
{
|
||||
for (int i = 0; i < m_status_size; i++)
|
||||
std::cout << ansi::erase::entire_line << ansi::cursor::move_begin_up(1);
|
||||
std::cout << output.new_logging_output;
|
||||
std::cout << ansi::erase::entire_line;
|
||||
std::cout << "[----status----]";
|
||||
std::cout << ansi::cursor::move_begin_down(1) << ansi::erase::entire_line;
|
||||
std::cout << "[----Second Line----]";
|
||||
std::cout << std::flush;
|
||||
std::cout << ansi::erase::entire_line << ansi::cursor::move_begin_up(1) << std::flush;
|
||||
}
|
||||
std::cout << ansi::erase::entire_line << std::flush;
|
||||
std::cout << output.new_logging_output << std::flush;
|
||||
m_last_log_position = get_cursor_position();
|
||||
redraw();
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
void status_bar_t::redraw()
|
||||
{
|
||||
std::cout << ansi::cursor::move_to(m_last_log_position.x(), m_last_log_position.y());
|
||||
std::cout << ansi::erase::entire_line << std::flush;
|
||||
std::cout << "[----status----]" << std::endl;
|
||||
std::cout << ansi::erase::entire_line << std::flush;
|
||||
std::cout << "[----Second Line----]" << std::endl;
|
||||
std::cout << std::flush;
|
||||
}
|
||||
|
||||
status_bar_t::~status_bar_t()
|
||||
{
|
||||
// std::cout << "\033[" << m_scrolling_region + 1 << ";1H";
|
||||
std::cout << ansi::cursor::lower_left_corner;
|
||||
std::cout << ansi::cursor::show_cursor;
|
||||
}
|
||||
}
|
||||
|
|
3
test.txt
3
test.txt
|
@ -0,0 +1,3 @@
|
|||
This is a println with a stream
|
||||
This is a mixed print 25 with multiple types 34.233400
|
||||
What about just a new line character?
|
|
@ -170,7 +170,6 @@ int main()
|
|||
writer.write(std::to_string(34.23340));
|
||||
writer.write('\n');
|
||||
writer.write("What about just a new line character?\n");
|
||||
size_t charCount = 0;
|
||||
|
||||
// blt::logging::println("Logged {} characters", charCount);
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue