#pragma once #include "utils.hpp" #include "views/view.hpp" #include "imgui_memory_editor.h" #include "imfilebrowser.h" #include #include #include #include "views/pattern_data.hpp" namespace hex { namespace prv { class Provider; } class ViewHexEditor : public View { public: ViewHexEditor(prv::Provider* &dataProvider, std::vector &patternData); ~ViewHexEditor() override; void createView() override; void createMenu() override; bool handleShortcut(int key, int mods) override; private: MemoryEditor m_memoryEditor; ImGui::FileBrowser m_fileBrowser; prv::Provider* &m_dataProvider; std::vector &m_patternData; char m_searchBuffer[0xFFFF] = { 0 }; s64 m_lastSearchIndex = 0; std::vector> m_lastSearch; u64 m_gotoAddress = 0; void drawSearchPopup(); void drawGotoPopup(); }; }