Loading...
Searching...
No Matches
StackView

Detailed Description

Classes

class  CreateStackVariableDialog
 Dialog to enable arbitrary stack variable creation. More...
 
class  StackViewLine
 A single line in the stack view. More...
 
class  StackView
 The Stack View. More...
 
class  StackViewSidebarWidget
 Stack view sidebar widget wrapper. More...
 
class  StackViewSidebarWidgetType
 

Enumerations

enum class  Direction { Direction::Up , Direction::Down , Direction::Left , Direction::Right }
 Simple direction enum; used for cursor movement functions. More...
 

Class Documentation

◆ CreateStackVariableDialog

class CreateStackVariableDialog

Dialog to enable arbitrary stack variable creation.

Public Member Functions

 CreateStackVariableDialog (QWidget *parent, BinaryViewRef data, FunctionRef func, int64_t initialOffset=0)
 

Protected Member Functions

void accept () override
 

Constructor & Destructor Documentation

◆ CreateStackVariableDialog()

CreateStackVariableDialog::CreateStackVariableDialog ( QWidget * parent,
BinaryViewRef data,
FunctionRef func,
int64_t initialOffset = 0 )

Member Function Documentation

◆ accept()

void CreateStackVariableDialog::accept ( )
overrideprotected

◆ StackViewLine

class StackViewLine

A single line in the stack view.

Public Types

enum class  Type {
  Variable , Member , OffsetRef , Annotation ,
  Fill
}
 

Public Member Functions

StackViewLine::Type type () const
 Get this line's type.
 
int64_t offset () const
 Get the stack frame offset for this line.
 
int64_t baseOffset () const
 Get the value of the base offset.
 
std::string baseName () const
 Get the name of the base offset.
 
void setBase (const std::string &baseName, int64_t baseOffset)
 Set the base offset to a given name and value. Does not affect offset()
 
size_t width () const
 Get the number of bytes this line represents on the stack.
 
size_t level () const
 Get the hierarchical level of this line.
 
void setLevel (size_t level)
 Set the hierarchical level for this line.
 
TypeRef dataType () const
 Get the type of the data this line represents.
 
void setDataType (TypeRef vnat)
 Set the type of the data this line represents. Does not affect the underlying variable.
 
BinaryNinja::Variable variable () const
 Get the variable represented by this line.
 
void setVariable (const BinaryNinja::Variable &var)
 Set the variable represented by this line.
 
void setWidthOverride (size_t width)
 Set a width override for this line.
 
bool isDataBacked () const
 Is this line backed by data or is it ephermeral?
 
bool isReferenced () const
 Is the data represented by this line referenced in the current function?
 
void setIsReferenced (bool isReferenced)
 Set whether the data represented by this line is referenced in the current function.
 
bool isUnused () const
 Is the data represented by this line unused in the current function?
 
void setIsUnused (bool isUnused)
 Set whether the data represented by this line unused in the current function.
 
BinaryNinja::DisassemblyTextLine content () const
 Get the content (with no offset) for this line.
 
BinaryNinja::DisassemblyTextLine contentWithOffset (bool hide=false) const
 Get the content with the leading offset (or padding) for this line.
 
size_t contentWidth (bool withOffset=true) const
 Get the width of the total line content in characters.
 
void appendToken (const BinaryNinja::InstructionTextToken &token)
 Append a single token to this line's content.
 
void appendTokens (const std::vector< BinaryNinja::InstructionTextToken > &tokens)
 Append multiple tokens to this line's content.
 
void indent (size_t levels=1)
 Indent this line's content.
 

Static Public Member Functions

static StackViewLine variable (int64_t offset, const BinaryNinja::VariableNameAndType &vnat, PlatformRef plat)
 Create a new line for a variable.
 
static StackViewLine member (int64_t offset, const BinaryNinja::VariableNameAndType &vnat, PlatformRef plat)
 Create a new line for a struct or array member.
 
