IDAPython 9.0
|
Graph view management.
Classes | |
class | drawable_graph_t |
class | edge_info_t |
class | edge_infos_wrapper_t |
class | edge_layout_point_t |
class | edge_segment_t |
class | graph_item_t |
class | graph_node_visitor_t |
class | graph_path_visitor_t |
class | graph_visitor_t |
class | GraphViewer |
class | group_crinfo_t |
class | interactive_graph_t |
class | interval_t |
class | node_info_t |
class | node_layout_t |
class | point_t |
class | pointseq_t |
class | pointvec_t |
class | rect_t |
class | row_info_t |
class | screen_graph_selection_base_t |
class | screen_graph_selection_t |
class | selection_item_t |
class | TPointDouble |
class | user_graph_place_t |
Functions | |
bool | get_node_info ('node_info_t' out, 'graph_id_t' gid, int node) |
None | set_node_info ('graph_id_t' gid, int node, 'node_info_t' ni, int flags) |
None | del_node_info ('graph_id_t' gid, int node) |
None | clr_node_info ('graph_id_t' gid, int node, int flags) |
'double' | calc_dist ('point_t' p, 'point_t' q) |
'graph_viewer_t *' | create_graph_viewer (str title, int id, 'hook_cb_t *' callback, 'void *' ud, int title_height, 'TWidget *' parent=None) |
'graph_viewer_t *' | get_graph_viewer ('TWidget *' parent) |
'interactive_graph_t *' | create_interactive_graph (int id) |
'interactive_graph_t *' | create_disasm_graph (*args) |
'interactive_graph_t *' | get_viewer_graph ('graph_viewer_t *' gv) |
None | set_viewer_graph ('graph_viewer_t *' gv, 'interactive_graph_t' g) |
None | refresh_viewer ('graph_viewer_t *' gv) |
None | viewer_fit_window ('graph_viewer_t *' gv) |
int | viewer_get_curnode ('graph_viewer_t *' gv) |
None | viewer_center_on ('graph_viewer_t *' gv, int node) |
None | viewer_set_gli ('graph_viewer_t *' gv, 'graph_location_info_t const *' gli, int flags=0) |
bool | viewer_get_gli ('graph_location_info_t *' out, 'graph_viewer_t *' gv, int flags=0) |
None | viewer_set_node_info ('graph_viewer_t *' gv, int n, 'node_info_t' ni, int flags) |
bool | viewer_get_node_info ('graph_viewer_t *' gv, 'node_info_t' out, int n) |
None | viewer_del_node_info ('graph_viewer_t *' gv, int n) |
bool | viewer_create_groups ('graph_viewer_t *' gv, 'intvec_t *' out_group_nodes, 'groups_crinfos_t const &' gi) |
bool | viewer_delete_groups ('graph_viewer_t *' gv, 'intvec_t const &' groups, int new_current=-1) |
bool | viewer_set_groups_visibility ('graph_viewer_t *' gv, 'intvec_t const &' groups, bool expand, int new_current=-1) |
bool | viewer_attach_menu_item ('graph_viewer_t *' g, str name) |
bool | viewer_get_selection ('graph_viewer_t *' gv, 'screen_graph_selection_t' sgs) |
int | viewer_set_titlebar_height ('graph_viewer_t *' gv, int height) |
None | delete_interactive_graph ('interactive_graph_t' g) |
'user_graph_place_t *' | create_user_graph_place (int node, int lnnum) |
None | pyg_close ('PyObject *' _self) |
None | pyg_select_node ('PyObject *' _self, int nid) |
bool | pyg_show ('PyObject *' _self) |
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 | |
tuple | 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 |
None | delete_mutable_graph = delete_interactive_graph |
grcode_create_mutable_graph = grcode_create_interactive_graph | |
None clr_node_info | ( | 'graph_id_t' | gid, |
int | node, | ||
int | flags ) |
Clear node info for the given node. @param gid: id of desired graph @param node: node number @param flags: combination of Node info flags, identifying which fields of node_info_t will be cleared
'interactive_graph_t *' create_disasm_graph | ( | * | args | ) |
This function has the following signatures: 0. create_disasm_graph(ea: ida_idaapi.ea_t) -> interactive_graph_t * 1. create_disasm_graph(ranges: const rangevec_t &) -> interactive_graph_t * # 0: create_disasm_graph(ea: ida_idaapi.ea_t) -> interactive_graph_t * Create a graph for the function that contains 'ea'. # 1: create_disasm_graph(ranges: const rangevec_t &) -> interactive_graph_t * Create a graph using an arbitrary set of ranges.
'graph_viewer_t *' create_graph_viewer | ( | str | title, |
int | id, | ||
'hook_cb_t *' | callback, | ||
'void *' | ud, | ||
int | title_height, | ||
'TWidget *' | parent = None ) |
Create a custom graph viewer. @param title: the widget title @param id: graph id @param callback: callback to handle graph notifications (graph_notification_t) @param ud: user data passed to callback @param title_height: node title height @param parent: the parent widget of the graph viewer @returns new viewer
'interactive_graph_t *' create_interactive_graph | ( | int | id | ) |
Create a new empty graph with given id.
'user_graph_place_t *' create_user_graph_place | ( | int | node, |
int | lnnum ) |
Get a copy of a user_graph_place_t (returns a pointer to static storage)
None del_node_info | ( | 'graph_id_t' | gid, |
int | node ) |
Delete the node_info_t for the given node.
None delete_interactive_graph | ( | 'interactive_graph_t' | g | ) |
Delete graph object.
'graph_viewer_t *' get_graph_viewer | ( | 'TWidget *' | parent | ) |
Get custom graph viewer for given form.
bool get_node_info | ( | 'node_info_t' | out, |
'graph_id_t' | gid, | ||
int | node ) |
Get node info. @param out: result @param gid: id of desired graph @param node: node number @returns success
'interactive_graph_t *' get_viewer_graph | ( | 'graph_viewer_t *' | gv | ) |
Get graph object for given custom graph viewer.
None pyg_close | ( | 'PyObject *' | _self | ) |
None pyg_select_node | ( | 'PyObject *' | _self, |
int | nid ) |
bool pyg_show | ( | 'PyObject *' | _self | ) |
None refresh_viewer | ( | 'graph_viewer_t *' | gv | ) |
Redraw the graph in the given view.
None set_node_info | ( | 'graph_id_t' | gid, |
int | node, | ||
'node_info_t' | ni, | ||
int | flags ) |
Set node info. @param gid: id of desired graph @param node: node number @param ni: node info to use @param flags: combination of Node info flags, identifying which fields of 'ni' will be used
None set_viewer_graph | ( | 'graph_viewer_t *' | gv, |
'interactive_graph_t' | g ) |
Set the underlying graph object for the given viewer.
bool viewer_attach_menu_item | ( | 'graph_viewer_t *' | g, |
str | name ) |
Attach a previously-registered action to the view's context menu. See kernwin.hpp for how to register actions. @param g: graph viewer @param name: action name @returns success
None viewer_center_on | ( | 'graph_viewer_t *' | gv, |
int | node ) |
Center the graph view on the given node.
bool viewer_create_groups | ( | 'graph_viewer_t *' | gv, |
'intvec_t *' | out_group_nodes, | ||
'groups_crinfos_t const &' | gi ) |
This will perform an operation similar to what happens when a user manually selects a set of nodes, right-clicks and selects "Create group". This is a wrapper around interactive_graph_t::create_group that will, in essence: * clone the current graph * for each group_crinfo_t, attempt creating group in that new graph * if all were successful, animate to that new graph.
None viewer_del_node_info | ( | 'graph_viewer_t *' | gv, |
int | n ) |
Delete node info for node in given viewer (see del_node_info())
bool viewer_delete_groups | ( | 'graph_viewer_t *' | gv, |
'intvec_t const &' | groups, | ||
int | new_current = -1 ) |
Wrapper around interactive_graph_t::delete_group. This function will: * clone the current graph * attempt deleting the groups in that new graph * if successful, animate to that new graph.
None viewer_fit_window | ( | 'graph_viewer_t *' | gv | ) |
Fit graph viewer to its parent form.
int viewer_get_curnode | ( | 'graph_viewer_t *' | gv | ) |
Get number of currently selected node (-1 if none)
bool viewer_get_gli | ( | 'graph_location_info_t *' | out, |
'graph_viewer_t *' | gv, | ||
int | flags = 0 ) |
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. Otherwise it will be the top-left.
bool viewer_get_node_info | ( | 'graph_viewer_t *' | gv, |
'node_info_t' | out, | ||
int | n ) |
Get node info for node in given viewer (see get_node_info())
bool viewer_get_selection | ( | 'graph_viewer_t *' | gv, |
'screen_graph_selection_t' | sgs ) |
Get currently selected items for graph viewer.
None viewer_set_gli | ( | 'graph_viewer_t *' | gv, |
'graph_location_info_t const *' | gli, | ||
int | 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. Otherwise it will be the top-left.
bool viewer_set_groups_visibility | ( | 'graph_viewer_t *' | gv, |
'intvec_t const &' | groups, | ||
bool | expand, | ||
int | new_current = -1 ) |
Wrapper around interactive_graph_t::change_visibility. This function will: * clone the current graph * attempt changing visibility of the groups in that new graph * if successful, animate to that new graph.
None viewer_set_node_info | ( | 'graph_viewer_t *' | gv, |
int | n, | ||
'node_info_t' | ni, | ||
int | flags ) |
Set node info for node in given viewer (see set_node_info())
int viewer_set_titlebar_height | ( | 'graph_viewer_t *' | gv, |
int | height ) |
Set height of node title bars (grcode_set_titlebar_height)
abstract_graph_t = drawable_graph_t |
arrow_height = cvar.arrow_height |
arrow_width = cvar.arrow_width |
COLLAPSED_NODE = _ida_graph.COLLAPSED_NODE |
'interactive_graph_t *' create_mutable_graph = create_interactive_graph |
cvar = _ida_graph.cvar |
None delete_mutable_graph = delete_interactive_graph |
edge_t = ida_gdl.edge_t |
git_edge = _ida_graph.git_edge |
git_elp = _ida_graph.git_elp |
git_node = _ida_graph.git_node |
git_none = _ida_graph.git_none |
git_text = _ida_graph.git_text |
git_tool = _ida_graph.git_tool |
GLICTL_CENTER = _ida_graph.GLICTL_CENTER |
grcode_attach_menu_item = _ida_graph.grcode_attach_menu_item |
grcode_calculating_layout = _ida_graph.grcode_calculating_layout |
grcode_center_on = _ida_graph.grcode_center_on |
grcode_change_group_visibility = _ida_graph.grcode_change_group_visibility |
grcode_changed_graph = _ida_graph.grcode_changed_graph |
grcode_clear = _ida_graph.grcode_clear |
grcode_clicked = _ida_graph.grcode_clicked |
grcode_create_circle_layout = _ida_graph.grcode_create_circle_layout |
grcode_create_digraph_layout = _ida_graph.grcode_create_digraph_layout |
grcode_create_disasm_graph1 = _ida_graph.grcode_create_disasm_graph1 |
grcode_create_disasm_graph2 = _ida_graph.grcode_create_disasm_graph2 |
grcode_create_graph_viewer = _ida_graph.grcode_create_graph_viewer |
grcode_create_group = _ida_graph.grcode_create_group |
grcode_create_interactive_graph = _ida_graph.grcode_create_interactive_graph |
grcode_create_mutable_graph = grcode_create_interactive_graph |
grcode_create_tree_layout = _ida_graph.grcode_create_tree_layout |
grcode_create_user_graph_place = _ida_graph.grcode_create_user_graph_place |
grcode_creating_group = _ida_graph.grcode_creating_group |
grcode_dblclicked = _ida_graph.grcode_dblclicked |
grcode_del_custom_layout = _ida_graph.grcode_del_custom_layout |
grcode_del_node_info = _ida_graph.grcode_del_node_info |
grcode_delete_group = _ida_graph.grcode_delete_group |
grcode_delete_interactive_graph = _ida_graph.grcode_delete_interactive_graph |
grcode_deleting_group = _ida_graph.grcode_deleting_group |
grcode_destroyed = _ida_graph.grcode_destroyed |
grcode_edge_infos_wrapper_clear = _ida_graph.grcode_edge_infos_wrapper_clear |
grcode_edge_infos_wrapper_copy = _ida_graph.grcode_edge_infos_wrapper_copy |
grcode_empty = _ida_graph.grcode_empty |
grcode_find_subgraph_node = _ida_graph.grcode_find_subgraph_node |
grcode_fit_window = _ida_graph.grcode_fit_window |
grcode_get_curnode = _ida_graph.grcode_get_curnode |
grcode_get_custom_layout = _ida_graph.grcode_get_custom_layout |
grcode_get_gli = _ida_graph.grcode_get_gli |
grcode_get_graph_groups = _ida_graph.grcode_get_graph_groups |
grcode_get_graph_viewer = _ida_graph.grcode_get_graph_viewer |
grcode_get_node_info = _ida_graph.grcode_get_node_info |
grcode_get_node_representative = _ida_graph.grcode_get_node_representative |
grcode_get_selection = _ida_graph.grcode_get_selection |
grcode_get_viewer_graph = _ida_graph.grcode_get_viewer_graph |
grcode_gotfocus = _ida_graph.grcode_gotfocus |
grcode_group_visibility = _ida_graph.grcode_group_visibility |
grcode_is_visible_node = _ida_graph.grcode_is_visible_node |
grcode_layout_calculated = _ida_graph.grcode_layout_calculated |
grcode_lostfocus = _ida_graph.grcode_lostfocus |
grcode_node_qty = _ida_graph.grcode_node_qty |
grcode_nrect = _ida_graph.grcode_nrect |
grcode_refresh_viewer = _ida_graph.grcode_refresh_viewer |
grcode_reserved = _ida_graph.grcode_reserved |
grcode_reserved2 = _ida_graph.grcode_reserved2 |
grcode_set_custom_layout = _ida_graph.grcode_set_custom_layout |
grcode_set_edge = _ida_graph.grcode_set_edge |
grcode_set_gli = _ida_graph.grcode_set_gli |
grcode_set_graph_groups = _ida_graph.grcode_set_graph_groups |
grcode_set_node_info = _ida_graph.grcode_set_node_info |
grcode_set_titlebar_height = _ida_graph.grcode_set_titlebar_height |
grcode_set_viewer_graph = _ida_graph.grcode_set_viewer_graph |
grcode_user_draw = _ida_graph.grcode_user_draw |
grcode_user_hint = _ida_graph.grcode_user_hint |
grcode_user_refresh = _ida_graph.grcode_user_refresh |
grcode_user_size = _ida_graph.grcode_user_size |
grcode_user_text = _ida_graph.grcode_user_text |
grcode_user_title = _ida_graph.grcode_user_title |
grcode_viewer_create_groups = _ida_graph.grcode_viewer_create_groups |
grcode_viewer_create_groups_vec = _ida_graph.grcode_viewer_create_groups_vec |
grcode_viewer_delete_groups = _ida_graph.grcode_viewer_delete_groups |
grcode_viewer_delete_groups_vec = _ida_graph.grcode_viewer_delete_groups_vec |
grcode_viewer_groups_visibility = _ida_graph.grcode_viewer_groups_visibility |
tuple grcode_viewer_groups_visibility_vec |
layout_circle = cvar.layout_circle |
layout_digraph = cvar.layout_digraph |
layout_none = cvar.layout_none |
layout_orthogonal = cvar.layout_orthogonal |
layout_polar_tree = cvar.layout_polar_tree |
layout_radial_tree = cvar.layout_radial_tree |
layout_tree = cvar.layout_tree |
MTG_DOT_NODE = _ida_graph.MTG_DOT_NODE |
MTG_GROUP_NODE = _ida_graph.MTG_GROUP_NODE |
MTG_NON_DISPLAYABLE_NODE = _ida_graph.MTG_NON_DISPLAYABLE_NODE |
mutable_graph_t = interactive_graph_t |
NIF_ALL = _ida_graph.NIF_ALL |
NIF_BG_COLOR = _ida_graph.NIF_BG_COLOR |
NIF_EA = _ida_graph.NIF_EA |
NIF_FLAGS = _ida_graph.NIF_FLAGS |
NIF_FRAME_COLOR = _ida_graph.NIF_FRAME_COLOR |
NIF_TEXT = _ida_graph.NIF_TEXT |
NIFF_SHOW_CONTENTS = _ida_graph.NIFF_SHOW_CONTENTS |
node_ordering_t = ida_gdl.node_ordering_t |
xgap = cvar.xgap |
ygap = cvar.ygap |