summaryrefslogtreecommitdiff
path: root/ui/xrefstate.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-08-06 16:41:26 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-08-29 15:42:09 -0400
commit5c4abf48ab4b77555a79777bc37d52c842ee149a (patch)
treea9daf8875c7ed70b55bc730de5a63621801a8019 /ui/xrefstate.h
parent2303f75b080f6dd0c9a5c669a71f64ce830f5650 (diff)
Add a Pinned Cross References tab to hold pinned references
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);
+};