static StackViewLine offsetRef (int64_t base, uint64_t offset, size_t size)
 Create a new line for a struct offset reference.
 
static StackViewLine annotation (int64_t offset, const std::string &text)
 Create a new annotation line.
 
static StackViewLine fill (int64_t offset, size_t length)
 Create a new fill line.
 

Member Enumeration Documentation

◆ Type

enum class StackViewLine::Type
strong
Enumerator
Variable 
Member 
OffsetRef 
Annotation 
Fill 

Member Function Documentation

◆ variable() [1/2]

static StackViewLine StackViewLine::variable ( int64_t offset,
const BinaryNinja::VariableNameAndType & vnat,
PlatformRef plat )
static

Create a new line for a variable.

◆ member()

static StackViewLine StackViewLine::member ( int64_t offset,
const BinaryNinja::VariableNameAndType & vnat,
PlatformRef plat )
static

Create a new line for a struct or array member.

◆ offsetRef()

static StackViewLine StackViewLine::offsetRef ( int64_t base,
uint64_t offset,
size_t size )
static

Create a new line for a struct offset reference.

◆ annotation()

static StackViewLine StackViewLine::annotation ( int64_t offset,
const std::string & text )
static

Create a new annotation line.

◆ fill()

static StackViewLine StackViewLine::fill ( int64_t offset,
size_t length )
static

Create a new fill line.

◆ type()

StackViewLine::Type StackViewLine::type ( ) const

Get this line's type.

◆ offset()

int64_t StackViewLine::offset ( ) const

Get the stack frame offset for this line.

◆ baseOffset()

int64_t StackViewLine::baseOffset ( ) const

Get the value of the base offset.

◆ baseName()

std::string StackViewLine::baseName ( ) const

Get the name of the base offset.

◆ setBase()

void StackViewLine::setBase ( const std::string & baseName,
int64_t baseOffset )

Set the base offset to a given name and value. Does not affect offset()

◆ width()

size_t StackViewLine::width ( ) const

Get the number of bytes this line represents on the stack.

◆ level()

size_t StackViewLine::level ( ) const

Get the hierarchical level of this line.

◆ setLevel()

void StackViewLine::setLevel ( size_t level)

Set the hierarchical level for this line.

◆ dataType()

TypeRef StackViewLine::dataType ( ) const

Get the type of the data this line represents.

◆ setDataType()

void StackViewLine::setDataType ( TypeRef vnat)

Set the type of the data this line represents. Does not affect the underlying variable.

◆ variable() [2/2]

BinaryNinja::Variable StackViewLine::variable ( ) const

Get the variable represented by this line.

◆ setVariable()

void StackViewLine::setVariable ( const BinaryNinja::Variable & var)

Set the variable represented by this line.

◆ setWidthOverride()

void StackViewLine::setWidthOverride ( size_t width)

Set a width override for this line.

◆ isDataBacked()

bool StackViewLine::isDataBacked ( ) const

Is this line backed by data or is it ephermeral?

◆ isReferenced()

bool StackViewLine::isReferenced ( ) const

Is the data represented by this line referenced in the current function?

◆ setIsReferenced()

void StackViewLine::setIsReferenced ( bool isReferenced)

Set whether the data represented by this line is referenced in the current function.

◆ isUnused()

bool StackViewLine::isUnused ( ) const

Is the data represented by this line unused in the current function?

◆ setIsUnused()

void StackViewLine::setIsUnused ( bool isUnused)

Set whether the data represented by this line unused in the current function.

◆ content()

BinaryNinja::DisassemblyTextLine StackViewLine::content ( ) const

Get the content (with no offset) for this line.

◆ contentWithOffset()

BinaryNinja::DisassemblyTextLine StackViewLine::contentWithOffset ( bool hide = false) const

Get the content with the leading offset (or padding) for this line.

◆ contentWidth()

size_t StackViewLine::contentWidth ( bool withOffset = true) const

