diff options
Diffstat (limited to 'src/ui/ui.h')
| -rw-r--r-- | src/ui/ui.h | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/src/ui/ui.h b/src/ui/ui.h index 2898fd2..0dcb7e6 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -45,19 +45,22 @@ namespace Hsdbg bool threads = true; bool source_tree = true; bool locals = true; + bool watch = true; bool registers = true; bool symbols = true; bool disassembly = true; bool console = true; - bool profiler = true; - bool timeline = true; - bool macros = true; + + bool profiler = false; + bool macros = false; bool demo = false; }; auto apply_style() -> void; static auto build_default_layout(uint32_t dockspace_id) -> void; + auto draw_command_palette(Debugger& debugger) -> void; + auto draw_menu_bar(Debugger& debugger) -> void; auto draw_toolbar(Debugger& debugger) -> void; auto draw_status_bar(const Debugger& debugger) -> void; @@ -71,12 +74,16 @@ namespace Hsdbg auto draw_threads_panel(Debugger& debugger) -> void; auto draw_source_tree_panel(const Debugger& debugger) -> void; auto draw_locals_panel(const Debugger& debugger) -> void; + auto draw_watch_panel(Debugger& debugger) -> void; auto draw_registers_panel(const Debugger& debugger) -> void; + + auto add_watch(Debugger& debugger, std::string expression) -> void; auto draw_symbols_panel(Debugger& debugger) -> void; auto draw_disassembly_panel(Debugger& debugger) -> void; auto draw_console_panel(Debugger& debugger) -> void; auto draw_profiler_panel(Debugger& debugger) -> void; - auto draw_timeline_panel(Debugger& debugger) -> void; + + static auto draw_flamegraph(const Debugger& debugger) -> void; auto draw_macros_panel(Debugger& debugger) -> void; auto push_console(std::string line) -> void; @@ -84,6 +91,8 @@ namespace Hsdbg auto follow_stop(Debugger& debugger) -> void; auto follow_target(Debugger& debugger) -> void; + + auto follow_selected_frame(Debugger& debugger) -> void; auto show_frame(const StackFrame& frame) -> void; Window* m_window = nullptr; @@ -115,6 +124,27 @@ namespace Hsdbg std::string m_source_filter; std::string m_trace_input; + struct Watch + { + std::string expression; + std::string value; + bool ok = false; + }; + + std::vector<Watch> m_watches; + std::string m_watch_input; + + uint64_t m_watch_stop = 0; + uint64_t m_watch_thread = 0; + uint32_t m_watch_frame = 0; + bool m_watch_evaluated = false; + + bool m_palette_open = false; + bool m_palette_request = false; + bool m_palette_focus = false; + std::string m_palette_query; + int m_palette_selection = 0; + std::string m_macro_input; std::string m_macro_output; int m_macro_level = 0; @@ -122,12 +152,17 @@ namespace Hsdbg uint64_t m_followed_stop = 0; std::filesystem::path m_followed_target; + std::filesystem::path m_revealed_source; + + bool m_profiler_revealed = false; + bool m_layout_built = false; bool m_select_default_tabs = false; bool m_console_scroll_pending = false; bool m_load_target_pending = false; bool m_focus_breakpoints = false; bool m_focus_macros = false; + bool m_focus_profiler = false; bool m_focus_symbols = false; bool m_focus_disassembly = false; bool m_scroll_to_program_counter = false; |
