IDAPython 9.0
Loading...
Searching...
No Matches
ida_graph.py File Reference

Classes

class  screen_graph_selection_base_t
 Proxy of C++ qvector< selection_item_t > class. More...
 
class  node_layout_t
 Proxy of C++ qvector< rect_t > class. More...
 
class  pointvec_t
 Proxy of C++ qvector< point_t > class. More...
 
class  node_info_t
 Proxy of C++ node_info_t class. More...
 
class  graph_node_visitor_t
 Proxy of C++ graph_node_visitor_t class. More...
 
class  graph_path_visitor_t
 Proxy of C++ graph_path_visitor_t class. More...
 
class  point_t
 Proxy of C++ point_t class. More...
 
class  pointseq_t
 Proxy of C++ pointseq_t class. More...
 
class  rect_t
 Proxy of C++ rect_t class. More...
 
class  TPointDouble
 Proxy of C++ TPointDouble class. More...
 
class  edge_info_t
 Proxy of C++ edge_info_t class. More...
 
class  edge_layout_point_t
 Proxy of C++ edge_layout_point_t class. More...
 
class  selection_item_t
 Proxy of C++ selection_item_t class. More...
 
class  screen_graph_selection_t
 Proxy of C++ screen_graph_selection_t class. More...
 
class  edge_segment_t
 Proxy of C++ edge_segment_t class. More...
 
class  graph_item_t
 Proxy of C++ graph_item_t class. More...
 
class  interval_t
 Proxy of C++ interval_t class. More...
 
class  row_info_t
 Proxy of C++ row_info_t class. More...
 
class  drawable_graph_t
 Proxy of C++ drawable_graph_t class. More...
 
class  edge_infos_wrapper_t
 Proxy of C++ edge_infos_wrapper_t class. More...
 
class  interactive_graph_t
 Proxy of C++ interactive_graph_t class. More...
 
class  graph_visitor_t
 Proxy of C++ graph_visitor_t class. More...
 
class  group_crinfo_t
 Proxy of C++ group_crinfo_t class. More...
 
class  user_graph_place_t
 Proxy of C++ user_graph_place_t class. More...
 
class  GraphViewer
 
class  GraphViewer.UI_Hooks_Trampoline
 

Namespaces

namespace  ida_graph
 Graph view management.
 

Functions

"bool" get_node_info ("node_info_t" out, "graph_id_t" gid, "int" node)
 get_node_info(out, gid, node) -> bool Get node info.
 
"void" set_node_info ("graph_id_t" gid, "int" node, "node_info_t" ni, "uint32" flags)
 set_node_info(gid, node, ni, flags) Set node info.
 
"void" del_node_info ("graph_id_t" gid, "int" node)
 del_node_info(gid, node) Delete the node_info_t for the given node.
 
"void" clr_node_info ("graph_id_t" gid, "int" node, "uint32" flags)
 clr_node_info(gid, node, flags) Clear node info for the given node.
 
"double" calc_dist ("point_t" p, "point_t" q)
 calc_dist(p, q) -> double Calculate distance between p and q.
 
"graph_viewer_t *" create_graph_viewer ("char const *" title, "uval_t" id, "hook_cb_t *" callback, "void *" ud, "int" title_height, "TWidget *" parent=None)
 create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t Create a custom graph viewer.
 
"graph_viewer_t *" get_graph_viewer ("TWidget *" parent)
 get_graph_viewer(parent) -> graph_viewer_t * Get custom graph viewer for given form.
 
"interactive_graph_t *" create_interactive_graph ("uval_t" id)
 create_interactive_graph(id) -> interactive_graph_t Create a new empty graph with given id.
 
"interactive_graph_t *" create_disasm_graph (*args)
 create_disasm_graph(ea) -> interactive_graph_t Create a graph using an arbitrary set of ranges.
 
"interactive_graph_t *" get_viewer_graph ("graph_viewer_t *" gv)
 get_viewer_graph(gv) -> interactive_graph_t Get graph object for given custom graph viewer.
 
