diff options
| author | Rusty Wagner <rusty@vector35.com> | 2019-03-19 15:41:08 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2019-03-20 13:00:17 -0400 |
| commit | 411acbaa4a1d217e731d3df0b189445117be3b26 (patch) | |
| tree | 49b5c5290058ffb98dd23ec9a7c1a49921254d15 /ui/filter.h | |
| parent | ca1bc587c22928bbd7198813064c9615c3c12771 (diff) | |
Add in progress UI API headers
Diffstat (limited to 'ui/filter.h')
| -rw-r--r-- | ui/filter.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/ui/filter.h b/ui/filter.h new file mode 100644 index 00000000..5a43100f --- /dev/null +++ b/ui/filter.h @@ -0,0 +1,54 @@ +#pragma once + +#include <QtWidgets/QLineEdit> +#include "binaryninjaapi.h" +#include "uicontext.h" + +class BINARYNINJAUIAPI FilterTarget +{ +public: + virtual ~FilterTarget() {} + + virtual void setFilter(const std::string& filter) = 0; + virtual void scrollToFirstItem() = 0; + virtual void scrollToCurrentItem() = 0; + virtual void selectFirstItem() = 0; + virtual void activateFirstItem() = 0; + virtual void closeFilter(); +}; + +class BINARYNINJAUIAPI FilterEdit: public QLineEdit +{ + Q_OBJECT + + FilterTarget* m_target; + +public: + FilterEdit(QWidget* parent, FilterTarget* target); + +protected: + virtual void keyPressEvent(QKeyEvent* event) override; +}; + +class BINARYNINJAUIAPI FilteredView: public QWidget +{ + Q_OBJECT + + FilterTarget* m_target; + QWidget* m_widget; + FilterEdit* m_filter; + +public: + FilteredView(QWidget* parent, QWidget* filtered, FilterTarget* target); + void updateFonts(); + void clearFilter(); + void showFilter(const QString& initialText); + + static bool match(const std::string& name, const std::string& filter); + +protected: + virtual void keyPressEvent(QKeyEvent* event) override; + +private Q_SLOTS: + void filterChanged(const QString& filter); +}; |
