summaryrefslogtreecommitdiff
path: root/ui/functionsview.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/functionsview.h')
-rw-r--r--ui/functionsview.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/ui/functionsview.h b/ui/functionsview.h
new file mode 100644
index 00000000..02164079
--- /dev/null
+++ b/ui/functionsview.h
@@ -0,0 +1,41 @@
+#pragma once
+
+#include <QtCore/QTimer>
+#include "binaryninjaapi.h"
+#include "dockhandler.h"
+#include "filter.h"
+
+class ViewFrame;
+class FunctionList;
+
+class BINARYNINJAUIAPI FunctionsView: public QWidget, public DockContextHandler, public BinaryNinja::BinaryDataNotification
+{
+ Q_OBJECT
+
+ BinaryViewRef m_data;
+
+ FunctionList* m_funcList;
+ FilteredView* m_funcFilter;
+
+ bool m_updatesPending;
+ QTimer* m_updateTimer;
+
+public:
+ FunctionsView(ViewFrame* frame, BinaryViewRef data);
+ virtual ~FunctionsView();
+
+ FunctionList* getFunctionList() { return m_funcList; }
+ FilteredView* getFunctionFilter() { return m_funcFilter; }
+
+ virtual void OnBinaryDataWritten(BinaryNinja::BinaryView* data, uint64_t offset, size_t len) override;
+ virtual void OnBinaryDataInserted(BinaryNinja::BinaryView* data, uint64_t offset, size_t len) override;
+ virtual void OnBinaryDataRemoved(BinaryNinja::BinaryView* data, uint64_t offset, uint64_t len) override;
+
+protected:
+ virtual void contextMenuEvent(QContextMenuEvent* event) override;
+ virtual bool shouldBeVisible(ViewFrame* frame) override;
+ virtual void updateFonts() override;
+
+private Q_SLOTS:
+ void updateTimerEvent();
+};