Loading...
Searching...
No Matches
FlowGraphWidget Class Reference

Signals

void layoutComplete ()
 
void updateMiniGraph ()
 

Public Member Functions

 FlowGraphWidget (QWidget *parent, BinaryViewRef view, FlowGraphRef graph=FlowGraphRef())
 
 ~FlowGraphWidget ()
 
virtual void notifyRefresh () override
 
virtual void OnAnalysisFunctionUpdated (BinaryNinja::BinaryView *data, BinaryNinja::Function *func) override
 
virtual void OnAnalysisFunctionUpdateRequested (BinaryNinja::BinaryView *data, BinaryNinja::Function *func) override
 
virtual void OnDataMetadataUpdated (BinaryNinja::BinaryView *data, uint64_t offset) override
 
virtual void OnTagUpdated (BinaryNinja::BinaryView *data, const BinaryNinja::TagReference &tagRef) override
 
void setInitialGraph (FlowGraphRef graph)
 
void setInitialGraph (FlowGraphRef graph, uint64_t addr)
 
void setGraph (FlowGraphRef graph)
 
void setGraph (FlowGraphRef graph, uint64_t addr)
 
void setGraphAtIndex (FlowGraphRef graph, size_t index)
 
void setGraph (FlowGraphRef graph, BinaryNinja::Ref< FlowGraphHistoryEntry > entry)
 
void setRelatedGraph (FlowGraphRef graph)
 
void setRelatedGraph (FlowGraphRef graph, uint64_t addr)
 
void updateToGraph (FlowGraphRef graph)
 
virtual void updateFonts () override
 
virtual BinaryViewRef getData () override
 
virtual uint64_t getCurrentOffset () override
 
virtual BNAddressRange getSelectionOffsets () override
 
virtual SelectionInfoForXref getSelectionForXref () override
 
virtual void setSelectionOffsets (BNAddressRange range) override
 
virtual bool navigate (uint64_t pos) override
 
virtual bool navigateToFunction (FunctionRef func, uint64_t pos) override
 
virtual bool navigateToViewLocation (const ViewLocation &viewLocation, bool center=false) override
 
bool navigateWithHistoryEntry (uint64_t addr, BinaryNinja::Ref< FlowGraphHistoryEntry > entry)
 
bool navigateWithHistoryEntry (FunctionRef func, uint64_t addr, BinaryNinja::Ref< FlowGraphHistoryEntry > entry)
 
void setNavigationTarget (View *target)
 
virtual void clearRelatedHighlights () override
 
virtual void setRelatedIndexHighlights (FunctionRef func, const std::set< size_t > &related) override
 
virtual void setRelatedInstructionHighlights (FunctionRef func, const std::set< uint64_t > &related) override
 
float getScale () const
 
float maxScale () const
 
virtual void zoom (bool direction)
 
virtual void zoomToScale (float scale=1.0f)
 
virtual void zoomToCursor ()
 
virtual bool event (QEvent *event) override
 
void disableZoom ()
 
virtual void sendWheelEvent (QWheelEvent *event) override
 
virtual bool canCopyWithTransform () override
 
virtual bool canCut () override
 
virtual bool canCopy () override
 
virtual bool canCopyAddress () override
 
virtual bool canPaste () override
 
virtual void cut () override
 
virtual void copy (TransformRef xform) override
 
virtual void paste (TransformRef xform) override
 
virtual bool canAssemble () override
 
virtual bool canCompile () override
 
virtual void closing () override
 
virtual BinaryNinja::Ref< HistoryEntrygetHistoryEntry () override
 
void populateDefaultHistoryEntry (FlowGraphHistoryEntry *entry)
 
virtual void navigateToHistoryEntry (BinaryNinja::Ref< HistoryEntry > entry) override
 
virtual FunctionRef getCurrentFunction () override
 
virtual BasicBlockRef getCurrentBasicBlock () override
 
virtual ArchitectureRef getCurrentArchitecture () override
 
virtual LowLevelILFunctionRef getCurrentLowLevelILFunction () override
 
virtual MediumLevelILFunctionRef getCurrentMediumLevelILFunction () override
 
virtual HighLevelILFunctionRef getCurrentHighLevelILFunction () override
 
