diff options
Diffstat (limited to 'src/ui/source_view.h')
| -rw-r--r-- | src/ui/source_view.h | 39 |
1 files changed, 39 insertions, 0 deletions
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 <cstdint> +#include <filesystem> +#include <string> +#include <vector> + +namespace Hsdbg +{ + class Debugger; + + class SourceView + { + public: + auto open(const std::filesystem::path& path) -> Result<void>; + 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<std::string> m_lines; + std::string m_path_input; + std::string m_error; + uint32_t m_highlighted_line = 0; + bool m_scroll_to_highlight = false; + }; +} |
