summaryrefslogtreecommitdiff
path: root/plugins/warp/ui/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/warp/ui/plugin.h')
-rw-r--r--plugins/warp/ui/plugin.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/plugins/warp/ui/plugin.h b/plugins/warp/ui/plugin.h
new file mode 100644
index 00000000..18525218
--- /dev/null
+++ b/plugins/warp/ui/plugin.h
@@ -0,0 +1,53 @@
+#pragma once
+
+#include "matched.h"
+#include "matches.h"
+#include "sidebar.h"
+#include "sidebarwidget.h"
+
+class WarpSidebarWidget : public SidebarWidget
+{
+ Q_OBJECT
+ BinaryNinja::Ref<BinaryNinja::Logger> m_logger;
+ BinaryViewRef m_data;
+ ViewFrame *m_currentFrame;
+ QWidget *m_headerWidget;
+
+ BinaryNinja::Ref<BinaryNinja::AnalysisCompletionEvent> m_analysisEvent;
+ QAction *m_matcherAction;
+ bool isMatcherRunning = false;
+
+ WarpCurrentFunctionWidget *m_currentFunctionWidget;
+ WarpMatchedWidget *m_matchedWidget;
+
+public:
+ explicit WarpSidebarWidget(BinaryViewRef data);
+
+ ~WarpSidebarWidget() override;
+
+ QWidget *headerWidget() override { return m_headerWidget; }
+
+ void focus() override;
+
+ void Update();
+
+ void setMatcherActionIcon(bool running);
+
+ void notifyViewChanged(ViewFrame *) override;
+
+ void notifyViewLocationChanged(View *, const ViewLocation &) override;
+};
+
+class WarpSidebarWidgetType : public SidebarWidgetType
+{
+public:
+ WarpSidebarWidgetType();
+
+ SidebarWidgetLocation defaultLocation() const override { return SidebarWidgetLocation::RightContent; }
+ SidebarContextSensitivity contextSensitivity() const override { return PerViewTypeSidebarContext; }
+
+ WarpSidebarWidget *createWidget(ViewFrame *viewFrame, BinaryViewRef data) override
+ {
+ return new WarpSidebarWidget(data);
+ }
+};