virtual size_t getCurrentILInstructionIndex () override
 
virtual size_t getSelectionStartILInstructionIndex () override
 
virtual BNILIndexRange getILIndexRange () override
 
void scrollToCursor (bool center=false)
 
bool isUpdating ()
 
QFont getFont () override
 
virtual HighlightTokenState getHighlightTokenState () override
 
void paintMiniGraphAndViewport (QWidget *owner, QRect &miniRenderRect)
 
bool paintMiniGraph (QWidget *owner, QPainter &p, QRect &miniRenderRect)
 
void paintNode (QPainter &p, FlowGraphNodeRef &node, int minY, int maxY)
 
void paintHighlight (QPainter &p, const std::vector< BinaryNinja::DisassemblyTextLine > &lines, int nodeX, int nodeWidth, int x, int y, size_t line, int tagIndent)
 
void paintEdge (QPainter &p, const FlowGraphNodeRef &node, const BinaryNinja::FlowGraphEdge &edge)
 
void showAddress (uint64_t addr, bool select=false, bool center=false)
 
void showIndex (size_t index, bool center=false)
 
void showTopNode ()
 
void showNode (FlowGraphNodeRef node)
 
void showLineInNode (FlowGraphNodeRef node, size_t lineIndex)
 
void ensureCursorVisible ()
 
void setInstructionHighlight (BNHighlightColor color)
 
void setBlockHighlight (BNHighlightColor color)
 
virtual bool goToReference (FunctionRef func, uint64_t source, uint64_t target) override
 
void setHighlightToken (const HighlightTokenState &state, bool notify=true, bool update=false)
 
virtual void notifyUpdateInProgress (FunctionRef func)
 
virtual void onFunctionSelected (FunctionRef func)
 
virtual void onHighlightChanged (const HighlightTokenState &highlight)
 
bool getNodeForMouseEvent (QMouseEvent *event, FlowGraphNodeRef &node)
 
bool getLineForMouseEvent (QMouseEvent *event, CursorPosition &pos)
 
bool getEdgeForMouseEvent (QMouseEvent *event, FlowGraphNodeRef &source, BinaryNinja::FlowGraphEdge &edge, bool &incoming)
 
FlowGraphWidgetduplicate ()
 
- Public Member Functions inherited from View
 View ()
 
virtual ~View ()
 
void enableRefreshTimer (QWidget *owner, int interval)
 
void setRefreshQuiesce (bool enable)
 
bool isQuiesced () const
 
virtual void notifyQuiesce (bool)
 
void setupView (QWidget *widget)
 
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)
 
bool navigateOnOtherPane (uint64_t offset)
 
bool navigateToFunctionOnOtherPane (FunctionRef func, uint64_t offset)
 
bool isBinaryDataNavigable ()
 
void setBinaryDataNavigable (bool navigable)
 
virtual bool closeRequest ()
 
virtual void updateTheme ()
 
virtual void undo ()
 
virtual void redo ()
 
virtual bool canUndo ()
 
virtual bool canRedo ()
 
virtual void copyAddress ()
 
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 StatusBarWidgetgetStatusBarWidget ()
 
virtual ViewPaneHeaderSubtypeWidgetgetHeaderSubtypeWidget ()
 
virtual QWidget * getHeaderOptionsWidget ()
 
virtual BinaryNinja::FunctionViewType getILViewType ()
 
virtual void setILViewType (const BinaryNinja::FunctionViewType &ilViewType)
 
virtual DisassemblySettingsRef getDisassemblySettings ()
 
virtual void setDisassemblySettings (DisassemblySettingsRef settings)
 
virtual UIActionContext actionContext ()
 
MenucontextMenu ()
 
UIActionHandleractionHandler ()
 
QWidget * widget ()
 
QString viewType ()
 
void updateCrossReferenceSelection (ViewFrame *frame=nullptr)
 
void forceSyncFromView (ViewFrame *frame=nullptr)
 
void notifyContextMenuCreated ()
 
- Public Member Functions inherited from PreviewScrollHandler
virtual ~PreviewScrollHandler ()
 
- Public Member Functions inherited from BinaryNinja::BinaryDataNotification
 BinaryDataNotification ()
 
 BinaryDataNotification (NotificationTypes notifications)
 