Get the width of the total line content in characters.

◆ appendToken()

void StackViewLine::appendToken ( const BinaryNinja::InstructionTextToken & token)

Append a single token to this line's content.

◆ appendTokens()

void StackViewLine::appendTokens ( const std::vector< BinaryNinja::InstructionTextToken > & tokens)

Append multiple tokens to this line's content.

◆ indent()

void StackViewLine::indent ( size_t levels = 1)

Indent this line's content.

◆ StackView

class StackView

The Stack View.

Public Member Functions

 StackView (ViewFrame *view, BinaryViewRef data)
 
 ~StackView ()
 
void refresh ()
 Refresh the stack view's content.
 
void moveCursorToMouse (QMouseEvent *event, bool isSelecting)
 Move the cursor to approximate clicked position.
 
void ensureCursorIsVisible ()
 Ensure the cursor is visible by adjusting the scroll position.
 
void moveCursor (Direction dir)
 Move the cursor via the keyboard.
 
void sanitizeCursor (Direction preference)
 Ensure the cursor is not selecting any prohibited tokens.
 
const StackViewLineselectedLine () const
 Get the selected StackViewLine.
 
void renameVariable ()
 Rename the variable belonging to the selected line.
 
void retypeVariable ()
 Change the type of the variable belonging to the selected line.
 
void undefineVariable ()
 Undefine the variable belonging to the selected line.
 
void showCreateVariableDialog ()
 Show the "Create Variable" dialog.
 
void quickCreateIntegerAtCursor (size_t size)
 
void quickInvertIntegerSignAtCursor ()
 Toggle the sign of the integer at the cursor position.
 
void quickCreateFloatAtCursor (size_t size)
 
void quickCreatePointerAtCursor ()
 Create a pointer the cursor.
 
void quickCreateArrayAtCursor ()
 Create an array at the cursor, spanning until the next stack variable.
 
void quickCreateStructAtCursor ()
 Create a new struct at the cursor, spanning until the next stack variable.
 
void chooseBaseRegister ()
 Show the dialog to switch which base register is used for offsets.
 
void chooseBaseOffset ()
 Show the dialog to pick a constant base offset.
 
void setBaseRegister (ArchitectureRef arch, std::optional< std::string > regName)
 Set the base offset to a register (or clear on nullopt)
 
int64_t getBaseOffset (FunctionRef func)
 Get the base offset.
 
void setBaseOffset (FunctionRef func, std::optional< int64_t > offset)
 Set the base offset to a constant (or clear on nullopt)
 
void setPositionAware (bool positionAware)
 Set whether we show only the vars relevant for the current address.
 
bool event (QEvent *event) override
 Override the default event handler so we can have nice tooltips.
 
std::pair< std::string, int64_t > calculateBaseOffset () const
 Get the current base name/offset using the currently selected base register.
 
BinaryViewRef getData () override
 
uint64_t getCurrentOffset () override
 
bool canCopyAddress () override
 
bool canPaste () override
 
void setSelectionOffsets (BNAddressRange range) override
 
bool navigate (uint64_t offset) override
 
QFont getFont () override
 
void updateFonts () override
 
virtual void OnNewSelectionForXref (UIContext *context, ViewFrame *frame, View *view, const SelectionInfoForXref &selection) override
 Callback when the ui changes selection and should update cross references.
 
- Public Member Functions inherited from View
 View ()
 
virtual ~View ()
 
void enableRefreshTimer (QWidget *owner, int interval)
 
void setRefreshQuiesce (bool enable)
 
bool isQuiesced () const
 
virtual void notifyRefresh ()
 
virtual void notifyQuiesce (bool)
 
void setupView (QWidget *widget)
 
virtual bool canAssemble ()
 
virtual bool canCompile ()
 
virtual bool findNextData (uint64_t start, uint64_t end, const BinaryNinja::DataBuffer &data, uint64_t &addr, BNFindFlag flags, const std::function< bool(size_t current, size_t total)> &cb)
 
