summaryrefslogtreecommitdiff
path: root/ui/xrefstate.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/xrefstate.h')
-rw-r--r--ui/xrefstate.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/xrefstate.h b/ui/xrefstate.h
new file mode 100644
index 00000000..e81be4a0
--- /dev/null
+++ b/ui/xrefstate.h
@@ -0,0 +1,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);
+};