virtual ~BinaryDataNotification ()
 
BNBinaryDataNotificationGetCallbacks ()
 
virtual uint64_t OnNotificationBarrier (BinaryView *view)
 
virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len)
 
virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func)
 
virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var)
 
virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef)
 
virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef)
 
virtual void OnSymbolAdded (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym)
 
virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnTypeDefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeUndefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeReferenceChanged (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeFieldReferenceChanged (BinaryView *data, const QualifiedName &name, uint64_t offset)
 
virtual void OnSegmentAdded (BinaryView *data, Segment *segment)
 
virtual void OnSegmentRemoved (BinaryView *data, Segment *segment)
 
virtual void OnSegmentUpdated (BinaryView *data, Segment *segment)
 
virtual void OnSectionAdded (BinaryView *data, Section *section)
 
virtual void OnSectionRemoved (BinaryView *data, Section *section)
 
virtual void OnSectionUpdated (BinaryView *data, Section *section)
 
virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)
 This notification is posted after the display name for a component is updated.
 
virtual void OnComponentAdded (BinaryView *data, Component *component)
 This notification is posted after a Component is added to the tree.
 
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)
 This notification is posted after a Component is removed from the tree.
 
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)
 This notification is posted whenever a component is moved from one component to another.
 
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is added to a Component.
 
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is removed from a Component.
 
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is added to a Component.
 
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is removed from a Component.
 