virtual bool findNextText (uint64_t start, uint64_t end, const std::string &text, uint64_t &addr, DisassemblySettingsRef settings, BNFindFlag flags, const BinaryNinja::FunctionViewType &graph, const std::function< bool(size_t current, size_t total)> &cb)
 
virtual bool findNextConstant (uint64_t start, uint64_t end, uint64_t constant, uint64_t &addr, DisassemblySettingsRef settings, const BinaryNinja::FunctionViewType &graph, const std::function< bool(size_t current, size_t total)> &cb)
 
virtual bool findAllData (uint64_t start, uint64_t end, const BinaryNinja::DataBuffer &data, BNFindFlag flags, const std::function< bool(size_t current, size_t total)> &cb, const std::function< bool(uint64_t addr, const BinaryNinja::DataBuffer &match)> &matchCallback)
 
virtual bool findAllText (uint64_t start, uint64_t end, const std::string &data, DisassemblySettingsRef settings, BNFindFlag flags, const BinaryNinja::FunctionViewType &graph, const std::function< bool(size_t current, size_t total)> &cb, const std::function< bool(uint64_t addr, const std::string &match, const BinaryNinja::LinearDisassemblyLine &line)> &matchCallback)
 
virtual bool findAllConstant (uint64_t start, uint64_t end, uint64_t constant, DisassemblySettingsRef settings, const BinaryNinja::FunctionViewType &graph, const std::function< bool(size_t current, size_t total)> &cb, const std::function< bool(uint64_t addr, const BinaryNinja::LinearDisassemblyLine &line)> &matchCallback)
 
virtual BNAddressRange getSelectionOffsets ()
 
virtual SelectionInfoForXref getSelectionForXref ()
 
virtual bool navigateToFunction (FunctionRef func, uint64_t offset)
 
virtual bool goToReference (FunctionRef func, uint64_t source, uint64_t target)
 
virtual bool navigateToViewLocation (const ViewLocation &viewLocation, bool center=false)
 
bool navigateOnOtherPane (uint64_t offset)
 
bool navigateToFunctionOnOtherPane (FunctionRef func, uint64_t offset)
 
bool isBinaryDataNavigable ()
 
void setBinaryDataNavigable (bool navigable)
 
virtual bool closeRequest ()
 
virtual void closing ()
 
virtual void updateTheme ()
 
virtual void undo ()
 
virtual void redo ()
 
virtual bool canUndo ()
 
virtual bool canRedo ()
 
virtual void cut ()
 
virtual void copy (TransformRef xform=nullptr)
 
virtual void copyAddress ()
 
virtual void paste (TransformRef xform=nullptr)
 
virtual bool canCut ()
 
virtual bool canCopy ()
 
virtual bool canCopyWithTransform ()
 
virtual bool canPasteWithTransform ()
 
virtual void transform (TransformRef xform, bool encode)
 
virtual bool canTransform ()
 
virtual void writeData (const BinaryNinja::DataBuffer &data, uint64_t addr)
 
virtual bool canDisplayAs (const UIActionContext &context, const BNIntegerDisplayType)
 
virtual void displayAs (const UIActionContext &context, BNIntegerDisplayType type)
 
virtual BinaryNinja::Ref< HistoryEntrygetHistoryEntry ()
 
virtual void navigateToHistoryEntry (BinaryNinja::Ref< HistoryEntry > entry)
 
virtual StatusBarWidgetgetStatusBarWidget ()
 
virtual ViewPaneHeaderSubtypeWidgetgetHeaderSubtypeWidget ()
 
virtual QWidget * getHeaderOptionsWidget ()
 
virtual FunctionRef getCurrentFunction ()
 
virtual BasicBlockRef getCurrentBasicBlock ()
 
virtual ArchitectureRef getCurrentArchitecture ()
 
