diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2022-01-12 17:34:10 -0700 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2022-01-17 17:58:50 -0500 |
| commit | 32ee51a0ac631a7ce004e1d2d9b2f7ea291fd252 (patch) | |
| tree | 117d10f1de01f22e884ab217c3a766a599281eb9 /ui | |
| parent | 9c7ed0cc4ebe08871a7b83e0f56a542c0f31f835 (diff) | |
Single function mode in linear view
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/linearview.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ui/linearview.h b/ui/linearview.h index 6a319443..f8feb3d7 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -161,6 +161,7 @@ class BINARYNINJAUIAPI LinearView: public QAbstractScrollArea, public View, publ DisassemblySettingsRef m_options; BNFunctionGraphType m_ilViewType; HexEditorHighlightState m_highlightState; + bool m_singleFunctionView = false; InstructionEdit* m_instrEdit; @@ -169,6 +170,7 @@ class BINARYNINJAUIAPI LinearView: public QAbstractScrollArea, public View, publ BinaryNinja::Ref<BinaryNinja::LinearViewCursor> m_topPosition, m_bottomPosition; std::vector<LinearViewLine> m_lines; size_t m_topLine; + std::optional<double> m_topOrderingIndexOffset; QTimer* m_updateTimer; QTimer* m_hoverTimer; @@ -181,16 +183,23 @@ class BINARYNINJAUIAPI LinearView: public QAbstractScrollArea, public View, publ std::string m_navigationMode = ""; + ClickableIcon* m_dataButton = nullptr; + QWidget* m_dataButtonContainer = nullptr; + QHBoxLayout* m_dataButtonLayout = nullptr; + void setTopToAddress(uint64_t addr); void setTopToOrderingIndex(uint64_t idx); void refreshLines(size_t lineOffset = 0, bool refreshUIContext = true); bool cachePreviousLines(); bool cacheNextLines(); void updateCache(); + void updateBounds(); void refreshAtCurrentLocation(bool cursorFixup = false); bool navigateToAddress(uint64_t addr, bool center, bool updateHighlight, bool navByRef = false); - bool navigateToLine(uint64_t offset, size_t instrIndex, bool center, bool updateHighlight, bool navByRef = false); + bool navigateToLine(FunctionRef func, uint64_t offset, size_t instrIndex, bool center, + bool updateHighlight, bool navByRef = false); bool navigateToGotoLabel(uint64_t label); + void viewData(); void scrollLines(int count); @@ -243,6 +252,8 @@ class BINARYNINJAUIAPI LinearView: public QAbstractScrollArea, public View, publ BNDeadStoreElimination getCurrentVariableDeadStoreElimination(); + void setDataButtonVisible(bool visible); + private Q_SLOTS: void adjustSize(int width, int height); void viewInHexEditor(); @@ -405,6 +416,9 @@ public: virtual void setRelatedIndexHighlights(FunctionRef func, const std::set<size_t>& related) override; virtual void setRelatedInstructionHighlights(FunctionRef func, const std::set<uint64_t>& related) override; + bool singleFunctionView() const { return m_singleFunctionView; } + void setSingleFunctionView(bool singleFunctionView); + static void registerActions(); protected: |
