From 1b26db40f7dead22e2937a7090189ba3206d4efc Mon Sep 17 00:00:00 2001 From: WerWolv Date: Fri, 26 Jul 2024 19:38:01 +0200 Subject: [PATCH] feat: Added parent offset to pattern hover tooltip --- plugins/builtin/romfs/lang/en_US.json | 1 + .../content/views/view_pattern_editor.cpp | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/plugins/builtin/romfs/lang/en_US.json b/plugins/builtin/romfs/lang/en_US.json index fbffa3bba..70583a00d 100644 --- a/plugins/builtin/romfs/lang/en_US.json +++ b/plugins/builtin/romfs/lang/en_US.json @@ -945,6 +945,7 @@ "hex.builtin.view.pattern_editor.shortcut.step_debugger": "Step Debugger", "hex.builtin.view.pattern_editor.shortcut.continue_debugger": "Continue Debugger", "hex.builtin.view.pattern_editor.shortcut.add_breakpoint": "Add Breakpoint", + "hex.builtin.view.pattern_editor.tooltip.parent_offset": "Parent offset", "hex.builtin.view.pattern_editor.virtual_files": "Virtual Filesystem", "hex.builtin.view.provider_settings.load_error": "An error occurred while trying to open this provider!", "hex.builtin.view.provider_settings.load_error_details": "An error occurred while trying to open this provider!\nDetails: {0}", diff --git a/plugins/builtin/source/content/views/view_pattern_editor.cpp b/plugins/builtin/source/content/views/view_pattern_editor.cpp index 11a98b931..ff4ed5fc0 100644 --- a/plugins/builtin/source/content/views/view_pattern_editor.cpp +++ b/plugins/builtin/source/content/views/view_pattern_editor.cpp @@ -1527,6 +1527,23 @@ namespace hex::plugin::builtin { ImGuiExt::TextFormatted("{}", hex::toByteString(pattern->getSize())); ImGui::Unindent(); + { + const auto parent = pattern->getParent(); + const auto parentAddress = parent == nullptr ? 0x00 : parent->getOffset(); + const auto parentSize = parent == nullptr ? 0x00 : parent->getSize(); + const auto patternAddress = pattern->getOffset(); + + if (patternAddress >= parentAddress && patternAddress + pattern->getSize() <= parentAddress + parentSize) { + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGuiExt::TextFormatted("{} ", "hex.builtin.view.pattern_editor.tooltip.parent_offset"_lang); + ImGui::TableNextColumn(); + ImGui::Indent(); + ImGuiExt::TextFormatted("0x{:02X}", pattern->getOffset() - parentAddress); + ImGui::Unindent(); + } + } + ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGuiExt::TextFormatted("{} ", "hex.ui.common.endian"_lang);