virtual LowLevelILFunctionRef getCurrentLowLevelILFunction ()
 
virtual MediumLevelILFunctionRef getCurrentMediumLevelILFunction ()
 
virtual HighLevelILFunctionRef getCurrentHighLevelILFunction ()
 
virtual BinaryNinja::FunctionViewType getILViewType ()
 
virtual void setILViewType (const BinaryNinja::FunctionViewType &ilViewType)
 
virtual size_t getCurrentILInstructionIndex ()
 
virtual size_t getSelectionStartILInstructionIndex ()
 
virtual BNILIndexRange getILIndexRange ()
 
virtual DisassemblySettingsRef getDisassemblySettings ()
 
virtual void setDisassemblySettings (DisassemblySettingsRef settings)
 
virtual HighlightTokenState getHighlightTokenState ()
 
virtual UIActionContext actionContext ()
 
MenucontextMenu ()
 
UIActionHandleractionHandler ()
 
QWidget * widget ()
 
QString viewType ()
 
void updateCrossReferenceSelection (ViewFrame *frame=nullptr)
 
void forceSyncFromView (ViewFrame *frame=nullptr)
 
virtual void clearRelatedHighlights ()
 
virtual void setRelatedIndexHighlights (FunctionRef func, const std::set< size_t > &related)
 
virtual void setRelatedInstructionHighlights (FunctionRef func, const std::set< uint64_t > &related)
 
void notifyContextMenuCreated ()
 
- Public Member Functions inherited from UIContextNotification
virtual ~UIContextNotification ()
 
virtual void OnContextOpen (UIContext *context)
 Callback after a UIContext is opened (eg MainWindow)
 
virtual void OnContextClose (UIContext *context)
 Callback right before closing a UIContext.
 
virtual bool OnBeforeOpenDatabase (UIContext *context, FileMetadataRef metadata)
 Callback before a database (specifically a database, not a raw file) is opened.
 
virtual bool OnAfterOpenDatabase (UIContext *context, FileMetadataRef metadata, BinaryViewRef data)
 Callback after a database (specifically a database, not a raw file) is opened.
 
virtual void OnAfterOpenProject (UIContext *context, ProjectRef project)
 Callback after a project is opened.
 
virtual bool OnBeforeOpenProjectFile (UIContext *context, ProjectFileRef projectFile)
 Callback before a project file is opened.
 
virtual void OnAfterOpenProjectFile (UIContext *context, ProjectFileRef projectFile, ViewFrame *frame)
 Callback after a project file is opened.
 
virtual bool OnBeforeOpenFile (UIContext *context, FileContext *file)
 Callback before a file (raw or database) is opened (after OnAfterOpenDatabase if opening a database)
 
virtual void OnAfterOpenFile (UIContext *context, FileContext *file, ViewFrame *frame)
 Callback after a file (raw or database) is opened.
 
virtual bool OnBeforeSaveFile (UIContext *context, FileContext *file, ViewFrame *frame)
 Callback before a file is saved (either as a database or raw)
 
virtual void OnAfterSaveFile (UIContext *context, FileContext *file, ViewFrame *frame)
 Callback after a file is saved (either as a database or raw)
 
virtual bool OnBeforeCloseFile (UIContext *context, FileContext *file, ViewFrame *frame)
 Callback before a file is closed.
 
virtual void OnAfterCloseFile (UIContext *context, FileContext *file, ViewFrame *frame)
 Callback after a file is closed.
 