virtual void OnExternalLibraryAdded (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLibraryRemoved (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLibraryUpdated (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLocationAdded (BinaryView *data, ExternalLocation *location)
 
virtual void OnExternalLocationRemoved (BinaryView *data, ExternalLocation *location)
 
virtual void OnExternalLocationUpdated (BinaryView *data, ExternalLocation *location)
 
virtual void OnTypeArchiveAttached (BinaryView *data, const std::string &id, const std::string &path)
 This notification is posted whenever a Type Archive is attached to a Binary View.
 
virtual void OnTypeArchiveDetached (BinaryView *data, const std::string &id, const std::string &path)
 This notification is posted whenever a Type Archive is detached to a Binary View.
 
virtual void OnTypeArchiveConnected (BinaryView *data, TypeArchive *archive)
 This notification is posted whenever a previously disconnected Type Archive attached to the Binary View is connected.
 
virtual void OnTypeArchiveDisconnected (BinaryView *data, TypeArchive *archive)
 This notification is posted whenever a previously connected Type Archive attached to the Binary View is disconnected.
 
virtual void OnUndoEntryAdded (BinaryView *data, UndoEntry *entry)
 This notification is posted whenever an entry is added to undo history.
 
virtual void OnUndoEntryTaken (BinaryView *data, UndoEntry *entry)
 This notification is posted whenever an action is undone.
 
virtual void OnRedoEntryTaken (BinaryView *data, UndoEntry *entry)
 This notification is posted whenever an action is redone.
 
virtual void OnRebased (BinaryView *oldView, BinaryView *newView)
 This notification is posted whenever a binary view is rebased.
 

Protected Member Functions

virtual void paintEvent (QPaintEvent *event) override
 
virtual void resizeEvent (QResizeEvent *event) override
 
virtual void mousePressEvent (QMouseEvent *event) override
 
virtual void mouseReleaseEvent (QMouseEvent *event) override
 
virtual void mouseMoveEvent (QMouseEvent *event) override
 
virtual void mouseDoubleClickEvent (QMouseEvent *event) override
 
virtual void wheelEvent (QWheelEvent *event) override
 
virtual void customEvent (QEvent *event) override
 
virtual void scrollContentsBy (int dx, int dy) override
 
HighlightTokenState getTokenForMouseEvent (QMouseEvent *event)
 
virtual void contextMenuEvent (QContextMenuEvent *) override
 
void bindActions ()
 
void bindDynamicActions ()
 
void navigateToAddress (uint64_t addr)
 
void navigateToGotoLabel (uint64_t label)
 
void setGraphInternal (FlowGraphRef graph, BinaryNinja::Ref< FlowGraphHistoryEntry > entry, bool useAddr, uint64_t addr, bool notify, bool recenterWithPreviousGraph, size_t index=BN_INVALID_EXPR)
 
void up (bool selecting, size_t count=1)
 
void down (bool selecting, size_t count=1)
 
void left (bool selecting)
 
void right (bool selecting)
 
void leftToSymbol (bool selecting)
 
void rightToSymbol (bool selecting)
 
void pageUp (bool selecting)
 
void pageDown (bool selecting)
 
void moveToStartOfLine (bool selecting)
 
void moveToEndOfLine (bool selecting)
 
void moveToStartOfView ()
 
void moveToEndOfView ()
 
void selectAll ()
 
void selectNone ()
 
void navigateToHighlightedToken ()
 
std::optional< uint64_t > addressForCall ()
 
uint64_t getTokenAddress ()
 
bool isFunctionHeader ()
 
- 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 ()
 

Protected Attributes

bool m_enableBlockIndicators = false
 
- 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
 

Additional Inherited Members

- Public Types inherited from BinaryNinja::BinaryDataNotification
enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , ExternalLibraryAdded = 1ULL << 39 ,
  ExternalLibraryRemoved = 1ULL << 40 , ExternalLibraryUpdated = 1ULL << 41 , ExternalLocationAdded = 1ULL << 42 , ExternalLocationRemoved = 1ULL << 43 ,
  ExternalLocationUpdated = 1ULL << 44 , TypeArchiveAttached = 1ULL << 45 , TypeArchiveDetached = 1ULL << 46 , TypeArchiveConnected = 1ULL << 47 ,
  TypeArchiveDisconnected = 1ULL << 48 , UndoEntryAdded = 1ULL << 49 , UndoEntryTaken = 1ULL << 50 , RedoEntryTaken = 1ULL << 51 ,
  Rebased = 1ULL << 52 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved , FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated ,
  DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated , TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated ,
  SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated , StringUpdates = StringFound | StringRemoved , TypeLifetime = TypeDefined | TypeUndefined ,
  TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved , SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved ,
  SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentNameUpdated | ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved , ExternalLibraryLifetime = ExternalLibraryAdded | ExternalLibraryRemoved , ExternalLibraryUpdates = ExternalLibraryLifetime | ExternalLibraryUpdated ,
  ExternalLocationLifetime = ExternalLocationAdded | ExternalLocationRemoved , ExternalLocationUpdates = ExternalLocationLifetime | ExternalLocationUpdated , TypeArchiveUpdates = TypeArchiveAttached | TypeArchiveDetached | TypeArchiveConnected | TypeArchiveDisconnected , UndoUpdates = UndoEntryAdded | UndoEntryTaken | RedoEntryTaken
}
 
using NotificationTypes = uint64_t
 
- Static Public Member Functions inherited from View
static ViewgetViewFromWidget (QWidget *widget)
 
static void registerActions ()
 
static void registerLateActions ()
 

Constructor & Destructor Documentation

◆ FlowGraphWidget()

FlowGraphWidget::FlowGraphWidget ( QWidget * parent,
BinaryViewRef view,
FlowGraphRef graph = FlowGraphRef() )

◆ ~FlowGraphWidget()

FlowGraphWidget::~FlowGraphWidget ( )

Member Function Documentation

◆ paintEvent()

virtual void FlowGraphWidget::paintEvent ( QPaintEvent * event)
overrideprotectedvirtual

◆ resizeEvent()

virtual void FlowGraphWidget::resizeEvent ( QResizeEvent * event)
overrideprotectedvirtual

◆ mousePressEvent()

virtual void FlowGraphWidget::mousePressEvent ( QMouseEvent * event)
overrideprotectedvirtual

◆ mouseReleaseEvent()

virtual void FlowGraphWidget::mouseReleaseEvent ( QMouseEvent * event)
overrideprotectedvirtual

◆ mouseMoveEvent()

virtual void FlowGraphWidget::mouseMoveEvent ( QMouseEvent * event)
overrideprotectedvirtual

◆ mouseDoubleClickEvent()

virtual void FlowGraphWidget::mouseDoubleClickEvent ( QMouseEvent * event)
overrideprotectedvirtual

◆ wheelEvent()

virtual void FlowGraphWidget::wheelEvent ( QWheelEvent * event)
overrideprotectedvirtual

◆ customEvent()

virtual void FlowGraphWidget::customEvent ( QEvent * event)
overrideprotectedvirtual

◆ scrollContentsBy()

virtual void FlowGraphWidget::scrollContentsBy ( int dx,
int dy )
overrideprotectedvirtual

◆ getTokenForMouseEvent()

HighlightTokenState FlowGraphWidget::getTokenForMouseEvent ( QMouseEvent * event)
protected

◆ contextMenuEvent()

virtual void FlowGraphWidget::contextMenuEvent ( QContextMenuEvent * )
overrideprotectedvirtual

◆ bindActions()

void FlowGraphWidget::bindActions ( )
protected

◆ bindDynamicActions()

void FlowGraphWidget::bindDynamicActions ( )
protected

◆ navigateToAddress()

void FlowGraphWidget::navigateToAddress ( uint64_t addr)
protected

◆ navigateToGotoLabel()

void FlowGraphWidget::navigateToGotoLabel ( uint64_t label)
protected

◆ setGraphInternal()

void FlowGraphWidget::setGraphInternal ( FlowGraphRef graph,
BinaryNinja::Ref< FlowGraphHistoryEntry > entry,
bool useAddr,
uint64_t addr,
bool notify,
bool recenterWithPreviousGraph,
size_t index = BN_INVALID_EXPR )
protected

◆ up()

void FlowGraphWidget::up ( bool selecting,
size_t count = 1 )
protected

◆ down()

void FlowGraphWidget::down ( bool selecting,
size_t count = 1 )
protected

◆ left()

void FlowGraphWidget::left ( bool selecting)
protected

◆ right()

void FlowGraphWidget::right ( bool selecting)
protected

◆ leftToSymbol()

void FlowGraphWidget::leftToSymbol ( bool selecting)
protected

◆ rightToSymbol()

void FlowGraphWidget::rightToSymbol ( bool selecting)
protected

◆ pageUp()

void FlowGraphWidget::pageUp ( bool selecting)
protected

◆ pageDown()

void FlowGraphWidget::pageDown ( bool selecting)
protected

◆ moveToStartOfLine()

void FlowGraphWidget::moveToStartOfLine ( bool selecting)
protected

◆ moveToEndOfLine()

void FlowGraphWidget::moveToEndOfLine ( bool selecting)
protected

◆ moveToStartOfView()

void FlowGraphWidget::moveToStartOfView ( )
protected

◆ moveToEndOfView()

void FlowGraphWidget::moveToEndOfView ( )
protected

◆ selectAll()

void FlowGraphWidget::selectAll ( )
protected

◆ selectNone()

void FlowGraphWidget::selectNone ( )
protected

◆ navigateToHighlightedToken()

void FlowGraphWidget::navigateToHighlightedToken ( )
protected

◆ addressForCall()

std::optional< uint64_t > FlowGraphWidget::addressForCall ( )
protected

◆ getTokenAddress()

uint64_t FlowGraphWidget::getTokenAddress ( )
protected

◆ isFunctionHeader()

bool FlowGraphWidget::isFunctionHeader ( )
protected

◆ notifyRefresh()

virtual void FlowGraphWidget::notifyRefresh ( )
overridevirtual

Reimplemented from View.

Reimplemented in DisassemblyView.

◆ OnAnalysisFunctionUpdated()

virtual void FlowGraphWidget::OnAnalysisFunctionUpdated ( BinaryNinja::BinaryView * data,
BinaryNinja::Function * func )
overridevirtual

◆ OnAnalysisFunctionUpdateRequested()

virtual void FlowGraphWidget::OnAnalysisFunctionUpdateRequested ( BinaryNinja::BinaryView * data,
BinaryNinja::Function * func )
overridevirtual

◆ OnDataMetadataUpdated()

virtual void FlowGraphWidget::OnDataMetadataUpdated ( BinaryNinja::BinaryView * data,
uint64_t offset )
overridevirtual

◆ OnTagUpdated()

virtual void FlowGraphWidget::OnTagUpdated ( BinaryNinja::BinaryView * data,
const BinaryNinja::TagReference & tagRef )
overridevirtual

◆ setInitialGraph() [1/2]

void FlowGraphWidget::setInitialGraph ( FlowGraphRef graph)

◆ setInitialGraph() [2/2]

void FlowGraphWidget::setInitialGraph ( FlowGraphRef graph,
uint64_t addr )

◆ setGraph() [1/3]

void FlowGraphWidget::setGraph ( FlowGraphRef graph)

◆ setGraph() [2/3]

void FlowGraphWidget::setGraph ( FlowGraphRef graph,
uint64_t addr )

◆ setGraphAtIndex()

void FlowGraphWidget::setGraphAtIndex ( FlowGraphRef graph,
size_t index )

◆ setGraph() [3/3]

void FlowGraphWidget::setGraph ( FlowGraphRef graph,
BinaryNinja::Ref< FlowGraphHistoryEntry > entry )

◆ setRelatedGraph() [1/2]

void FlowGraphWidget::setRelatedGraph ( FlowGraphRef graph)

◆ setRelatedGraph() [2/2]

void FlowGraphWidget::setRelatedGraph ( FlowGraphRef graph,
uint64_t addr )

◆ updateToGraph()

void FlowGraphWidget::updateToGraph ( FlowGraphRef graph)

◆ updateFonts()

virtual void FlowGraphWidget::updateFonts ( )
overridevirtual

Reimplemented from View.

Reimplemented in DisassemblyView.

◆ getData()

virtual BinaryViewRef FlowGraphWidget::getData ( )
inlineoverridevirtual

Implements View.

◆ getCurrentOffset()

virtual uint64_t FlowGraphWidget::getCurrentOffset ( )
overridevirtual

Implements View.

◆ getSelectionOffsets()

virtual BNAddressRange FlowGraphWidget::getSelectionOffsets ( )
overridevirtual

Reimplemented from View.

◆ getSelectionForXref()

virtual SelectionInfoForXref FlowGraphWidget::getSelectionForXref ( )
overridevirtual

Reimplemented from View.

◆ setSelectionOffsets()

virtual void FlowGraphWidget::setSelectionOffsets ( BNAddressRange range)
overridevirtual

Implements View.

◆ navigate()

virtual bool FlowGraphWidget::navigate ( uint64_t pos)
overridevirtual

Implements View.

Reimplemented in DisassemblyView.

◆ navigateToFunction()

virtual bool FlowGraphWidget::navigateToFunction ( FunctionRef func,
uint64_t pos )
overridevirtual

Reimplemented from View.

Reimplemented in DisassemblyView.

◆ navigateToViewLocation()

virtual bool FlowGraphWidget::navigateToViewLocation ( const ViewLocation & viewLocation,
bool center = false )
overridevirtual

Reimplemented from View.

Reimplemented in DisassemblyView.

◆ navigateWithHistoryEntry() [1/2]

bool FlowGraphWidget::navigateWithHistoryEntry ( uint64_t addr,
BinaryNinja::Ref< FlowGraphHistoryEntry > entry )

◆ navigateWithHistoryEntry() [2/2]

bool FlowGraphWidget::navigateWithHistoryEntry ( FunctionRef func,
uint64_t addr,
BinaryNinja::Ref< FlowGraphHistoryEntry > entry )

◆ setNavigationTarget()

void FlowGraphWidget::setNavigationTarget ( View * target)
inline

◆ clearRelatedHighlights()

virtual void FlowGraphWidget::clearRelatedHighlights ( )
overridevirtual

Reimplemented from View.

◆ setRelatedIndexHighlights()

virtual void FlowGraphWidget::setRelatedIndexHighlights ( FunctionRef func,
const std::set< size_t > & related )
overridevirtual

Reimplemented from View.

◆ setRelatedInstructionHighlights()

virtual void FlowGraphWidget::setRelatedInstructionHighlights ( FunctionRef func,
const std::set< uint64_t > & related )
overridevirtual

Reimplemented from View.

◆ getScale()

float FlowGraphWidget::getScale ( ) const
inline

◆ maxScale()

float FlowGraphWidget::maxScale ( ) const

◆ zoom()

virtual void FlowGraphWidget::zoom ( bool direction)
virtual

◆ zoomToScale()

virtual void FlowGraphWidget::zoomToScale ( float scale = 1.0f)
virtual

◆ zoomToCursor()

virtual void FlowGraphWidget::zoomToCursor ( )
virtual

◆ event()

virtual bool FlowGraphWidget::event ( QEvent * event)
overridevirtual

◆ disableZoom()

void FlowGraphWidget::disableZoom ( )

◆ sendWheelEvent()

virtual void FlowGraphWidget::sendWheelEvent ( QWheelEvent * event)
overridevirtual

Implements PreviewScrollHandler.

◆ canCopyWithTransform()

virtual bool FlowGraphWidget::canCopyWithTransform ( )
overridevirtual

Reimplemented from View.

◆ canCut()

virtual bool FlowGraphWidget::canCut ( )
overridevirtual

Reimplemented from View.

◆ canCopy()

virtual bool FlowGraphWidget::canCopy ( )
overridevirtual

Reimplemented from View.

◆ canCopyAddress()

virtual bool FlowGraphWidget::canCopyAddress ( )
overridevirtual

Reimplemented from View.

◆ canPaste()

virtual bool FlowGraphWidget::canPaste ( )
overridevirtual

Reimplemented from View.

◆ cut()

virtual void FlowGraphWidget::cut ( )
overridevirtual

Reimplemented from View.

◆ copy()

virtual void FlowGraphWidget::copy ( TransformRef xform)
overridevirtual

Reimplemented from View.

◆ paste()

virtual void FlowGraphWidget::paste ( TransformRef xform)
overridevirtual

Reimplemented from View.

◆ canAssemble()

virtual bool FlowGraphWidget::canAssemble ( )
overridevirtual

Reimplemented from View.

◆ canCompile()

virtual bool FlowGraphWidget::canCompile ( )
overridevirtual

Reimplemented from View.

◆ closing()

virtual void FlowGraphWidget::closing ( )
overridevirtual

Reimplemented from View.

◆ getHistoryEntry()

virtual BinaryNinja::Ref< HistoryEntry > FlowGraphWidget::getHistoryEntry ( )
overridevirtual

Reimplemented from View.

Reimplemented in DisassemblyView.

◆ populateDefaultHistoryEntry()

void FlowGraphWidget::populateDefaultHistoryEntry ( FlowGraphHistoryEntry * entry)

◆ navigateToHistoryEntry()

virtual void FlowGraphWidget::navigateToHistoryEntry ( BinaryNinja::Ref< HistoryEntry > entry)
overridevirtual

Reimplemented from View.

Reimplemented in DisassemblyView.

◆ getCurrentFunction()

virtual FunctionRef FlowGraphWidget::getCurrentFunction ( )
overridevirtual

Reimplemented from View.

◆ getCurrentBasicBlock()

virtual BasicBlockRef FlowGraphWidget::getCurrentBasicBlock ( )
overridevirtual

Reimplemented from View.

◆ getCurrentArchitecture()

virtual ArchitectureRef FlowGraphWidget::getCurrentArchitecture ( )
overridevirtual

Reimplemented from View.

◆ getCurrentLowLevelILFunction()

virtual LowLevelILFunctionRef FlowGraphWidget::getCurrentLowLevelILFunction ( )
overridevirtual

Reimplemented from View.

◆ getCurrentMediumLevelILFunction()

virtual MediumLevelILFunctionRef FlowGraphWidget::getCurrentMediumLevelILFunction ( )
overridevirtual

Reimplemented from View.

◆ getCurrentHighLevelILFunction()

virtual HighLevelILFunctionRef FlowGraphWidget::getCurrentHighLevelILFunction ( )
overridevirtual

Reimplemented from View.

◆ getCurrentILInstructionIndex()

virtual size_t FlowGraphWidget::getCurrentILInstructionIndex ( )
overridevirtual

Reimplemented from View.

◆ getSelectionStartILInstructionIndex()

virtual size_t FlowGraphWidget::getSelectionStartILInstructionIndex ( )
overridevirtual

Reimplemented from View.

◆ getILIndexRange()

virtual BNILIndexRange FlowGraphWidget::getILIndexRange ( )
overridevirtual

Reimplemented from View.

◆ scrollToCursor()

void FlowGraphWidget::scrollToCursor ( bool center = false)

◆ isUpdating()

bool FlowGraphWidget::isUpdating ( )

◆ getFont()

QFont FlowGraphWidget::getFont ( )
inlineoverridevirtual

Implements View.

◆ getHighlightTokenState()

virtual HighlightTokenState FlowGraphWidget::getHighlightTokenState ( )
inlineoverridevirtual

Reimplemented from View.

◆ paintMiniGraphAndViewport()

void FlowGraphWidget::paintMiniGraphAndViewport ( QWidget * owner,
QRect & miniRenderRect )

◆ paintMiniGraph()

bool FlowGraphWidget::paintMiniGraph ( QWidget * owner,
QPainter & p,
QRect & miniRenderRect )

◆ paintNode()

void FlowGraphWidget::paintNode ( QPainter & p,
FlowGraphNodeRef & node,
int minY,
int maxY )

◆ paintHighlight()

void FlowGraphWidget::paintHighlight ( QPainter & p,
const std::vector< BinaryNinja::DisassemblyTextLine > & lines,
int nodeX,
int nodeWidth,
int x,
int y,
size_t line,
int tagIndent )

◆ paintEdge()

void FlowGraphWidget::paintEdge ( QPainter & p,
const FlowGraphNodeRef & node,
const BinaryNinja::FlowGraphEdge & edge )

◆ showAddress()

void FlowGraphWidget::showAddress ( uint64_t addr,
bool select = false,
bool center = false )

◆ showIndex()

void FlowGraphWidget::showIndex ( size_t index,
bool center = false )

◆ showTopNode()

void FlowGraphWidget::showTopNode ( )

◆ showNode()

void FlowGraphWidget::showNode ( FlowGraphNodeRef node)

◆ showLineInNode()

void FlowGraphWidget::showLineInNode ( FlowGraphNodeRef node,
size_t lineIndex )

◆ ensureCursorVisible()

void FlowGraphWidget::ensureCursorVisible ( )

◆ setInstructionHighlight()

void FlowGraphWidget::setInstructionHighlight ( BNHighlightColor color)

◆ setBlockHighlight()

void FlowGraphWidget::setBlockHighlight ( BNHighlightColor color)

◆ goToReference()

virtual bool FlowGraphWidget::goToReference ( FunctionRef func,
uint64_t source,
uint64_t target )
overridevirtual

Reimplemented from View.

◆ setHighlightToken()

void FlowGraphWidget::setHighlightToken ( const HighlightTokenState & state,
bool notify = true,
bool update = false )

◆ notifyUpdateInProgress()

virtual void FlowGraphWidget::notifyUpdateInProgress ( FunctionRef func)
virtual

Reimplemented in DisassemblyView.

◆ onFunctionSelected()

virtual void FlowGraphWidget::onFunctionSelected ( FunctionRef func)
virtual

Reimplemented in DisassemblyView.

◆ onHighlightChanged()

virtual void FlowGraphWidget::onHighlightChanged ( const HighlightTokenState & highlight)
virtual

Reimplemented in DisassemblyView.

◆ getNodeForMouseEvent()

bool FlowGraphWidget::getNodeForMouseEvent ( QMouseEvent * event,
FlowGraphNodeRef & node )

◆ getLineForMouseEvent()

bool FlowGraphWidget::getLineForMouseEvent ( QMouseEvent * event,
CursorPosition & pos )

◆ getEdgeForMouseEvent()

bool FlowGraphWidget::getEdgeForMouseEvent ( QMouseEvent * event,
FlowGraphNodeRef & source,
BinaryNinja::FlowGraphEdge & edge,
bool & incoming )

◆ duplicate()

FlowGraphWidget * FlowGraphWidget::duplicate ( )

◆ layoutComplete

void FlowGraphWidget::layoutComplete ( )
signal

◆ updateMiniGraph

void FlowGraphWidget::updateMiniGraph ( )
signal

Member Data Documentation

◆ m_enableBlockIndicators

bool FlowGraphWidget::m_enableBlockIndicators = false
protected