diff options
Diffstat (limited to 'plugins/warp/ui/plugin.h')
| -rw-r--r-- | plugins/warp/ui/plugin.h | 53 |
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); + } +}; |
