mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-30 05:05:19 -05:00
feat: Highlight patterns in hex editor when hovering over pattern data row
Fixes #1742
This commit is contained in:
@@ -37,6 +37,10 @@ namespace hex::plugin::builtin {
|
||||
(*m_patternDrawer)->jumpToPattern(pattern);
|
||||
});
|
||||
|
||||
ImHexApi::HexEditor::addHoverHighlightProvider([this](const prv::Provider *, u64 address, const u8 *, size_t size) {
|
||||
return m_hoveredPatternRegion.overlaps(Region { address, size });
|
||||
});
|
||||
|
||||
m_patternDrawer.setOnCreateCallback([this](const prv::Provider *provider, auto &drawer) {
|
||||
drawer = std::make_unique<ui::PatternDrawer>();
|
||||
|
||||
@@ -45,6 +49,13 @@ namespace hex::plugin::builtin {
|
||||
RequestPatternEditorSelectionChange::post(pattern->getLine(), 0);
|
||||
});
|
||||
|
||||
drawer->setHoverCallback([this](const pl::ptrn::Pattern *pattern) {
|
||||
if (pattern == nullptr)
|
||||
m_hoveredPatternRegion = Region::Invalid();
|
||||
else
|
||||
m_hoveredPatternRegion = { pattern->getOffset(), pattern->getSize() };
|
||||
});
|
||||
|
||||
drawer->setTreeStyle(m_treeStyle);
|
||||
drawer->enableRowColoring(m_rowColoring);
|
||||
drawer->enablePatternEditing(provider->isWritable());
|
||||
|
||||
Reference in New Issue
Block a user