sys: Add highlighting provider function support, move pattern highlighting code out of hex editor

This commit is contained in:
WerWolv
2022-02-16 14:57:13 +01:00
parent b9030d7e47
commit 7117592f38
6 changed files with 83 additions and 30 deletions

View File

@@ -3,8 +3,9 @@
#include <hex.hpp>
#include <list>
#include <vector>
#include <optional>
#include <string>
#include <vector>
#include <hex/helpers/concepts.hpp>
#include <hex/api/task.hpp>
@@ -32,21 +33,32 @@ namespace hex {
class Highlighting {
public:
Highlighting() = default;
Highlighting(Region region, color_t color, const std::string &tooltip = "");
Highlighting(Region region, color_t color, std::string tooltip = "");
[[nodiscard]] const Region &getRegion() const { return this->m_region; }
[[nodiscard]] const color_t &getColor() const { return this->m_color; }
[[nodiscard]] const std::string &getTooltip() const { return this->m_tooltip; }
private:
Region m_region;
color_t m_color;
Region m_region = {};
color_t m_color = 0x00;
std::string m_tooltip;
};
u32 addHighlight(const Region &region, color_t color, std::string tooltip = "");
namespace impl {
using HighlightingFunction = std::function<std::optional<Highlighting>(u64)>;
std::map<u32, Highlighting> &getHighlights();
std::map<u32, HighlightingFunction> &getHighlightingFunctions();
}
u32 addHighlight(const Region &region, color_t color, const std::string &tooltip = "");
void removeHighlight(u32 id);
std::map<u32, Highlighting> &getHighlights();
u32 addHighlightingProvider(const impl::HighlightingFunction &function);
void removeHighlightingProvider(u32 id);
Region getSelection();
void setSelection(const Region &region);