From 98f7febef7473f8063d1f643218e69baa02547b7 Mon Sep 17 00:00:00 2001 From: David Given Date: Sat, 13 Sep 2025 22:54:48 +0200 Subject: [PATCH] Make two variations on the sector map; one for the physical view and one for the logical view. --- src/gui2/abstractsectorview.cc | 193 +++++++ src/gui2/abstractsectorview.h | 29 ++ src/gui2/build.py | 4 + src/gui2/datastore.cc | 26 + src/gui2/datastore.h | 4 +- src/gui2/diskprovider.cc | 4 +- src/gui2/fluxengine.cc | 2 + src/gui2/imageview.cc | 187 +------ src/gui2/imageview.h | 17 +- src/gui2/physicalview.cc | 29 ++ src/gui2/physicalview.h | 15 + src/gui2/rsrc/lang/en_US.json | 4 +- src/gui2/rsrc/layout.hexlyt | 890 ++++++++++++++++++++++++++++++--- src/gui2/summaryview.cc | 2 +- 14 files changed, 1144 insertions(+), 262 deletions(-) create mode 100644 src/gui2/abstractsectorview.cc create mode 100644 src/gui2/abstractsectorview.h create mode 100644 src/gui2/physicalview.cc create mode 100644 src/gui2/physicalview.h diff --git a/src/gui2/abstractsectorview.cc b/src/gui2/abstractsectorview.cc new file mode 100644 index 00000000..35e57dc6 --- /dev/null +++ b/src/gui2/abstractsectorview.cc @@ -0,0 +1,193 @@ +#include +#include +#include +#include "lib/core/globals.h" +#include "lib/data/image.h" +#include "lib/data/sector.h" +#include "globals.h" +#include "physicalview.h" +#include "datastore.h" + +using namespace hex; + +AbstractSectorView::AbstractSectorView(const std::string& name): + View::Window(name, ICON_VS_MAP) +{ +} + +void AbstractSectorView::drawContent() +{ + if (!Datastore::isConfigurationValid()) + return; + auto diskFlux = Datastore::getDiskFlux(); + if (!diskFlux) + return; + auto& image = diskFlux->image; + if (!image) + return; + + auto [minCylinder, maxCylinder, minHead, maxHead] = getBounds(); + + unsigned minSector = UINT_MAX; + unsigned maxSector = 0; + for (int i = 0; i < image->getBlockCount(); i++) + { + auto [logicalCylinder, logicalHead, logicalSector] = + image->findBlock(i); + minSector = std::min(minSector, logicalSector); + maxSector = std::max(maxSector, logicalSector); + } + unsigned sectorCount = maxSector - minSector + 1; + + auto backgroundColour = ImGui::GetColorU32(ImGuiCol_WindowBg); + ImGui::PushStyleColor(ImGuiCol_TableBorderLight, backgroundColour); + ON_SCOPE_EXIT + { + ImGui::PopStyleColor(); + }; + + ImGui::PushStyleColor(ImGuiCol_TableBorderStrong, backgroundColour); + ON_SCOPE_EXIT + { + ImGui::PopStyleColor(); + }; + + if (ImGui::BeginTable("diskSummary", + sectorCount + 2, + ImGuiTableFlags_NoSavedSettings | + ImGuiTableFlags_HighlightHoveredColumn | + ImGuiTableFlags_NoClip | ImGuiTableFlags_NoPadInnerX | + ImGuiTableFlags_NoPadOuterX | ImGuiTableFlags_Borders)) + { + ON_SCOPE_EXIT + { + ImGui::EndTable(); + }; + + ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, {1, 1}); + ON_SCOPE_EXIT + { + ImGui::PopStyleVar(); + }; + + auto originalFontSize = ImGui::GetFontSize(); + ImGui::PushFont(NULL, originalFontSize * 0.6); + ON_SCOPE_EXIT + { + ImGui::PopFont(); + }; + + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, {0, 0}); + ON_SCOPE_EXIT + { + ImGui::PopStyleVar(); + }; + + ImGui::PushStyleVar( + ImGuiStyleVar_SelectableTextAlign, ImVec2(0.5f, 0.5f)); + ON_SCOPE_EXIT + { + ImGui::PopStyleVar(); + }; + + float rowHeight = originalFontSize * 0.6 * 1.3; + ImGui::TableSetupColumn( + "", ImGuiTableColumnFlags_WidthFixed, originalFontSize * 2.0); + ImGui::TableNextRow(ImGuiTableRowFlags_None, rowHeight); + + ImGui::TableNextColumn(); + for (int sector = minSector; sector <= maxSector; sector++) + { + ImGui::TableNextColumn(); + + auto text = fmt::format("s{}", sector); + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + + ImGui::GetColumnWidth() / 2 - + ImGui::CalcTextSize(text.c_str()).x / 2); + ImGui::Text("%s", text.c_str()); + } + + for (unsigned cylinder = minCylinder; cylinder <= maxCylinder; + cylinder++) + for (unsigned head = minHead; head <= maxHead; head++) + { + ImGui::TableNextRow(ImGuiTableRowFlags_None, rowHeight); + ImGui::TableNextColumn(); + + { + auto text = fmt::format("c{}h{}", cylinder, head); + auto textSize = ImGui::CalcTextSize(text.c_str()); + ImGui::SetCursorPos( + {ImGui::GetCursorPosX() + ImGui::GetColumnWidth() / 2 - + textSize.x / 2, + ImGui::GetCursorPosY() + rowHeight / 2 - + textSize.y / 2}); + ImGui::Text("%s", text.c_str()); + } + + for (unsigned sectorId = minSector; sectorId <= maxSector; + sectorId++) + { + ImGui::TableNextColumn(); + auto sector = getSector(cylinder, head, sectorId); + + if (sector) + { + auto colour = ImGuiExt::GetCustomColorU32( + (sector->status == Sector::OK) + ? ImGuiCustomCol_LoggerInfo + : ImGuiCustomCol_LoggerError); + + ImGui::PushStyleColor(ImGuiCol_Header, colour); + ON_SCOPE_EXIT + { + ImGui::PopStyleColor(); + }; + + auto block = Datastore::findBlockByLogicalLocation( + {sector->logicalCylinder, + sector->logicalHead, + sector->logicalSector}); + + auto id = block.has_value() ? fmt::format("#{}", *block) + : "???"; + if (ImGui::Selectable(fmt::format("{}##image_c{}h{}s{}", + id, + cylinder, + head, + sectorId) + .c_str(), + true, + ImGuiSelectableFlags_None, + {0, + rowHeight - + ImGui::GetStyle().CellPadding.y * 2})) + Events::SeekToSectorViaPhysicalLocation::post( + CylinderHeadSector{sector->physicalCylinder, + sector->physicalHead, + sectorId}); + + ImGui::PushFont(NULL, originalFontSize); + ON_SCOPE_EXIT + { + ImGui::PopFont(); + }; + ImGui::SetItemTooltip( + fmt::format("Physical: c{}h{}s{}\n" + "Logical: c{}h{}s{}\n" + "Size: {} bytes\n" + "Status: {}", + sector->physicalCylinder, + sector->physicalHead, + sectorId, + sector->logicalCylinder, + sector->logicalHead, + sectorId, + sector->data.size(), + Sector::statusToString(sector->status)) + .c_str()); + } + } + } + } +} diff --git a/src/gui2/abstractsectorview.h b/src/gui2/abstractsectorview.h new file mode 100644 index 00000000..905bf0db --- /dev/null +++ b/src/gui2/abstractsectorview.h @@ -0,0 +1,29 @@ +#pragma once + +#include +#include "lib/core/globals.h" +#include "lib/data/layout.h" + +class Sector; + +class AbstractSectorView : public hex::View::Window +{ +public: + AbstractSectorView(const std::string& name); + + void drawContent() override; + + [[nodiscard]] bool shouldDraw() const override + { + return true; + } + [[nodiscard]] bool hasViewMenuItemEntry() const override + { + return true; + } + +protected: + virtual std::shared_ptr getSector( + unsigned cylinder, unsigned head, unsigned sectorId) = 0; + virtual Layout::LayoutBounds getBounds() = 0; +}; diff --git a/src/gui2/build.py b/src/gui2/build.py index 33be9cfd..09cfd1ba 100644 --- a/src/gui2/build.py +++ b/src/gui2/build.py @@ -330,8 +330,12 @@ plugin( name="fluxengine-plugin", id="fluxengine", srcs=[ + "./abstractsectorview.cc", + "./abstractsectorview.h", "./imageview.cc", "./imageview.h", + "./physicalview.cc", + "./physicalview.h", "./datastore.cc", "./datastore.h", "./diskprovider.cc", diff --git a/src/gui2/datastore.cc b/src/gui2/datastore.cc index 47ec2c4d..23f929a8 100644 --- a/src/gui2/datastore.cc +++ b/src/gui2/datastore.cc @@ -38,8 +38,11 @@ static std::map> physicalCylinderLayouts; static std::map> sectorByPhysicalLocation; +static std::map> + sectorByLogicalLocation; static std::map blockByLogicalLocation; static Layout::LayoutBounds diskPhysicalBounds; +static Layout::LayoutBounds diskLogicalBounds; static void workerThread_cb() { @@ -210,6 +213,11 @@ const Layout::LayoutBounds& Datastore::getDiskPhysicalBounds() return diskPhysicalBounds; } +const Layout::LayoutBounds& Datastore::getDiskLogicalBounds() +{ + return diskLogicalBounds; +} + std::shared_ptr Datastore::getDiskFlux() { return diskFlux; @@ -224,6 +232,15 @@ std::shared_ptr Datastore::findSectorByPhysicalLocation( return it->second; } +std::shared_ptr Datastore::findSectorByLogicalLocation( + const LogicalLocation& location) +{ + const auto& it = sectorByLogicalLocation.find(location); + if (it == sectorByLogicalLocation.end()) + return nullptr; + return it->second; +} + std::optional Datastore::findBlockByLogicalLocation( const LogicalLocation& location) { @@ -248,14 +265,20 @@ static void badConfiguration() static void rebuildDiskFluxIndices() { sectorByPhysicalLocation.clear(); + sectorByLogicalLocation.clear(); blockByLogicalLocation.clear(); if (diskFlux) { for (const auto& track : diskFlux->tracks) for (const auto& sector : track->sectors) + { sectorByPhysicalLocation[{sector->physicalCylinder, sector->physicalHead, sector->logicalSector}] = sector; + sectorByLogicalLocation[{sector->logicalCylinder, + sector->logicalHead, + sector->logicalSector}] = sector; + } if (diskFlux->image) for (unsigned block = 0; block < diskFlux->image->getBlockCount(); @@ -380,6 +403,8 @@ void Datastore::rebuildConfiguration() { auto locations = Layout::computePhysicalLocations(); auto diskPhysicalBounds = Layout::getBounds(locations); + auto diskLogicalBounds = + Layout::getBounds(Layout::computeLogicalLocations()); decltype(::physicalCylinderLayouts) physicalCylinderLayouts; for (auto& it : locations) @@ -390,6 +415,7 @@ void Datastore::rebuildConfiguration() [=] { ::diskPhysicalBounds = diskPhysicalBounds; + ::diskLogicalBounds = diskLogicalBounds; ::physicalCylinderLayouts = physicalCylinderLayouts; rebuildDiskFluxIndices(); configurationValid = true; diff --git a/src/gui2/datastore.h b/src/gui2/datastore.h index 7171725d..4ba858bc 100644 --- a/src/gui2/datastore.h +++ b/src/gui2/datastore.h @@ -31,10 +31,12 @@ public: getphysicalCylinderLayouts(); static std::shared_ptr findSectorByPhysicalLocation( const CylinderHeadSector& location); + static std::shared_ptr findSectorByLogicalLocation( + const LogicalLocation& location); static std::optional findBlockByLogicalLocation( const LogicalLocation& location); static const Layout::LayoutBounds& getDiskPhysicalBounds(); - static const Layout::LayoutBounds& getImageLogicalBounds(); + static const Layout::LayoutBounds& getDiskLogicalBounds(); static void rebuildConfiguration(); static void onLogMessage(const AnyLogMessage& message); diff --git a/src/gui2/diskprovider.cc b/src/gui2/diskprovider.cc index 7df28d33..d3e4fb9f 100644 --- a/src/gui2/diskprovider.cc +++ b/src/gui2/diskprovider.cc @@ -67,8 +67,8 @@ void DiskProvider::readRaw(u64 offset, void* buffer, size_t size) auto [block, blockOffset] = diskFlux->image->findBlockByOffset(offset); auto sector = diskFlux->image->getBlock(block); - unsigned bytesRemaining = - std::min((unsigned)size, sector->trackLayout->sectorSize - blockOffset); + unsigned bytesRemaining = std::min( + (unsigned)size, sector->trackLayout->sectorSize - blockOffset); auto bytes = sector->data.slice(blockOffset, bytesRemaining); memcpy(buffer, bytes.cbegin(), bytes.size()); diff --git a/src/gui2/fluxengine.cc b/src/gui2/fluxengine.cc index d919348d..48f9cfa1 100644 --- a/src/gui2/fluxengine.cc +++ b/src/gui2/fluxengine.cc @@ -5,6 +5,7 @@ #include #include "globals.h" #include "imageview.h" +#include "physicalview.h" #include "summaryview.h" #include "diskprovider.h" #include "datastore.h" @@ -22,6 +23,7 @@ IMHEX_PLUGIN_SETUP("FluxEngine", "David Given", "FluxEngine integration") hex::ContentRegistry::Provider::add(); hex::ContentRegistry::Views::add(); + hex::ContentRegistry::Views::add(); hex::ContentRegistry::Views::add(); Datastore::init(); diff --git a/src/gui2/imageview.cc b/src/gui2/imageview.cc index 6ae6651f..c8ec8bff 100644 --- a/src/gui2/imageview.cc +++ b/src/gui2/imageview.cc @@ -10,188 +10,15 @@ using namespace hex; -ImageView::ImageView(): - View::Window("fluxengine.view.image.name", ICON_VS_DEBUG_LINE_BY_LINE) +ImageView::ImageView(): AbstractSectorView("fluxengine.view.image.name") {} + +Layout::LayoutBounds ImageView::getBounds() { + return Datastore::getDiskLogicalBounds(); } -void ImageView::drawContent() +std::shared_ptr ImageView::getSector( + unsigned cylinder, unsigned head, unsigned sectorId) { - if (!Datastore::isConfigurationValid()) - return; - auto diskFlux = Datastore::getDiskFlux(); - if (!diskFlux) - return; - auto& image = diskFlux->image; - if (!image) - return; - - auto [minCylinder, maxCylinder, minHead, maxHead] = - Datastore::getDiskPhysicalBounds(); - - unsigned minSector = UINT_MAX; - unsigned maxSector = 0; - for (int i = 0; i < image->getBlockCount(); i++) - { - auto [logicalCylinder, logicalHead, logicalSector] = - image->findBlock(i); - minSector = std::min(minSector, logicalSector); - maxSector = std::max(maxSector, logicalSector); - } - unsigned sectorCount = maxSector - minSector + 1; - - auto backgroundColour = ImGui::GetColorU32(ImGuiCol_WindowBg); - ImGui::PushStyleColor(ImGuiCol_TableBorderLight, backgroundColour); - ON_SCOPE_EXIT - { - ImGui::PopStyleColor(); - }; - - ImGui::PushStyleColor(ImGuiCol_TableBorderStrong, backgroundColour); - ON_SCOPE_EXIT - { - ImGui::PopStyleColor(); - }; - - if (ImGui::BeginTable("diskSummary", - sectorCount + 2, - ImGuiTableFlags_NoSavedSettings | - ImGuiTableFlags_HighlightHoveredColumn | - ImGuiTableFlags_NoClip | ImGuiTableFlags_NoPadInnerX | - ImGuiTableFlags_NoPadOuterX | ImGuiTableFlags_Borders)) - { - ON_SCOPE_EXIT - { - ImGui::EndTable(); - }; - - ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, {1, 1}); - ON_SCOPE_EXIT - { - ImGui::PopStyleVar(); - }; - - auto originalFontSize = ImGui::GetFontSize(); - ImGui::PushFont(NULL, originalFontSize * 0.6); - ON_SCOPE_EXIT - { - ImGui::PopFont(); - }; - - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, {0, 0}); - ON_SCOPE_EXIT - { - ImGui::PopStyleVar(); - }; - - ImGui::PushStyleVar( - ImGuiStyleVar_SelectableTextAlign, ImVec2(0.5f, 0.5f)); - ON_SCOPE_EXIT - { - ImGui::PopStyleVar(); - }; - - float rowHeight = originalFontSize * 0.6 * 1.3; - ImGui::TableSetupColumn( - "", ImGuiTableColumnFlags_WidthFixed, originalFontSize * 2.0); - ImGui::TableNextRow(ImGuiTableRowFlags_None, rowHeight); - - ImGui::TableNextColumn(); - for (int sector = minSector; sector <= maxSector; sector++) - { - ImGui::TableNextColumn(); - - auto text = fmt::format("s{}", sector); - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + - ImGui::GetColumnWidth() / 2 - - ImGui::CalcTextSize(text.c_str()).x / 2); - ImGui::Text("%s", text.c_str()); - } - - for (unsigned physicalCylinder = minCylinder; - physicalCylinder <= maxCylinder; - physicalCylinder++) - for (unsigned physicalHead = minHead; physicalHead <= maxHead; - physicalHead++) - { - ImGui::TableNextRow(ImGuiTableRowFlags_None, rowHeight); - ImGui::TableNextColumn(); - - { - auto text = - fmt::format("c{}h{}", physicalCylinder, physicalHead); - auto textSize = ImGui::CalcTextSize(text.c_str()); - ImGui::SetCursorPos( - {ImGui::GetCursorPosX() + ImGui::GetColumnWidth() / 2 - - textSize.x / 2, - ImGui::GetCursorPosY() + rowHeight / 2 - - textSize.y / 2}); - ImGui::Text("%s", text.c_str()); - } - - for (unsigned sectorId = minSector; sectorId <= maxSector; - sectorId++) - { - ImGui::TableNextColumn(); - auto sector = Datastore::findSectorByPhysicalLocation( - {physicalCylinder, physicalHead, sectorId}); - - if (sector) - { - auto colour = ImGuiExt::GetCustomColorU32( - (sector->status == Sector::OK) - ? ImGuiCustomCol_LoggerInfo - : ImGuiCustomCol_LoggerError); - - ImGui::PushStyleColor(ImGuiCol_Header, colour); - ON_SCOPE_EXIT - { - ImGui::PopStyleColor(); - }; - - auto block = Datastore::findBlockByLogicalLocation( - {sector->logicalCylinder, - sector->logicalHead, - sector->logicalSector}); - - auto id = block.has_value() ? fmt::format("#{}", *block) - : "???"; - if (ImGui::Selectable(fmt::format("{}##image_c{}h{}s{}", - id, - physicalCylinder, - physicalHead, - sectorId) - .c_str(), - true, - ImGuiSelectableFlags_None, - {0, - rowHeight - - ImGui::GetStyle().CellPadding.y * 2})) - Events::SeekToSectorViaPhysicalLocation::post( - CylinderHeadSector{ - physicalCylinder, physicalHead, sectorId}); - - ImGui::PushFont(NULL, originalFontSize); - ON_SCOPE_EXIT - { - ImGui::PopFont(); - }; - ImGui::SetItemTooltip( - fmt::format("Physical: c{}h{}s{}\n" - "Logical: c{}h{}s{}\n" - "Size: {} bytes\n" - "Status: {}", - physicalCylinder, - physicalHead, - sectorId, - sector->logicalCylinder, - sector->logicalHead, - sectorId, - sector->data.size(), - Sector::statusToString(sector->status)) - .c_str()); - } - } - } - } + return Datastore::findSectorByLogicalLocation({cylinder, head, sectorId}); } diff --git a/src/gui2/imageview.h b/src/gui2/imageview.h index 113aa04f..79bbdc88 100644 --- a/src/gui2/imageview.h +++ b/src/gui2/imageview.h @@ -1,21 +1,14 @@ #pragma once #include +#include "abstractsectorview.h" -class ImageView : public hex::View::Window +class ImageView : public AbstractSectorView { public: ImageView(); - ~ImageView() override = default; - void drawContent() override; - - [[nodiscard]] bool shouldDraw() const override - { - return true; - } - [[nodiscard]] bool hasViewMenuItemEntry() const override - { - return true; - } + std::shared_ptr getSector( + unsigned cylinder, unsigned head, unsigned sectorId) override; + Layout::LayoutBounds getBounds() override; }; diff --git a/src/gui2/physicalview.cc b/src/gui2/physicalview.cc new file mode 100644 index 00000000..2651fed2 --- /dev/null +++ b/src/gui2/physicalview.cc @@ -0,0 +1,29 @@ +#include +#include +#include +#include "lib/core/globals.h" +#include "lib/data/image.h" +#include "lib/data/sector.h" +#include "globals.h" +#include "physicalview.h" +#include "datastore.h" + +using namespace hex; + +PhysicalView::PhysicalView(): + AbstractSectorView("fluxengine.view.physical.name") +{ +} + +PhysicalView::~PhysicalView() {} + +Layout::LayoutBounds PhysicalView::getBounds() +{ + return Datastore::getDiskPhysicalBounds(); +} + +std::shared_ptr PhysicalView::getSector( + unsigned cylinder, unsigned head, unsigned sectorId) +{ + return Datastore::findSectorByPhysicalLocation({cylinder, head, sectorId}); +} diff --git a/src/gui2/physicalview.h b/src/gui2/physicalview.h new file mode 100644 index 00000000..af605af4 --- /dev/null +++ b/src/gui2/physicalview.h @@ -0,0 +1,15 @@ +#pragma once + +#include +#include "abstractsectorview.h" + +class PhysicalView : public AbstractSectorView +{ +public: + PhysicalView(); + ~PhysicalView(); + + std::shared_ptr getSector( + unsigned cylinder, unsigned head, unsigned sectorId) override; + Layout::LayoutBounds getBounds() override; +}; diff --git a/src/gui2/rsrc/lang/en_US.json b/src/gui2/rsrc/lang/en_US.json index 40afaa73..761f3ad6 100644 --- a/src/gui2/rsrc/lang/en_US.json +++ b/src/gui2/rsrc/lang/en_US.json @@ -25,5 +25,7 @@ "fluxengine.view.summary.manualDevicePath": "Device path", "fluxengine.view.summary.fluxFile": "Flux file", - "fluxengine.view.image.name": "FluxEngine sector map" + "fluxengine.view.image.name": "FluxEngine logical sector map", + + "fluxengine.view.physical.name": "FluxEngine physical sector map" } diff --git a/src/gui2/rsrc/layout.hexlyt b/src/gui2/rsrc/layout.hexlyt index af3c7662..a345c22b 100644 --- a/src/gui2/rsrc/layout.hexlyt +++ b/src/gui2/rsrc/layout.hexlyt @@ -1,22 +1,22 @@ [Window][ImHexDockSpace] -Pos=0,44 -Size=3740,1920 +Pos=0,33 +Size=2880,1590 Collapsed=0 [Window][###hex.builtin.view.settings.name] -Pos=740,410 -Size=1400,800 +Pos=706,415 +Size=1467,789 Collapsed=0 [Window][###hex.builtin.view.hex_editor.name] -Pos=705,88 -Size=1107,1307 +Pos=0,66 +Size=941,1513 Collapsed=0 DockId=0x00000009,0 [Window][###hex.builtin.view.data_inspector.name] -Pos=621,38 -Size=124,468 +Pos=575,66 +Size=222,1513 Collapsed=0 DockId=0x00000005,0 @@ -39,16 +39,16 @@ Collapsed=0 DockId=0x00000004,4 [Window][###hex.builtin.view.find.name] -Pos=1697,76 -Size=863,1427 +Pos=575,66 +Size=418,1513 Collapsed=0 -DockId=0x00000004,3 +DockId=0x00000004,1 [Window][###hex.builtin.view.bookmarks.name] -Pos=1816,88 -Size=454,1307 +Pos=1046,66 +Size=911,1108 Collapsed=0 -DockId=0x0000000A,0 +DockId=0x00000011,0 [Window][###hex.builtin.view.information.name] Pos=-1889,-120 @@ -61,8 +61,7 @@ Size=560,660 Collapsed=0 [Window][###hex.builtin.view.store.name] -ViewportPos=564,236 -ViewportId=0xB51F9C4A +Pos=768,367 Size=900,700 Collapsed=0 @@ -78,9 +77,10 @@ Size=314,208 Collapsed=0 [Window][###hex.builtin.view.patches.name] -Pos=-1889,-120 -Size=510,420 +Pos=575,66 +Size=222,1513 Collapsed=0 +DockId=0x00000005,0 [Window][###hex.builtin.view.data_processor.name] Pos=747,38 @@ -89,14 +89,14 @@ Collapsed=0 DockId=0x00000004,1 [Window][###hex.builtin.view.tools.name] -Pos=849,268 -Size=431,430 +Pos=575,66 +Size=418,1513 Collapsed=0 DockId=0x00000004,0 [Window][###hex.builtin.view.theme_manager.name] Pos=787,263 -Size=536,745 +Size=450,751 Collapsed=0 [Window][###hex.builtin.tools.invariant_multiplication] @@ -125,9 +125,10 @@ Size=1050,675 Collapsed=0 [Window][###hex.builtin.view.constants.name] -Pos=419,-124 -Size=652,660 +Pos=575,66 +Size=418,1513 Collapsed=0 +DockId=0x00000004,1 [Window][###hex.disassembler.view.disassembler.name] Pos=1004,-204 @@ -140,18 +141,18 @@ Size=400,400 Collapsed=0 [Window][Question] -Pos=1140,720 -Size=600,180 +Pos=1470,740 +Size=800,480 Collapsed=0 [Window][Welcome Screen] -Pos=0,1449 -Size=3740,467 +Pos=0,1194 +Size=2880,392 Collapsed=0 [Window][##achievement_unlocked] -Pos=1093,0 -Size=200,55 +Pos=2430,0 +Size=300,82 Collapsed=0 [Window][hex.builtin.popup.blocking_task.title] @@ -175,9 +176,8 @@ Size=400,118 Collapsed=0 [Window][###hex.builtin.view.highlight_rules.name] -ViewportPos=724,217 -ViewportId=0x31C07F88 -Size=700,400 +Pos=677,540 +Size=1050,600 Collapsed=0 [Window][SideBarWindow] @@ -201,7 +201,7 @@ Collapsed=0 [Window][###hex.builtin.view.achievements.name] Pos=60,60 -Size=800,600 +Size=1200,900 Collapsed=0 [Window][hex.builtin.welcome.start.recent.auto_backups] @@ -231,7 +231,7 @@ Collapsed=0 [Window][Please Wait...] Pos=813,455 -Size=600,400 +Size=450,300 Collapsed=0 [Window][hex.ui.common.question] @@ -240,20 +240,20 @@ Size=600,180 Collapsed=0 [Window][###fluxengine.view.config.name] -Pos=0,88 -Size=701,1818 +Pos=0,66 +Size=572,1513 Collapsed=0 DockId=0x0000000B,0 [Window][###fluxengine.view.summary.name] -Pos=705,1399 -Size=3035,507 +Pos=944,1046 +Size=1936,533 Collapsed=0 DockId=0x00000008,0 [Window][Save Layout] -Pos=1470,830 -Size=800,300 +Pos=1140,697 +Size=600,225 Collapsed=0 [Window][##hex.builtin.view.hex_editor.menu.file.search] @@ -491,10 +491,10 @@ Size=3736,64 Collapsed=0 [Window][###fluxengine.view.image.name] -Pos=2274,88 -Size=1466,1307 +Pos=944,66 +Size=969,977 Collapsed=0 -DockId=0x00000012,0 +DockId=0x00000013,0 [Window][##Banner0x7f20d00f0380] Pos=2,132 @@ -506,8 +506,754 @@ Pos=2,88 Size=3736,64 Collapsed=0 +[Window][##Banner0x7fc890008e10] +Pos=1,66 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f9ae8008e10] +Pos=1,66 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7faae8008e80] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0c2c008e80] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f467c008e80] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fcd60008fe0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fbc50008fe0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f4168008fe0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f53ac008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f3068008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f5910008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fa34c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7ff9e0008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fd4cc008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f72d4008fc0] +Pos=1,99 +Size=3354,48 +Collapsed=0 + +[Window][##Banner0x7f0670008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fbf3c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7014008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0bb8008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fc6ac008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f44c4008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0f04008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fb96c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f15c0008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f5b8c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7b3c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fb390008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f261c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f8c6c008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fdc14008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f5860008fc0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fd8f8008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f91d4008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f04b8008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7988008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7ff364008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f2320008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fb900008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f14f8008fd0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fbf10009030] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fa168009030] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fffc8009030] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f8d00009030] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fc810009060] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0490009060] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7ff81c009090] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f2e38009090] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f8cb4009090] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7efc680091c0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f86240090d0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f83bc009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f38a0009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fffc8009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Toast_0] +Pos=2340,1497 +Size=525,108 +Collapsed=0 + +[Window][##Banner0x7f63ec009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Toast_1] +Pos=2340,1312 +Size=525,108 +Collapsed=0 + +[Window][##Banner0x7f5590009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##hex.builtin.view.hex_editor.menu.edit.set_page_size] +Pos=575,99 +Size=408,129 +Collapsed=0 + +[Window][##Banner0x7fc8d8009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f03000090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f84b8009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f66a4009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7ff304009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7facb8009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fbd18009220] +Pos=1,99 +Size=2835,48 +Collapsed=0 + +[Window][##Banner0x7f7648009220] +Pos=1,99 +Size=2798,48 +Collapsed=0 + +[Window][##Banner0x7f0ccc009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f20e4009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][Create new Workspace] +Pos=1140,697 +Size=600,225 +Collapsed=0 + +[Window][##Banner0x7f4ff00090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f1ae0009220] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f8f480090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f95500090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f3f980090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f3b7c0090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fe2280090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f9d0c009100] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f4b840090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f974c0090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fd2340090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fd18c0090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fe5e80090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f05e80090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f56680090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f9b50009100] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f14400090f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fb2440092a0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f06100092a0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f4c580092a0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f66b80092a0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f43840091e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f867c0091e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fed000091e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f53400092e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f36b00092e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f5eb4009310] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fb1e0009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7710009310] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0348009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fe738009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f1d6c009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f5c80009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fc098009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0044009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fd0e4009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f745c009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fd2e0009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7510009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f53d0009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7bd4009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fbdb8009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f981c009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f01ac009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f023c009300] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f18f8009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f4c04009310] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f2054009310] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fc370009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f91e8009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7e44009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fe8bc009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0d30009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0b78009310] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f169c009310] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f7680009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7feda0009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f41c4009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0d24009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f6554009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f27b8009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f0adc009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f892c009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f3338009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f8e1c009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fc6bc009320] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f43640093e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f62d40093e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f208c0093e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f9e480093e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f44700093e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f35700093e0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f8fd80093f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fa1300093f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fdeec0093f0] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f4dc0009420] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7fffc8009420] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][##Banner0x7f36f0009420] +Pos=1,99 +Size=2877,48 +Collapsed=0 + +[Window][###fluxengine.view.physical.name] +Pos=1916,66 +Size=964,977 +Collapsed=0 +DockId=0x00000014,0 + +[Window][##Banner0x7f03fc009420] +Pos=1,99 +Size=2877,48 +Collapsed=0 + [Table][0x6A4694E4,3] -RefScale=13 +RefScale=24 Column 0 Sort=0v [Table][0x7EE28D79,8] @@ -543,26 +1289,40 @@ Column 6 Weight=1.0000 Column 7 Weight=1.0000 Column 8 Weight=-1.0000 +[Table][0xDB02BA59,4] +Column 0 Weight=1.0000 Sort=0v +Column 1 Weight=1.0000 +Column 2 Weight=1.0000 +Column 3 Weight=1.0000 + +[Table][0x86997068,3] +RefScale=24 +Column 0 Width=21 Sort=0v +Column 1 Width=87 +Column 2 Weight=1.0000 + [Docking][Data] -DockSpace ID=0x81A8BB71 Window=0xF9B0A590 Pos=0,88 Size=3740,1818 Split=X - DockNode ID=0x0000000B Parent=0x81A8BB71 SizeRef=701,1818 Selected=0xFCDCA4E7 - DockNode ID=0x0000000C Parent=0x81A8BB71 SizeRef=3035,1818 Split=X - DockNode ID=0x0000000D Parent=0x0000000C SizeRef=603,1513 Split=X - DockNode ID=0x00000001 Parent=0x0000000D SizeRef=1370,0 Split=Y - DockNode ID=0x00000005 Parent=0x00000001 SizeRef=0,825 Selected=0x5708C63F - DockNode ID=0x00000006 Parent=0x00000001 SizeRef=0,444 Selected=0x7AD1CDDD - DockNode ID=0x00000002 Parent=0x0000000D SizeRef=1188,0 Split=X - DockNode ID=0x00000003 Parent=0x00000002 SizeRef=12,0 - DockNode ID=0x00000004 Parent=0x00000002 SizeRef=52,0 Selected=0xCACA884B - DockNode ID=0x0000000E Parent=0x0000000C SizeRef=3133,1513 Split=Y Selected=0x5708C63F - DockNode ID=0x00000007 Parent=0x0000000E SizeRef=3010,1307 Split=X Selected=0x5708C63F - DockNode ID=0x0000000F Parent=0x00000007 SizeRef=1491,1307 Split=X Selected=0x5708C63F - DockNode ID=0x00000011 Parent=0x0000000F SizeRef=1565,1375 Split=X Selected=0x5708C63F - DockNode ID=0x00000009 Parent=0x00000011 SizeRef=1107,1307 Selected=0x5708C63F - DockNode ID=0x0000000A Parent=0x00000011 SizeRef=454,1307 Selected=0x0CA98265 - DockNode ID=0x00000012 Parent=0x0000000F SizeRef=1466,1375 Selected=0xDA2066A8 - DockNode ID=0x00000010 Parent=0x00000007 SizeRef=1540,1307 Selected=0xA4C6AD5D - DockNode ID=0x00000008 Parent=0x0000000E SizeRef=3010,507 Selected=0x941F5F91 +DockSpace ID=0x81A8BB71 Window=0xF9B0A590 Pos=0,66 Size=2880,1513 Split=X + DockNode ID=0x00000009 Parent=0x81A8BB71 SizeRef=941,1513 Selected=0x5708C63F + DockNode ID=0x0000000A Parent=0x81A8BB71 SizeRef=1936,1513 Split=X + DockNode ID=0x0000000B Parent=0x0000000A SizeRef=572,1818 Selected=0xFCDCA4E7 + DockNode ID=0x0000000C Parent=0x0000000A SizeRef=2305,1818 Split=X + DockNode ID=0x0000000D Parent=0x0000000C SizeRef=418,1513 Split=X + DockNode ID=0x00000001 Parent=0x0000000D SizeRef=1370,0 Split=Y + DockNode ID=0x00000005 Parent=0x00000001 SizeRef=0,825 Selected=0x516992A4 + DockNode ID=0x00000006 Parent=0x00000001 SizeRef=0,444 Selected=0x7AD1CDDD + DockNode ID=0x00000002 Parent=0x0000000D SizeRef=1188,0 Split=X + DockNode ID=0x00000003 Parent=0x00000002 SizeRef=12,0 + DockNode ID=0x00000004 Parent=0x00000002 SizeRef=52,0 Selected=0x1F041AD3 + DockNode ID=0x0000000E Parent=0x0000000C SizeRef=1884,1513 Split=Y Selected=0x5708C63F + DockNode ID=0x00000007 Parent=0x0000000E SizeRef=3010,977 Split=X Selected=0x5708C63F + DockNode ID=0x0000000F Parent=0x00000007 SizeRef=1491,1307 Split=X Selected=0x5708C63F + DockNode ID=0x00000011 Parent=0x0000000F SizeRef=936,1375 Selected=0x0CA98265 + DockNode ID=0x00000012 Parent=0x0000000F SizeRef=945,1375 Split=X Selected=0xDA2066A8 + DockNode ID=0x00000013 Parent=0x00000012 SizeRef=969,977 Selected=0xDA2066A8 + DockNode ID=0x00000014 Parent=0x00000012 SizeRef=964,977 Selected=0x6D92B9F4 + DockNode ID=0x00000010 Parent=0x00000007 SizeRef=1540,1307 Selected=0xA4C6AD5D + DockNode ID=0x00000008 Parent=0x0000000E SizeRef=3010,533 Selected=0x941F5F91 [ImHex][General] hex.builtin.tools.demangler=0 @@ -581,10 +1341,10 @@ hex.builtin.tools.invariant_multiplication=0 hex.builtin.tools.tcp_client_server=0 hex.builtin.tools.euclidean_algorithm=0 hex.builtin.tools.http_requests=0 -fluxengine.view.config.name=1 fluxengine.view.image.name=1 +fluxengine.view.physical.name=1 fluxengine.view.summary.name=1 -hex.builtin.view.bookmarks.name=1 +hex.builtin.view.bookmarks.name=0 hex.builtin.view.command_palette.name=0 hex.builtin.view.constants.name=0 hex.builtin.view.data_inspector.name=0 diff --git a/src/gui2/summaryview.cc b/src/gui2/summaryview.cc index 096dc086..3c41bca4 100644 --- a/src/gui2/summaryview.cc +++ b/src/gui2/summaryview.cc @@ -21,7 +21,7 @@ using namespace hex; static DynamicSettingFactory settings("fluxengine.settings"); SummaryView::SummaryView(): - View::Window("fluxengine.view.summary.name", ICON_VS_DEBUG_LINE_BY_LINE) + View::Window("fluxengine.view.summary.name", ICON_VS_COMPASS) { }