From 58cef2361bbe486aaade4f0bb7ec82ecc178b4e4 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Wed, 30 Aug 2023 10:04:06 +0200 Subject: [PATCH] impr: Added hint when patterns are still loading --- .../include/hex/ui/imgui_imhex_extensions.h | 1 + lib/libimhex/source/ui/imgui_imhex_extensions.cpp | 13 +++++++++++++ plugins/builtin/romfs/lang/en_US.json | 1 + plugins/builtin/source/ui/pattern_drawer.cpp | 4 ++++ 4 files changed, 19 insertions(+) diff --git a/lib/libimhex/include/hex/ui/imgui_imhex_extensions.h b/lib/libimhex/include/hex/ui/imgui_imhex_extensions.h index dfd773e5b..3dbf71b9d 100644 --- a/lib/libimhex/include/hex/ui/imgui_imhex_extensions.h +++ b/lib/libimhex/include/hex/ui/imgui_imhex_extensions.h @@ -245,4 +245,5 @@ namespace ImGui { bool DimmedIconButton(const char *symbol, ImVec4 color, ImVec2 size_arg = ImVec2(0, 0)); bool DimmedIconToggle(const char *icon, bool *v); + void TextOverlay(const char *text, ImVec2 pos); } \ No newline at end of file diff --git a/lib/libimhex/source/ui/imgui_imhex_extensions.cpp b/lib/libimhex/source/ui/imgui_imhex_extensions.cpp index 014c35a24..111091c4a 100644 --- a/lib/libimhex/source/ui/imgui_imhex_extensions.cpp +++ b/lib/libimhex/source/ui/imgui_imhex_extensions.cpp @@ -810,4 +810,17 @@ namespace ImGui { return toggled; } + void TextOverlay(const char *text, ImVec2 pos) { + const auto textSize = ImGui::CalcTextSize(text); + const auto textPos = pos - textSize / 2; + const auto margin = ImGui::GetStyle().FramePadding * 2; + const auto textRect = ImRect(textPos - margin, textPos + textSize + margin); + + auto drawList = ImGui::GetForegroundDrawList(); + + drawList->AddRectFilled(textRect.Min, textRect.Max, ImGui::GetColorU32(ImGuiCol_WindowBg) | 0xFF000000); + drawList->AddRect(textRect.Min, textRect.Max, ImGui::GetColorU32(ImGuiCol_Border)); + drawList->AddText(textPos, ImGui::GetColorU32(ImGuiCol_Text), text); + } + } \ No newline at end of file diff --git a/plugins/builtin/romfs/lang/en_US.json b/plugins/builtin/romfs/lang/en_US.json index 41f100e7a..ec3c26f90 100644 --- a/plugins/builtin/romfs/lang/en_US.json +++ b/plugins/builtin/romfs/lang/en_US.json @@ -436,6 +436,7 @@ "hex.builtin.pattern_drawer.tree_style.auto_expanded": "Auto Expanded Tree", "hex.builtin.pattern_drawer.tree_style.flattened": "Flattened", "hex.builtin.pattern_drawer.type": "Type", + "hex.builtin.pattern_drawer.updating": "Updating patterns...", "hex.builtin.pattern_drawer.value": "Value", "hex.builtin.pattern_drawer.var_name": "Name", "hex.builtin.pattern_drawer.visualizer.unknown": "Unknown visualizer", diff --git a/plugins/builtin/source/ui/pattern_drawer.cpp b/plugins/builtin/source/ui/pattern_drawer.cpp index edee73944..684cc2a02 100644 --- a/plugins/builtin/source/ui/pattern_drawer.cpp +++ b/plugins/builtin/source/ui/pattern_drawer.cpp @@ -1167,6 +1167,10 @@ namespace hex::plugin::builtin::ui { ImGui::EndTable(); } + + if (this->m_favoritesUpdateTask.isRunning()) { + ImGui::TextOverlay("hex.builtin.pattern_drawer.updating"_lang, ImGui::GetWindowPos() + ImGui::GetWindowSize() / 2); + } } void PatternDrawer::reset() {