1
0
mirror of synced 2024-11-18 04:47:12 +01:00
ImHex/include/views/view_data_processor.hpp

42 lines
892 B
C++

#pragma once
#include <hex.hpp>
#include <imgui.h>
#include <hex/views/view.hpp>
#include <hex/data_processor/node.hpp>
#include <hex/data_processor/link.hpp>
#include <array>
#include <string>
namespace hex {
namespace prv { class Provider; }
class ViewDataProcessor : public View {
public:
ViewDataProcessor();
~ViewDataProcessor() override;
void drawContent() override;
void drawMenu() override;
private:
std::list<dp::Node*> m_endNodes;
std::list<dp::Node*> m_nodes;
std::list<dp::Link> m_links;
std::vector<prv::Overlay*> m_dataOverlays;
int m_rightClickedId = -1;
ImVec2 m_rightClickedCoords;
std::optional<dp::Node::NodeError> m_currNodeError;
void eraseLink(u32 id);
void eraseNodes(const std::vector<int> &ids);
void processNodes();
};
}