summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2022-01-12 17:34:10 -0700
committerRusty Wagner <rusty.wagner@gmail.com>2022-01-17 17:58:50 -0500
commit32ee51a0ac631a7ce004e1d2d9b2f7ea291fd252 (patch)
tree117d10f1de01f22e884ab217c3a766a599281eb9 /ui
parent9c7ed0cc4ebe08871a7b83e0f56a542c0f31f835 (diff)
Single function mode in linear view
Diffstat (limited to 'ui')
-rw-r--r--ui/linearview.h16
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: