summaryrefslogtreecommitdiff
path: root/ui/xrefstate.h
blob: e81be4a007d256c47b9257c66a4d002d8c3412ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#include "binaryninjaapi.h"
#include "uicontext.h"

class SplitPaneContainer;
class SplitPaneWidget;

class BINARYNINJAUIAPI CrossReferenceState
{
	std::map<SplitPaneContainer*, std::map<QString, SelectionInfoForXref>> m_curXref;
	SplitPaneContainer* m_currentContainer = nullptr;
	QString m_currentDataType;

public:
	CrossReferenceState();

	std::optional<SelectionInfoForXref> getCurrentSelection() const;

	void updateCrossReferences(ViewFrame* frame, const SelectionInfoForXref& selection);
	void beginNavigationForCrossReference(ViewFrame* frame, const SelectionInfoForXref& selection);

	void setActiveContext(ViewFrame* frame);
	void destroyContext(SplitPaneWidget* splitPane);

	void newPinnedTab();
	void newPinnedPane();

	void bindActions(UIContext* context);
};