"void" set_viewer_graph ("graph_viewer_t *" gv, "interactive_graph_t" g)
 set_viewer_graph(gv, g) Set the underlying graph object for the given viewer.
 
"void" refresh_viewer ("graph_viewer_t *" gv)
 refresh_viewer(gv) Redraw the graph in the given view.
 
"void" viewer_fit_window ("graph_viewer_t *" gv)
 viewer_fit_window(gv) Fit graph viewer to its parent form.
 
"int" viewer_get_curnode ("graph_viewer_t *" gv)
 viewer_get_curnode(gv) -> int Get number of currently selected node (-1 if none)
 
"void" viewer_center_on ("graph_viewer_t *" gv, "int" node)
 viewer_center_on(gv, node) Center the graph view on the given node.
 
"void" viewer_set_gli ("graph_viewer_t *" gv, "graph_location_info_t const *" gli, "uint32" flags=0)
 viewer_set_gli(gv, gli, flags=0) Set location info for given graph view If flags contains GLICTL_CENTER, then the gli will be set to be the center of the view.
 
"bool" viewer_get_gli ("graph_location_info_t *" out, "graph_viewer_t *" gv, "uint32" flags=0)
 viewer_get_gli(out, gv, flags=0) -> bool Get location info for given graph view If flags contains GLICTL_CENTER, then the gli that will be retrieved, will be the one at the center of the view.
 
"void" viewer_set_node_info ("graph_viewer_t *" gv, "int" n, "node_info_t" ni, "uint32" flags)
 viewer_set_node_info(gv, n, ni, flags) Set node info for node in given viewer (see set_node_info())
 
"bool" viewer_get_node_info ("graph_viewer_t *" gv, "node_info_t" out, "int" n)
 viewer_get_node_info(gv, out, n) -> bool Get node info for node in given viewer (see get_node_info())
 
"void" viewer_del_node_info ("graph_viewer_t *" gv, "int" n)
 viewer_del_node_info(gv, n) Delete node info for node in given viewer (see del_node_info())
 
"bool" viewer_create_groups ("graph_viewer_t *" gv, "intvec_t *" out_group_nodes, "groups_crinfos_t const &" gi)
 viewer_create_groups(gv, out_group_nodes, gi) -> bool This will perform an operation similar to what happens when a user manually selects a set of nodes, right-clicks and selects "Create group".
 
"bool" viewer_delete_groups ("graph_viewer_t *" gv, "intvec_t const &" groups, "int" new_current=-1)
 viewer_delete_groups(gv, groups, new_current=-1) -> bool Wrapper around interactive_graph_t.delete_group.
 
"bool" viewer_set_groups_visibility ("graph_viewer_t *" gv, "intvec_t const &" groups, "bool" expand, "int" new_current=-1)
 viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool Wrapper around interactive_graph_t::change_visibility.
 
"bool" viewer_attach_menu_item ("graph_viewer_t *" g, "char const *" name)
 viewer_attach_menu_item(g, name) -> bool Attach a previously-registered action to the view's context menu.
 
"bool" viewer_get_selection ("graph_viewer_t *" gv, "screen_graph_selection_t" sgs)
 viewer_get_selection(gv, sgs) -> bool Get currently selected items for graph viewer.
 
"int" viewer_set_titlebar_height ("graph_viewer_t *" gv, "int" height)
 viewer_set_titlebar_height(gv, height) -> int Set height of node title bars (grcode_set_titlebar_height)
 
"void" delete_interactive_graph ("interactive_graph_t" g)
 delete_interactive_graph(g) Delete graph object.
 
"user_graph_place_t *" create_user_graph_place ("int" node, "int" lnnum)
 create_user_graph_place(node, lnnum) -> user_graph_place_t Get a copy of a user_graph_place_t (returns a pointer to static storage)
 
"void" pyg_close ("PyObject *" _self)
 pyg_close(_self)
 
"void" pyg_select_node ("PyObject *" _self, "int" nid)
 pyg_select_node(_self, nid)
 
