diff --git a/lib/libimhex/source/api/theme_manager.cpp b/lib/libimhex/source/api/theme_manager.cpp index 91ef32dee..d7588459c 100644 --- a/lib/libimhex/source/api/theme_manager.cpp +++ b/lib/libimhex/source/api/theme_manager.cpp @@ -102,7 +102,8 @@ namespace hex::api { if (theme.contains("base")) { if (theme["base"].is_string()) { - changeTheme(theme["base"].get()); + if (theme["base"] != name) + changeTheme(theme["base"].get()); } else { hex::log::error("Theme '{}' has invalid base theme!", name); } diff --git a/plugins/builtin/include/content/views/view_store.hpp b/plugins/builtin/include/content/views/view_store.hpp index 0e4a02770..9524adc0f 100644 --- a/plugins/builtin/include/content/views/view_store.hpp +++ b/plugins/builtin/include/content/views/view_store.hpp @@ -17,7 +17,7 @@ namespace hex::plugin::builtin { NotAttempted, InProgress, Failed, - Succeded, + Succeeded, }; struct StoreEntry { @@ -45,7 +45,7 @@ namespace hex::plugin::builtin { [[nodiscard]] bool hasViewMenuItemEntry() const override { return false; } [[nodiscard]] ImVec2 getMinSize() const override { return { 600, 400 }; } - [[nodiscard]] ImVec2 getMaxSize() const override { return { 800, 600 }; } + [[nodiscard]] ImVec2 getMaxSize() const override { return { 900, 700 }; } private: Net m_net; @@ -54,7 +54,7 @@ namespace hex::plugin::builtin { std::fs::path m_downloadPath; RequestStatus m_requestStatus = RequestStatus::NotAttempted; - std::vector m_patterns, m_includes, m_magics, m_constants, m_yara, m_encodings; + std::vector m_patterns, m_includes, m_magics, m_constants, m_yara, m_encodings, m_nodes, m_themes; void drawStore(); diff --git a/plugins/builtin/romfs/lang/en_US.json b/plugins/builtin/romfs/lang/en_US.json index 814bf9f6b..594d1efa1 100644 --- a/plugins/builtin/romfs/lang/en_US.json +++ b/plugins/builtin/romfs/lang/en_US.json @@ -795,7 +795,9 @@ "hex.builtin.view.store.tab.encodings": "Encodings", "hex.builtin.view.store.tab.libraries": "Libraries", "hex.builtin.view.store.tab.magics": "Magic Files", + "hex.builtin.view.store.tab.nodes": "Nodes", "hex.builtin.view.store.tab.patterns": "Patterns", + "hex.builtin.view.store.tab.themes": "Themes", "hex.builtin.view.store.tab.yara": "Yara Rules", "hex.builtin.view.store.update": "Update", "hex.builtin.view.theme_manager.name": "Theme Manager", diff --git a/plugins/builtin/romfs/themes/classic.json b/plugins/builtin/romfs/themes/classic.json index 355705ac5..2e0ec2b65 100644 --- a/plugins/builtin/romfs/themes/classic.json +++ b/plugins/builtin/romfs/themes/classic.json @@ -1,6 +1,5 @@ { - "name": "Classic", - "image_postfix": "_dark", + "base": "Classic", "colors": { "imgui": { "border": "#7F7F7F7F", @@ -59,20 +58,18 @@ "title-background-collapse": "#66668CCC", "window-background": "#000000D8" }, - "implot": { - "axis-grid": "#E5E5E53F", - "axis-text": "#E5E5E5FF", - "crosshairs": "#7F7F7FBF", - "error-bar": "#E5E5E5FF", - "frame-bg": "#6D6D6D63", - "inlay-text": "#E5E5E5FF", - "legend-bg": "#1C1C23EA", - "legend-border": "#7F7F7F7F", - "legend-text": "#E5E5E5FF", - "plot-bg": "#00000059", - "plot-border": "#7F7F7F7F", - "selection": "#F7F763FF", - "title-text": "#E5E5E5FF" + "imhex": { + "desc-button": "#282850FF", + "desc-button-active": "#505078FF", + "desc-button-hovered": "#3C3C64FF", + "highlight": "#4DC69BFF", + "toolbar-blue": "#06539BFF", + "toolbar-brown": "#DBB377FF", + "toolbar-gray": "#E6E6E6FF", + "toolbar-green": "#388B42FF", + "toolbar-purple": "#672A78FF", + "toolbar-red": "#E74C3CFF", + "toolbar-yellow": "#F1C40FFF" }, "imnodes": { "box-selector": "#5252A164", @@ -105,18 +102,28 @@ "title-bar-hovered": "#5252A1FF", "title-bar-selected": "#5252A1FF" }, - "imhex": { - "desc-button": "#282850FF", - "desc-button-active": "#505078FF", - "desc-button-hovered": "#3C3C64FF", - "highlight": "#4DC69BFF", - "toolbar-blue": "#06539BFF", - "toolbar-brown": "#DBB377FF", - "toolbar-gray": "#E6E6E6FF", - "toolbar-green": "#388B42FF", - "toolbar-purple": "#672A78FF", - "toolbar-red": "#E74C3CFF", - "toolbar-yellow": "#F1C40FFF" + "implot": { + "axis-bg": "#00000000", + "axis-bg-active": "#00000000", + "axis-bg-hovered": "#00000000", + "axis-grid": "#E5E5E53F", + "axis-text": "#E5E5E5FF", + "axis-tick": "#0000003F", + "crosshairs": "#7F7F7FBF", + "error-bar": "#E5E5E5FF", + "fill": "#00000000", + "frame-bg": "#6D6D6D63", + "inlay-text": "#E5E5E5FF", + "legend-bg": "#1C1C23EA", + "legend-border": "#7F7F7F7F", + "legend-text": "#E5E5E5FF", + "line": "#00000000", + "marker-fill": "#00000000", + "marker-outline": "#00000000", + "plot-bg": "#00000059", + "plot-border": "#7F7F7F7F", + "selection": "#F7F763FF", + "title-text": "#E5E5E5FF" }, "text-editor": { "background": "#000080FF", @@ -141,5 +148,165 @@ "selection": "#00FFFF80", "string": "#008080FF" } + }, + "image_postfix": "_dark", + "name": "Classic", + "styles": { + "imgui": { + "alpha": 1.0, + "button-text-align": [ + 0.5, + 0.5 + ], + "cell-padding": [ + 4.0, + 2.0 + ], + "child-border-size": 1.0, + "child-rounding": 0.0, + "disabled-alpha": 0.6000000238418579, + "frame-border-size": 0.0, + "frame-padding": [ + 4.0, + 3.0 + ], + "frame-rounding": 0.0, + "grab-min-size": 12.0, + "grab-rounding": 0.0, + "indent-spacing": 10.0, + "item-inner-spacing": [ + 4.0, + 4.0 + ], + "item-spacing": [ + 8.0, + 4.0 + ], + "popup-border-size": 1.0, + "popup-rounding": 0.0, + "scrollbar-rounding": 9.0, + "scrollbar-size": 14.0, + "selectable-text-align": [ + 0.0, + 0.0 + ], + "tab-rounding": 4.0, + "window-border-size": 1.0, + "window-min-size": [ + 32.0, + 32.0 + ], + "window-padding": [ + 8.0, + 8.0 + ], + "window-rounding": 0.0, + "window-title-align": [ + 0.0, + 0.5 + ] + }, + "imnodes": { + "grid-spacing": 24.0, + "link-hover-distance": 10.0, + "link-line-segments-per-length": 0.10000000149011612, + "link-thickness": 3.0, + "mini-map-offset": [ + 4.0, + 4.0 + ], + "mini-map-padding": [ + 8.0, + 8.0 + ], + "node-border-thickness": 1.0, + "node-corner-rounding": 4.0, + "node-padding": [ + 8.0, + 8.0 + ], + "pin-circle-radius": 4.0, + "pin-hover-radius": 10.0, + "pin-line-thickness": 1.0, + "pin-offset": 0.0, + "pin-quad-side-length": 7.0, + "pin-triangle-side-length": 9.5 + }, + "implot": { + "annotation-padding": [ + 2.0, + 2.0 + ], + "digital-bit-gap": 4.0, + "digital-bit-height": 8.0, + "error-bar-size": 5.0, + "error-bar-weight": 1.5, + "fill-alpha": 1.0, + "fit-padding": [ + 0.0, + 0.0 + ], + "label-padding": [ + 5.0, + 5.0 + ], + "legend-inner-padding": [ + 5.0, + 5.0 + ], + "legend-padding": [ + 10.0, + 10.0 + ], + "legend-spacing": [ + 5.0, + 0.0 + ], + "line-weight": 1.0, + "major-grid-size": [ + 1.0, + 1.0 + ], + "major-tick-len": [ + 10.0, + 10.0 + ], + "major-tick-size": [ + 1.0, + 1.0 + ], + "marker-size": 4.0, + "marker-weight": 1.0, + "minor-alpha": 0.25, + "minor-grid-size": [ + 1.0, + 1.0 + ], + "minor-tick-len": [ + 5.0, + 5.0 + ], + "minor-tick-size": [ + 1.0, + 1.0 + ], + "mouse-pos-padding": [ + 10.0, + 10.0 + ], + "plot-border-size": 1.0, + "plot-default-size": [ + 400.0, + 300.0 + ], + "plot-min-size": [ + 200.0, + 150.0 + ], + "plot-padding": [ + 10.0, + 10.0 + ] + } } } \ No newline at end of file diff --git a/plugins/builtin/romfs/themes/dark.json b/plugins/builtin/romfs/themes/dark.json index 540c2f4bf..3ec414b13 100644 --- a/plugins/builtin/romfs/themes/dark.json +++ b/plugins/builtin/romfs/themes/dark.json @@ -1,6 +1,5 @@ { - "name": "Dark", - "image_postfix": "_dark", + "base": "Dark", "colors": { "imgui": { "border": "#6D6D7F7F", @@ -59,19 +58,18 @@ "title-background-collapse": "#232323FF", "window-background": "#0F0F0FEF" }, - "implot": { - "axis-grid": "#FFFFFF3F", - "axis-text": "#FFFFFFFF", - "crosshairs": "#FFFFFF7F", - "frame-bg": "#FFFFFF11", - "inlay-text": "#FFFFFFFF", - "legend-bg": "#141414EF", - "legend-border": "#6D6D7F7F", - "legend-text": "#FFFFFFFF", - "plot-bg": "#0000007F", - "plot-border": "#6D6D7F7F", - "selection": "#FF9900FF", - "title-text": "#FFFFFFFF" + "imhex": { + "desc-button": "#141414FF", + "desc-button-active": "#3C3C3CFF", + "desc-button-hovered": "#282828FF", + "highlight": "#4DC69BFF", + "toolbar-blue": "#06539BFF", + "toolbar-brown": "#DBB377FF", + "toolbar-gray": "#E6E6E6FF", + "toolbar-green": "#388B42FF", + "toolbar-purple": "#672A78FF", + "toolbar-red": "#E74C3CFF", + "toolbar-yellow": "#F1C40FFF" }, "imnodes": { "box-selector": "#3D85E01E", @@ -104,18 +102,28 @@ "title-bar-hovered": "#4296FAFF", "title-bar-selected": "#4296FAFF" }, - "imhex": { - "desc-button": "#141414FF", - "desc-button-active": "#3C3C3CFF", - "desc-button-hovered": "#282828FF", - "highlight": "#4DC69BFF", - "toolbar-blue": "#06539BFF", - "toolbar-brown": "#DBB377FF", - "toolbar-gray": "#E6E6E6FF", - "toolbar-green": "#388B42FF", - "toolbar-purple": "#672A78FF", - "toolbar-red": "#E74C3CFF", - "toolbar-yellow": "#F1C40FFF" + "implot": { + "axis-bg": "#00000000", + "axis-bg-active": "#00000000", + "axis-bg-hovered": "#00000000", + "axis-grid": "#FFFFFF3F", + "axis-text": "#FFFFFFFF", + "axis-tick": "#00000000", + "crosshairs": "#FFFFFF7F", + "error-bar": "#00000000", + "fill": "#00000000", + "frame-bg": "#FFFFFF11", + "inlay-text": "#FFFFFFFF", + "legend-bg": "#141414EF", + "legend-border": "#6D6D7F7F", + "legend-text": "#FFFFFFFF", + "line": "#00000000", + "marker-fill": "#00000000", + "marker-outline": "#00000000", + "plot-bg": "#0000007F", + "plot-border": "#6D6D7F7F", + "selection": "#FF9900FF", + "title-text": "#FFFFFFFF" }, "text-editor": { "background": "#101010FF", @@ -140,5 +148,165 @@ "selection": "#2060A080", "string": "#E07070FF" } + }, + "image_postfix": "_dark", + "name": "Dark", + "styles": { + "imgui": { + "alpha": 1.0, + "button-text-align": [ + 0.5, + 0.5 + ], + "cell-padding": [ + 4.0, + 2.0 + ], + "child-border-size": 1.0, + "child-rounding": 0.0, + "disabled-alpha": 0.6000000238418579, + "frame-border-size": 0.0, + "frame-padding": [ + 4.0, + 3.0 + ], + "frame-rounding": 0.0, + "grab-min-size": 12.0, + "grab-rounding": 0.0, + "indent-spacing": 10.0, + "item-inner-spacing": [ + 4.0, + 4.0 + ], + "item-spacing": [ + 8.0, + 4.0 + ], + "popup-border-size": 1.0, + "popup-rounding": 0.0, + "scrollbar-rounding": 9.0, + "scrollbar-size": 14.0, + "selectable-text-align": [ + 0.0, + 0.0 + ], + "tab-rounding": 4.0, + "window-border-size": 1.0, + "window-min-size": [ + 32.0, + 32.0 + ], + "window-padding": [ + 8.0, + 8.0 + ], + "window-rounding": 0.0, + "window-title-align": [ + 0.0, + 0.5 + ] + }, + "imnodes": { + "grid-spacing": 24.0, + "link-hover-distance": 10.0, + "link-line-segments-per-length": 0.10000000149011612, + "link-thickness": 3.0, + "mini-map-offset": [ + 4.0, + 4.0 + ], + "mini-map-padding": [ + 8.0, + 8.0 + ], + "node-border-thickness": 1.0, + "node-corner-rounding": 4.0, + "node-padding": [ + 8.0, + 8.0 + ], + "pin-circle-radius": 4.0, + "pin-hover-radius": 10.0, + "pin-line-thickness": 1.0, + "pin-offset": 0.0, + "pin-quad-side-length": 7.0, + "pin-triangle-side-length": 9.5 + }, + "implot": { + "annotation-padding": [ + 2.0, + 2.0 + ], + "digital-bit-gap": 4.0, + "digital-bit-height": 8.0, + "error-bar-size": 5.0, + "error-bar-weight": 1.5, + "fill-alpha": 1.0, + "fit-padding": [ + 0.0, + 0.0 + ], + "label-padding": [ + 5.0, + 5.0 + ], + "legend-inner-padding": [ + 5.0, + 5.0 + ], + "legend-padding": [ + 10.0, + 10.0 + ], + "legend-spacing": [ + 5.0, + 0.0 + ], + "line-weight": 1.0, + "major-grid-size": [ + 1.0, + 1.0 + ], + "major-tick-len": [ + 10.0, + 10.0 + ], + "major-tick-size": [ + 1.0, + 1.0 + ], + "marker-size": 4.0, + "marker-weight": 1.0, + "minor-alpha": 0.25, + "minor-grid-size": [ + 1.0, + 1.0 + ], + "minor-tick-len": [ + 5.0, + 5.0 + ], + "minor-tick-size": [ + 1.0, + 1.0 + ], + "mouse-pos-padding": [ + 10.0, + 10.0 + ], + "plot-border-size": 1.0, + "plot-default-size": [ + 400.0, + 300.0 + ], + "plot-min-size": [ + 200.0, + 150.0 + ], + "plot-padding": [ + 10.0, + 10.0 + ] + } } } \ No newline at end of file diff --git a/plugins/builtin/romfs/themes/light.json b/plugins/builtin/romfs/themes/light.json index 37a9d5cad..cd03802a1 100644 --- a/plugins/builtin/romfs/themes/light.json +++ b/plugins/builtin/romfs/themes/light.json @@ -1,6 +1,5 @@ { - "name": "Light", - "image_postfix": "_light", + "base": "Light", "colors": { "imgui": { "border": "#0000004C", @@ -59,20 +58,18 @@ "title-background-collapse": "#DBDBDBFF", "window-background": "#EFEFEFFF" }, - "implot": { - "axis-grid": "#FFFFFFFF", - "axis-text": "#000000FF", - "axis-tick": "#0000003F", - "crosshairs": "#0000007F", - "frame-bg": "#FFFFFFFF", - "inlay-text": "#000000FF", - "legend-bg": "#FFFFFFF9", - "legend-border": "#D1D1D1CC", - "legend-text": "#000000FF", - "plot-bg": "#6B91FF21", - "plot-border": "#00000000", - "selection": "#D1A307FF", - "title-text": "#000000FF" + "imhex": { + "desc-button": "#E6E6E6FF", + "desc-button-active": "#BEBEBEFF", + "desc-button-hovered": "#D2D2D2FF", + "highlight": "#299770FF", + "toolbar-blue": "#06539BFF", + "toolbar-brown": "#DBB377FF", + "toolbar-gray": "#191919FF", + "toolbar-green": "#388B42FF", + "toolbar-purple": "#672A78FF", + "toolbar-red": "#E74C3CFF", + "toolbar-yellow": "#F1C40FFF" }, "imnodes": { "box-selector": "#5AAAFA1E", @@ -105,18 +102,28 @@ "title-bar-hovered": "#D1D1D1FF", "title-bar-selected": "#D1D1D1FF" }, - "imhex": { - "desc-button": "#E6E6E6FF", - "desc-button-active": "#BEBEBEFF", - "desc-button-hovered": "#D2D2D2FF", - "highlight": "#299770FF", - "toolbar-blue": "#06539BFF", - "toolbar-brown": "#DBB377FF", - "toolbar-gray": "#191919FF", - "toolbar-green": "#388B42FF", - "toolbar-purple": "#672A78FF", - "toolbar-red": "#E74C3CFF", - "toolbar-yellow": "#F1C40FFF" + "implot": { + "axis-bg": "#00000000", + "axis-bg-active": "#00000000", + "axis-bg-hovered": "#00000000", + "axis-grid": "#FFFFFFFF", + "axis-text": "#000000FF", + "axis-tick": "#0000003F", + "crosshairs": "#0000007F", + "error-bar": "#00000000", + "fill": "#00000000", + "frame-bg": "#FFFFFFFF", + "inlay-text": "#000000FF", + "legend-bg": "#FFFFFFF9", + "legend-border": "#D1D1D1CC", + "legend-text": "#000000FF", + "line": "#00000000", + "marker-fill": "#00000000", + "marker-outline": "#00000000", + "plot-bg": "#6B91FF21", + "plot-border": "#00000000", + "selection": "#D1A307FF", + "title-text": "#000000FF" }, "text-editor": { "background": "#FFFFFFFF", @@ -141,5 +148,165 @@ "selection": "#00006080", "string": "#A02020FF" } + }, + "image_postfix": "_light", + "name": "Light", + "styles": { + "imgui": { + "alpha": 1.0, + "button-text-align": [ + 0.5, + 0.5 + ], + "cell-padding": [ + 4.0, + 2.0 + ], + "child-border-size": 1.0, + "child-rounding": 0.0, + "disabled-alpha": 0.6000000238418579, + "frame-border-size": 0.0, + "frame-padding": [ + 4.0, + 3.0 + ], + "frame-rounding": 0.0, + "grab-min-size": 12.0, + "grab-rounding": 0.0, + "indent-spacing": 10.0, + "item-inner-spacing": [ + 4.0, + 4.0 + ], + "item-spacing": [ + 8.0, + 4.0 + ], + "popup-border-size": 1.0, + "popup-rounding": 0.0, + "scrollbar-rounding": 9.0, + "scrollbar-size": 14.0, + "selectable-text-align": [ + 0.0, + 0.0 + ], + "tab-rounding": 4.0, + "window-border-size": 1.0, + "window-min-size": [ + 32.0, + 32.0 + ], + "window-padding": [ + 8.0, + 8.0 + ], + "window-rounding": 0.0, + "window-title-align": [ + 0.0, + 0.5 + ] + }, + "imnodes": { + "grid-spacing": 24.0, + "link-hover-distance": 10.0, + "link-line-segments-per-length": 0.10000000149011612, + "link-thickness": 3.0, + "mini-map-offset": [ + 4.0, + 4.0 + ], + "mini-map-padding": [ + 8.0, + 8.0 + ], + "node-border-thickness": 1.0, + "node-corner-rounding": 4.0, + "node-padding": [ + 8.0, + 8.0 + ], + "pin-circle-radius": 4.0, + "pin-hover-radius": 10.0, + "pin-line-thickness": 1.0, + "pin-offset": 0.0, + "pin-quad-side-length": 7.0, + "pin-triangle-side-length": 9.5 + }, + "implot": { + "annotation-padding": [ + 2.0, + 2.0 + ], + "digital-bit-gap": 4.0, + "digital-bit-height": 8.0, + "error-bar-size": 5.0, + "error-bar-weight": 1.5, + "fill-alpha": 1.0, + "fit-padding": [ + 0.0, + 0.0 + ], + "label-padding": [ + 5.0, + 5.0 + ], + "legend-inner-padding": [ + 5.0, + 5.0 + ], + "legend-padding": [ + 10.0, + 10.0 + ], + "legend-spacing": [ + 5.0, + 0.0 + ], + "line-weight": 1.0, + "major-grid-size": [ + 1.0, + 1.0 + ], + "major-tick-len": [ + 10.0, + 10.0 + ], + "major-tick-size": [ + 1.0, + 1.0 + ], + "marker-size": 4.0, + "marker-weight": 1.0, + "minor-alpha": 0.25, + "minor-grid-size": [ + 1.0, + 1.0 + ], + "minor-tick-len": [ + 5.0, + 5.0 + ], + "minor-tick-size": [ + 1.0, + 1.0 + ], + "mouse-pos-padding": [ + 10.0, + 10.0 + ], + "plot-border-size": 1.0, + "plot-default-size": [ + 400.0, + 300.0 + ], + "plot-min-size": [ + 200.0, + 150.0 + ], + "plot-padding": [ + 10.0, + 10.0 + ] + } } } \ No newline at end of file diff --git a/plugins/builtin/source/content/views/view_store.cpp b/plugins/builtin/source/content/views/view_store.cpp index 225fe4991..d1c2c417a 100644 --- a/plugins/builtin/source/content/views/view_store.cpp +++ b/plugins/builtin/source/content/views/view_store.cpp @@ -42,7 +42,7 @@ namespace hex::plugin::builtin { this->refresh(); } - auto drawTab = [this](auto title, fs::ImHexPath pathType, auto &content, const std::function &downloadDoneCallback) { + auto drawTab = [this](auto title, fs::ImHexPath pathType, auto &content, const std::function &downloadDoneCallback = []{}) { if (ImGui::BeginTabItem(title)) { if (ImGui::BeginTable("##pattern_language", 3, ImGuiTableFlags_ScrollY | ImGuiTableFlags_Borders | ImGuiTableFlags_SizingStretchSame | ImGuiTableFlags_RowBg)) { ImGui::TableSetupScrollFreeze(0, 1); @@ -80,7 +80,7 @@ namespace hex::plugin::builtin { tar.extractAll(this->m_downloadPath.parent_path() / this->m_downloadPath.stem()); } - downloadDoneCallback(entry); + downloadDoneCallback(); } else log::error("Download failed! HTTP Code {}", response.code); @@ -114,12 +114,14 @@ namespace hex::plugin::builtin { }; if (ImGui::BeginTabBar("storeTabs")) { - drawTab("hex.builtin.view.store.tab.patterns"_lang, fs::ImHexPath::Patterns, this->m_patterns, [](auto) {}); - drawTab("hex.builtin.view.store.tab.libraries"_lang, fs::ImHexPath::PatternsInclude, this->m_includes, [](auto) {}); - drawTab("hex.builtin.view.store.tab.magics"_lang, fs::ImHexPath::Magic, this->m_magics, [](auto) { magic::compile(); }); - drawTab("hex.builtin.view.store.tab.constants"_lang, fs::ImHexPath::Constants, this->m_constants, [](auto) {}); - drawTab("hex.builtin.view.store.tab.encodings"_lang, fs::ImHexPath::Encodings, this->m_encodings, [](auto) {}); - drawTab("hex.builtin.view.store.tab.yara"_lang, fs::ImHexPath::Yara, this->m_yara, [](auto) {}); + drawTab("hex.builtin.view.store.tab.patterns"_lang, fs::ImHexPath::Patterns, this->m_patterns); + drawTab("hex.builtin.view.store.tab.libraries"_lang, fs::ImHexPath::PatternsInclude, this->m_includes); + drawTab("hex.builtin.view.store.tab.magics"_lang, fs::ImHexPath::Magic, this->m_magics, magic::compile); + drawTab("hex.builtin.view.store.tab.constants"_lang, fs::ImHexPath::Constants, this->m_constants); + drawTab("hex.builtin.view.store.tab.encodings"_lang, fs::ImHexPath::Encodings, this->m_encodings); + drawTab("hex.builtin.view.store.tab.yara"_lang, fs::ImHexPath::Yara, this->m_yara); + drawTab("hex.builtin.view.store.tab.nodes"_lang, fs::ImHexPath::Nodes, this->m_nodes); + drawTab("hex.builtin.view.store.tab.themes"_lang, fs::ImHexPath::Themes, this->m_themes); ImGui::EndTabBar(); } @@ -143,8 +145,8 @@ namespace hex::plugin::builtin { void ViewStore::parseResponse() { auto response = this->m_apiRequest.get(); - this->m_requestStatus = response.code == 200 ? RequestStatus::Succeded : RequestStatus::Failed; - if (this->m_requestStatus == RequestStatus::Succeded) { + this->m_requestStatus = response.code == 200 ? RequestStatus::Succeeded : RequestStatus::Failed; + if (this->m_requestStatus == RequestStatus::Succeeded) { auto json = nlohmann::json::parse(response.body); auto parseStoreEntries = [](auto storeJson, const std::string &name, fs::ImHexPath pathType, std::vector &results) { @@ -191,6 +193,8 @@ namespace hex::plugin::builtin { parseStoreEntries(json, "constants", fs::ImHexPath::Constants, this->m_constants); parseStoreEntries(json, "yara", fs::ImHexPath::Yara, this->m_yara); parseStoreEntries(json, "encodings", fs::ImHexPath::Encodings, this->m_encodings); + parseStoreEntries(json, "nodes", fs::ImHexPath::Nodes, this->m_nodes); + parseStoreEntries(json, "themes", fs::ImHexPath::Themes, this->m_themes); } this->m_apiRequest = {}; }