From 9372cd0e81000ca4d5e412e8eecde16424d346bd Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Wed, 30 Nov 2022 15:53:22 -0500 Subject: Add sticky header to linear view --- ui/linearview.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ui/linearview.h b/ui/linearview.h index 4cf67bdb..84cf1c22 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -111,6 +111,25 @@ public: virtual bool deserialize(const Json::Value& value) override; }; +class LinearView; + +class StickyHeader: public QWidget +{ + RenderContext m_render; + LinearView* m_parent; + BinaryViewRef m_data; + + LinearViewLine m_line; +public: + StickyHeader(LinearView* parent, BinaryViewRef data); + + void update(const LinearViewLine& line); + void updateFonts() { m_render.update(); } + + virtual void paintEvent(QPaintEvent* event) override; +}; + + /*! \ingroup linearview @@ -160,6 +179,7 @@ class BINARYNINJAUIAPI LinearView : public QAbstractScrollArea, public View, pub ViewFrame* m_view; uint64_t m_allocatedLength; + StickyHeader* m_header; RenderContext m_render; int m_cols, m_rows; uint64_t m_scrollBarMultiplier; -- cgit v1.3.1