"bool" pyg_show ("PyObject *" _self)
 pyg_show(_self) -> bool
 

Variables

 NIF_BG_COLOR = _ida_graph.NIF_BG_COLOR
 
 NIF_FRAME_COLOR = _ida_graph.NIF_FRAME_COLOR
 
 NIF_EA = _ida_graph.NIF_EA
 
 NIF_TEXT = _ida_graph.NIF_TEXT
 
 NIF_FLAGS = _ida_graph.NIF_FLAGS
 
 NIF_ALL = _ida_graph.NIF_ALL
 
 GLICTL_CENTER = _ida_graph.GLICTL_CENTER
 
 NIFF_SHOW_CONTENTS = _ida_graph.NIFF_SHOW_CONTENTS
 
 cvar = _ida_graph.cvar
 
 layout_none = cvar.layout_none
 
 layout_digraph = cvar.layout_digraph
 
 layout_tree = cvar.layout_tree
 
 layout_circle = cvar.layout_circle
 
 layout_polar_tree = cvar.layout_polar_tree
 
 layout_orthogonal = cvar.layout_orthogonal
 
 layout_radial_tree = cvar.layout_radial_tree
 
 git_none = _ida_graph.git_none
 
 git_edge = _ida_graph.git_edge
 
 git_node = _ida_graph.git_node
 
 git_tool = _ida_graph.git_tool
 
 git_text = _ida_graph.git_text
 
 git_elp = _ida_graph.git_elp
 
 ygap = cvar.ygap
 
 xgap = cvar.xgap
 
 arrow_height = cvar.arrow_height
 
 arrow_width = cvar.arrow_width
 
 MTG_GROUP_NODE = _ida_graph.MTG_GROUP_NODE
 
 MTG_DOT_NODE = _ida_graph.MTG_DOT_NODE
 
 MTG_NON_DISPLAYABLE_NODE = _ida_graph.MTG_NON_DISPLAYABLE_NODE
 
 COLLAPSED_NODE = _ida_graph.COLLAPSED_NODE
 
 grcode_calculating_layout = _ida_graph.grcode_calculating_layout
 
 grcode_layout_calculated = _ida_graph.grcode_layout_calculated
 
 grcode_changed_graph = _ida_graph.grcode_changed_graph
 
 grcode_reserved = _ida_graph.grcode_reserved
 
 grcode_clicked = _ida_graph.grcode_clicked
 
 grcode_dblclicked = _ida_graph.grcode_dblclicked
 
 grcode_creating_group = _ida_graph.grcode_creating_group
 
 grcode_deleting_group = _ida_graph.grcode_deleting_group
 
 grcode_group_visibility = _ida_graph.grcode_group_visibility
 
 grcode_gotfocus = _ida_graph.grcode_gotfocus
 
 grcode_lostfocus = _ida_graph.grcode_lostfocus
 
 grcode_user_refresh = _ida_graph.grcode_user_refresh
 
 grcode_reserved2 = _ida_graph.grcode_reserved2
 
 grcode_user_text = _ida_graph.grcode_user_text
 
 grcode_user_size = _ida_graph.grcode_user_size
 
 grcode_user_title = _ida_graph.grcode_user_title
 
 grcode_user_draw = _ida_graph.grcode_user_draw
 
 grcode_user_hint = _ida_graph.grcode_user_hint
 
 grcode_destroyed = _ida_graph.grcode_destroyed
 
 grcode_create_graph_viewer = _ida_graph.grcode_create_graph_viewer
 
 grcode_get_graph_viewer = _ida_graph.grcode_get_graph_viewer
 
 grcode_get_viewer_graph = _ida_graph.grcode_get_viewer_graph
 
 grcode_create_interactive_graph = _ida_graph.grcode_create_interactive_graph
 
 grcode_set_viewer_graph = _ida_graph.grcode_set_viewer_graph
 
 grcode_refresh_viewer = _ida_graph.grcode_refresh_viewer
 
 grcode_fit_window = _ida_graph.grcode_fit_window
 
 grcode_get_curnode = _ida_graph.grcode_get_curnode
 
 grcode_center_on = _ida_graph.grcode_center_on
 
 grcode_get_selection = _ida_graph.grcode_get_selection
 
 grcode_del_custom_layout = _ida_graph.grcode_del_custom_layout
 
 grcode_set_custom_layout = _ida_graph.grcode_set_custom_layout
 
 grcode_set_graph_groups = _ida_graph.grcode_set_graph_groups
 
 grcode_clear = _ida_graph.grcode_clear
 
 grcode_create_digraph_layout = _ida_graph.grcode_create_digraph_layout
 
 grcode_create_tree_layout = _ida_graph.grcode_create_tree_layout
 
 grcode_create_circle_layout = _ida_graph.grcode_create_circle_layout
 
 grcode_get_node_representative = _ida_graph.grcode_get_node_representative
 
 grcode_find_subgraph_node = _ida_graph.grcode_find_subgraph_node
 
 grcode_create_group = _ida_graph.grcode_create_group
 
 grcode_get_custom_layout = _ida_graph.grcode_get_custom_layout
 
 grcode_get_graph_groups = _ida_graph.grcode_get_graph_groups
 
 grcode_empty = _ida_graph.grcode_empty
 
 grcode_is_visible_node = _ida_graph.grcode_is_visible_node
 
 grcode_delete_group = _ida_graph.grcode_delete_group
 
 grcode_change_group_visibility = _ida_graph.grcode_change_group_visibility
 
 grcode_set_edge = _ida_graph.grcode_set_edge
 
 grcode_node_qty = _ida_graph.grcode_node_qty
 
 grcode_nrect = _ida_graph.grcode_nrect
 
 grcode_set_titlebar_height = _ida_graph.grcode_set_titlebar_height
 
 grcode_create_user_graph_place = _ida_graph.grcode_create_user_graph_place
 
 grcode_create_disasm_graph1 = _ida_graph.grcode_create_disasm_graph1
 
 grcode_create_disasm_graph2 = _ida_graph.grcode_create_disasm_graph2
 
 grcode_set_node_info = _ida_graph.grcode_set_node_info
 
 grcode_get_node_info = _ida_graph.grcode_get_node_info
 
 grcode_del_node_info = _ida_graph.grcode_del_node_info
 
 grcode_viewer_create_groups = _ida_graph.grcode_viewer_create_groups
 
 grcode_viewer_delete_groups = _ida_graph.grcode_viewer_delete_groups
 
 grcode_viewer_groups_visibility = _ida_graph.grcode_viewer_groups_visibility
 
 grcode_viewer_create_groups_vec = _ida_graph.grcode_viewer_create_groups_vec
 
 grcode_viewer_delete_groups_vec = _ida_graph.grcode_viewer_delete_groups_vec
 
 grcode_viewer_groups_visibility_vec = _ida_graph.grcode_viewer_groups_visibility_vec
 
 grcode_delete_interactive_graph = _ida_graph.grcode_delete_interactive_graph
 
 grcode_edge_infos_wrapper_copy = _ida_graph.grcode_edge_infos_wrapper_copy
 
 grcode_edge_infos_wrapper_clear = _ida_graph.grcode_edge_infos_wrapper_clear
 
 grcode_attach_menu_item = _ida_graph.grcode_attach_menu_item
 
 grcode_set_gli = _ida_graph.grcode_set_gli
 
 grcode_get_gli = _ida_graph.grcode_get_gli
 
 edge_t = ida_gdl.edge_t
 
 node_ordering_t = ida_gdl.node_ordering_t
 
 abstract_graph_t = drawable_graph_t
 
 mutable_graph_t = interactive_graph_t
 
"interactive_graph_t *" create_mutable_graph = create_interactive_graph
 
"void" delete_mutable_graph = delete_interactive_graph
 
 grcode_create_mutable_graph = grcode_create_interactive_graph