registers_context_menu

summary: add a custom action to the “registers” widget

description:

It’s possible to add actions to the context menu of pretty much all widgets in IDA.

This example shows how to do just that for registers-displaying widgets (e.g., “General registers”)

level: intermediate

Attributes

ACTION_NAME

Classes

dump_reg_ah_t

registers_hooks_t

Module Contents

registers_context_menu.ACTION_NAME = 'registers_context_menu:dump_reg'
class registers_context_menu.dump_reg_ah_t

Bases: ida_kernwin.action_handler_t

activate(ctx)

Activate an action. This function implements the core behavior of an action. It is called when the action is triggered, from a menu, from a popup menu, from the toolbar, or programmatically.

Returns:

non-zero: all IDA windows will be refreshed

update(ctx)

Update an action. This is called when the context of the UI changed, and we need to let the action update some of its properties if needed (label, icon, …) In addition, this lets IDA know whether the action is enabled, and when it should be queried for availability again. Note: This callback is not meant to change anything in the application’s state, except by calling one (or many) of the “update_action_*()” functions on this very action.

class registers_context_menu.registers_hooks_t(_flags: int = 0, _hkcb_flags: int = 1)

Bases: ida_kernwin.UI_Hooks

finish_populating_widget_popup(form, popup)

IDA is about to be done populating the context menu for a widget. This is your chance to attach_action_to_popup().

Parameters:
  • widget – (TWidget *)

  • popup_handle – (TPopupMenu *)

  • ctx – (const action_activation_ctx_t *)

Returns:

void