virtual void OnViewReplaced (UIContext *context, FileContext *file, ViewFrame *oldFrame, ViewFrame *newFrame)
 Callback after a ViewFrame is replaced in an open file (e.g.
 
virtual void OnDataViewReplaced (UIContext *context, FileContext *file, BinaryViewRef oldData, BinaryViewRef newData)
 Callback after a BinaryView is replaced in an open file (e.g.
 
virtual void OnViewChange (UIContext *context, ViewFrame *frame, const QString &type)
 Callback when the ui changes views.
 
virtual void OnAddressChange (UIContext *context, ViewFrame *frame, View *view, const ViewLocation &location)
 Callback when the ui changes address.
 
virtual bool GetNameForFile (UIContext *context, FileContext *file, QString &name)
 Callback to modify the displayed file name for a FileContext (eg in the window title or tab title) Note: Due to the out param &name, this is not usable from Python with PySide.
 
virtual bool GetNameForPath (UIContext *context, const QString &path, QString &name)
 Callback to modify the displayed file name for a file path (eg in the new tab widget) Note: Due to the out param &name, this is not usable from Python with PySide.
 
virtual void OnActionExecuted (UIContext *context, UIActionHandler *handler, const QString &name, const UIActionContext &ctx, std::function< void(const UIActionContext &)> &action)
 Callback when an action is executed, allowing plugins to intercept and modify the behavior of the action.
 
virtual void OnContextMenuCreated (UIContext *context, View *view, Menu &menu)
 Callback when a context menu is created, allowing plugins to modify the menu, e.g., registering and adding new actions into it.
 

Protected Member Functions

void paintEvent (QPaintEvent *event) override
 
void mousePressEvent (QMouseEvent *event) override
 
void mouseDoubleClickEvent (QMouseEvent *event) override
 
- Protected Member Functions inherited from View
bool writeDataToClipboard (const BinaryNinja::DataBuffer &data, bool binary, TransformRef xform)
 
BinaryNinja::DataBuffer readDataFromClipboard (TransformRef xform)
 
virtual std::string getNavigationMode ()
 
virtual void setNavigationMode (std::string mode)
 
virtual std::vector< std::string > getNavigationModes ()
 

Additional Inherited Members

- Static Public Member Functions inherited from View
static ViewgetViewFromWidget (QWidget *widget)
 
static void registerActions ()
 
static void registerLateActions ()
 
- Protected Attributes inherited from View
Menu m_contextMenu
 
UIActionHandler m_actionHandler
 
bool m_binaryDataNavigable = false
 
QPointer< TransformParameterDialogm_transformParamDialog
 
bool m_quiesceState = true
 
QTimer * m_updateTimer = nullptr
 

Constructor & Destructor Documentation

◆ StackView()

StackView::StackView ( ViewFrame * view,
BinaryViewRef data )

◆ ~StackView()

StackView::~StackView ( )

Member Function Documentation

◆ paintEvent()

void StackView::paintEvent ( QPaintEvent * event)
overrideprotected

◆ mousePressEvent()

void StackView::mousePressEvent ( QMouseEvent * event)
overrideprotected

◆ mouseDoubleClickEvent()

void StackView::mouseDoubleClickEvent ( QMouseEvent * event)
overrideprotected

◆ refresh()

void StackView::refresh ( )

Refresh the stack view's content.

◆ moveCursorToMouse()

void StackView::moveCursorToMouse ( QMouseEvent * event,
bool isSelecting )

Move the cursor to approximate clicked position.

◆ ensureCursorIsVisible()

void StackView::ensureCursorIsVisible ( )

Ensure the cursor is visible by adjusting the scroll position.

◆ moveCursor()

void StackView::moveCursor ( Direction dir)

Move the cursor via the keyboard.

◆ sanitizeCursor()

void StackView::sanitizeCursor ( Direction preference)

Ensure the cursor is not selecting any prohibited tokens.

◆ selectedLine()

const StackViewLine * StackView::selectedLine ( ) const

Get the selected StackViewLine.

◆ renameVariable()

void StackView::renameVariable ( )

Rename the variable belonging to the selected line.

◆ retypeVariable()

void StackView::retypeVariable ( )

Change the type of the variable belonging to the selected line.

◆ undefineVariable()

void StackView::undefineVariable ( )

Undefine the variable belonging to the selected line.

◆ showCreateVariableDialog()

void StackView::showCreateVariableDialog ( )

Show the "Create Variable" dialog.

◆ quickCreateIntegerAtCursor()

void StackView::quickCreateIntegerAtCursor ( size_t size)

Create an integer of the given size at the cursor position. Pass `0` for `size` to cycle through integer sizes automatically.

◆ quickInvertIntegerSignAtCursor()

void StackView::quickInvertIntegerSignAtCursor ( )

Toggle the sign of the integer at the cursor position.

◆ quickCreateFloatAtCursor()

void StackView::quickCreateFloatAtCursor ( size_t size)

Create an float of the given size at the cursor position. Pass `0` for `size` to cycle through float sizes automatically.

◆ quickCreatePointerAtCursor()

void StackView::quickCreatePointerAtCursor ( )

Create a pointer the cursor.

◆ quickCreateArrayAtCursor()

void StackView::quickCreateArrayAtCursor ( )

Create an array at the cursor, spanning until the next stack variable.

◆ quickCreateStructAtCursor()

void StackView::quickCreateStructAtCursor ( )

Create a new struct at the cursor, spanning until the next stack variable.

◆ chooseBaseRegister()

void StackView::chooseBaseRegister ( )

Show the dialog to switch which base register is used for offsets.

◆ chooseBaseOffset()

void StackView::chooseBaseOffset ( )

Show the dialog to pick a constant base offset.

◆ setBaseRegister()

void StackView::setBaseRegister ( ArchitectureRef arch,
std::optional< std::string > regName )

Set the base offset to a register (or clear on nullopt)

◆ getBaseOffset()

int64_t StackView::getBaseOffset ( FunctionRef func)

Get the base offset.

◆ setBaseOffset()

void StackView::setBaseOffset ( FunctionRef func,
std::optional< int64_t > offset )

Set the base offset to a constant (or clear on nullopt)

◆ setPositionAware()

void StackView::setPositionAware ( bool positionAware)

Set whether we show only the vars relevant for the current address.

◆ event()

bool StackView::event ( QEvent * event)
override

Override the default event handler so we can have nice tooltips.

◆ calculateBaseOffset()

std::pair< std::string, int64_t > StackView::calculateBaseOffset ( ) const

Get the current base name/offset using the currently selected base register.

◆ getData()

BinaryViewRef StackView::getData ( )
overridevirtual

Implements View.

◆ getCurrentOffset()

uint64_t StackView::getCurrentOffset ( )
overridevirtual

Implements View.

◆ canCopyAddress()

bool StackView::canCopyAddress ( )
inlineoverridevirtual

Reimplemented from View.

◆ canPaste()

bool StackView::canPaste ( )
inlineoverridevirtual

Reimplemented from View.

◆ setSelectionOffsets()

void StackView::setSelectionOffsets ( BNAddressRange range)
overridevirtual

Implements View.

◆ navigate()

bool StackView::navigate ( uint64_t offset)
overridevirtual

Implements View.

◆ getFont()

QFont StackView::getFont ( )
overridevirtual

Implements View.

◆ updateFonts()

void StackView::updateFonts ( )
overridevirtual

Reimplemented from View.

◆ OnNewSelectionForXref()

virtual void StackView::OnNewSelectionForXref ( UIContext * context,
ViewFrame * frame,
View * view,
const SelectionInfoForXref & selection )
overridevirtual

Callback when the ui changes selection and should update cross references.

Parameters
contextContext changing selection
frameViewFrame which changed selection
viewView that changed selection
selectionNew selection

Reimplemented from UIContextNotification.

◆ StackViewSidebarWidget

class StackViewSidebarWidget

Stack view sidebar widget wrapper.

Public Member Functions

 StackViewSidebarWidget (ViewFrame *view, BinaryViewRef data)
 
QWidget * headerWidget () override
 
void refresh ()
 
void focus () override
 
void notifyFontChanged () override
 
- Public Member Functions inherited from SidebarWidget
 SidebarWidget (const QString &title)
 
 ~SidebarWidget ()
 
const QString & title () const
 
void enableRefreshTimer (int interval)
 
void setRefreshQuiesce (bool enable)
 
bool isQuiesced () const
 
virtual void notifyRefresh ()
 
virtual void notifyQuiesce (bool)
 
virtual void notifyOffsetChanged (uint64_t)
 
virtual void notifyThemeChanged ()
 
virtual void notifyViewChanged (ViewFrame *)
 
virtual void notifyViewLocationChanged (View *, const ViewLocation &)
 
virtual void closing ()
 
virtual void setPrimaryOrientation (Qt::Orientation)
 

Additional Inherited Members

- Protected Attributes inherited from SidebarWidget
QString m_title
 
UIActionHandler m_actionHandler
 
ContextMenuManagerm_contextMenuManager = nullptr
 
Menum_menu = nullptr
 
bool m_quiesceState = true
 
QTimer * m_updateTimer = nullptr
 

Constructor & Destructor Documentation

◆ StackViewSidebarWidget()

StackViewSidebarWidget::StackViewSidebarWidget ( ViewFrame * view,
BinaryViewRef data )

Member Function Documentation

◆ headerWidget()

QWidget * StackViewSidebarWidget::headerWidget ( )
inlineoverridevirtual

Reimplemented from SidebarWidget.

◆ refresh()

void StackViewSidebarWidget::refresh ( )

◆ focus()

void StackViewSidebarWidget::focus ( )
inlineoverridevirtual

Reimplemented from SidebarWidget.

◆ notifyFontChanged()

void StackViewSidebarWidget::notifyFontChanged ( )
inlineoverridevirtual

Reimplemented from SidebarWidget.

◆ StackViewSidebarWidgetType

class StackViewSidebarWidgetType

Public Member Functions

 StackViewSidebarWidgetType ()
 
SidebarWidgetcreateWidget (ViewFrame *frame, BinaryViewRef data) override
 
virtual SidebarWidgetLocation defaultLocation () const override
 
- Public Member Functions inherited from SidebarWidgetType
 SidebarWidgetType (const QImage &icon, const QString &name)
 
virtual ~SidebarWidgetType ()
 
const SidebarIconicon () const
 
const QString & name () const
 
virtual bool isInReferenceArea () const
 
virtual bool viewSensitive () const
 
virtual SidebarContextSensitivity contextSensitivity () const
 
virtual bool alwaysShowTabs () const
 
virtual bool hideIfNoContent () const
 
virtual SidebarWidgetcreateInvalidContextWidget ()
 
virtual QWidget * headerWidget (SplitPaneWidget *, ViewFrame *, BinaryViewRef)
 
virtual bool focusHeaderWidget () const
 
virtual QString noWidgetMessage () const
 
virtual DockableTabStyletabStyle () const
 
virtual bool canUseAsPane (SplitPaneWidget *, BinaryViewRef) const
 
virtual PanecreatePane (SplitPaneWidget *, BinaryViewRef)
 
void updateTheme ()
 

Constructor & Destructor Documentation

◆ StackViewSidebarWidgetType()

StackViewSidebarWidgetType::StackViewSidebarWidgetType ( )

Member Function Documentation

◆ createWidget()

SidebarWidget * StackViewSidebarWidgetType::createWidget ( ViewFrame * frame,
BinaryViewRef data )
overridevirtual

Reimplemented from SidebarWidgetType.

◆ defaultLocation()

virtual SidebarWidgetLocation StackViewSidebarWidgetType::defaultLocation ( ) const
inlineoverridevirtual

Reimplemented from SidebarWidgetType.

Enumeration Type Documentation

◆ Direction

enum class Direction
strong

Simple direction enum; used for cursor movement functions.

Enumerator
Up 
Down 
Left 
Right