From 801c6a8916a495162b200fff0d14cfbf89ea854c Mon Sep 17 00:00:00 2001 From: hachem Date: Fri, 28 Aug 2026 01:01:01 +0200 Subject: add: ui view and renderer --- src/ui/source_view.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/ui/source_view.h (limited to 'src/ui/source_view.h') diff --git a/src/ui/source_view.h b/src/ui/source_view.h new file mode 100644 index 0000000..94855e8 --- /dev/null +++ b/src/ui/source_view.h @@ -0,0 +1,39 @@ +#pragma once + +#include "core/result.h" + +#include +#include +#include +#include + +namespace Hsdbg +{ + class Debugger; + + class SourceView + { + public: + auto open(const std::filesystem::path& path) -> Result; + auto close() -> void; + + auto draw(Debugger& debugger) -> void; + + auto set_highlighted_line(uint32_t line) -> void; + + auto path() const -> const std::filesystem::path& { return m_path; } + auto line_count() const -> size_t { return m_lines.size(); } + auto is_open() const -> bool { return !m_lines.empty(); } + + private: + auto draw_open_bar() -> void; + auto draw_lines(Debugger& debugger) -> void; + + std::filesystem::path m_path; + std::vector m_lines; + std::string m_path_input; + std::string m_error; + uint32_t m_highlighted_line = 0; + bool m_scroll_to_highlight = false; + }; +} -- cgit v1.3