Module ida_kernwin
Defines the interface between the kernel and the UI.
It contains: * the UI dispatcher notification codes (ui_notification_t) * convenience functions for UI services * structures which hold information about the lines (disassembly, structures, enums) generated by the kernel * functions to interact with the user (dialog boxes) * some string and conversion functions.
Global variables
var AA_CHECKABLE-
see update_action_checkable()
var AA_CHECKED-
see update_action_checked()
var AA_ICON-
see update_action_icon()
var AA_LABEL-
see update_action_label()
var AA_NONE-
no effect
var AA_SHORTCUT-
see update_action_shortcut()
var AA_STATE-
see update_action_state()
var AA_TOOLTIP-
see update_action_tooltip()
var AA_VISIBILITY-
see update_action_visibility()
var ACF_HAS_FIELD_DIRTREE_SELECTION-
'dirtree_selection' field is present
var ACF_HAS_SELECTION-
there is currently a valid selection
var ACF_HAS_SOURCE-
'source' field is present
var ACF_HAS_TYPE_REF-
'type_ref' field is present
var ACF_XTRN_EA-
cur_ea is in 'externs' segment
var ADF_CHECKABLE-
action is checkable
var ADF_CHECKED-
starts in a checked state (requires ADF_CHECKABLE)
var ADF_GLOBAL-
Register the action globally, so that it's available even if no IDB is present
var ADF_NO_HIGHLIGHT-
After activating, do not update the highlight according to what's under the cursor (listings only.)
var ADF_NO_UNDO-
the action does not create an undo point. useful for actions that do not modify the database.
var ADF_OT_MASK-
Owner type mask.
var ADF_OT_PLUGIN-
Owner is a plugin_t.
var ADF_OT_PLUGMOD-
Owner is a plugmod_t.
var ADF_OT_PROCMOD-
Owner is a procmod_t.
var ADF_OWN_HANDLER-
handler is owned by the action; it'll be destroyed when the action is unregistered. Use DYNACTION_DESC_LITERAL to set this bit.
var AHF_VERSION-
action handler version (used by action_handler_t::flags)
var AHF_VERSION_MASK-
mask for action_handler_t::flags
var ASKBTN_BTN1-
First (Yes) button.
var ASKBTN_BTN2-
Second (No) button.
var ASKBTN_BTN3-
Third (Cancel) button.
var ASKBTN_CANCEL-
Cancel button.
var ASKBTN_NO-
No button.
var ASKBTN_YES-
Yes button.
var AST_DISABLE-
analog of AST_ENABLE
var AST_DISABLE_ALWAYS-
disable action and do not call action_handler_t::action() anymore
var AST_DISABLE_FOR_IDB-
analog of AST_ENABLE_FOR_IDB
var AST_DISABLE_FOR_WIDGET-
analog of AST_ENABLE_FOR_WIDGET
var AST_ENABLE-
enable action - call action_handler_t::update() when anything changes
var AST_ENABLE_ALWAYS-
enable action and do not call action_handler_t::update() anymore
var AST_ENABLE_FOR_IDB-
enable action for the current idb. call action_handler_t::update() when a database is opened/closed
var AST_ENABLE_FOR_WIDGET-
enable action for the current widget. call action_handler_t::update() when a widget gets/loses focus
var BWN_ADDRWATCH-
the 'Watch List' window
var BWN_BOOKMARKS-
a persistent 'Bookmarks' widget
var BWN_BPTS-
breakpoints
var BWN_CALLS-
function calls
var BWN_CALLS_CALLEES-
function calls, callees
var BWN_CALLS_CALLERS-
function calls, callers
var BWN_CALL_STACK-
call stack
var BWN_CHOOSER-
a non-builtin chooser
var BWN_CLI-
the command-line, in the output window
var BWN_CMDPALCSR-
the command palette chooser (Qt version only)
var BWN_CMDPALWIN-
the command palette window (Qt version only)
var BWN_CPUREGS-
one of the 'General registers', 'FPU register', … debugger windows
var BWN_CUSTVIEW-
custom viewers
var BWN_CV_LINE_INFOS-
custom viewers' lineinfo widget
var BWN_DISASM-
disassembly views
var BWN_DISASM_ARROWS-
disassembly arrows widget
var BWN_EXPORTS-
exports
var BWN_FRAME-
function frame
var BWN_FUNCS-
functions
var BWN_HEXVIEW-
hex view
var BWN_IMPORTS-
imports
var BWN_LOCALS-
the 'locals' debugger window
var BWN_MDVIEWCSR-
lumina metadata view chooser
var BWN_MODULES-
modules
var BWN_NAMES-
names
var BWN_NAVBAND-
navigation band
var BWN_NOTEPAD-
notepad
var BWN_OUTPUT-
the text area, in the output window
var BWN_PROBS-
problems
var BWN_PSEUDOCODE-
hexrays decompiler views
var BWN_SCRIPTS_CSR-
the "Recent scripts" chooser
var BWN_SEARCH-
search results
var BWN_SEGREGS-
segment registers
var BWN_SEGS-
segments
var BWN_SELS-
selectors
var BWN_SHORTCUTCSR-
the shortcuts chooser (Qt version only)
var BWN_SHORTCUTWIN-
the shortcuts window (Qt version only)
var BWN_SIGNS-
signatures
var BWN_SNIPPETS-
the 'Execute script' window
var BWN_SNIPPETS_CSR-
the list of snippets in the 'Execute script' window
var BWN_SO_OFFSETS-
the 'Structure offsets' dialog's offset panel
var BWN_SO_STRUCTS-
the 'Structure offsets' dialog's 'Structures and Unions' panel
var BWN_SRCPTHMAP_CSR-
"Source paths…"'s path mappings chooser
var BWN_SRCPTHUND_CSR-
"Source paths…"'s undesired paths chooser
var BWN_STKVIEW-
the 'Stack view' debugger window
var BWN_STRINGS-
strings
var BWN_THREADS-
threads
var BWN_TILIST-
a type listing widget
var BWN_TILS-
type libraries
var BWN_TILVIEW-
local types
var BWN_TRACE-
tracing view
var BWN_UNDOHIST-
Undo history.
var BWN_UNKNOWN-
unknown window
var BWN_WATCH-
the 'watches' debugger window
var BWN_XREFS-
xrefs
var CDVF_LINEICONS-
icons can be drawn over the line control
var CDVF_NOLINES-
don't show line numbers
var CDVF_STATUSBAR-
keep the status bar in the custom viewer
var CDVH_LINES_ALIGNMENT-
see set_code_viewer_lines_alignment()
var CDVH_LINES_CLICK-
see code_viewer_lines_click_t
var CDVH_LINES_DBLCLICK-
see code_viewer_lines_click_t
var CDVH_LINES_DRAWICON-
see code_viewer_lines_icon_t
var CDVH_LINES_ICONMARGIN-
see set_code_viewer_lines_icon_margin()
var CDVH_LINES_LINENUM-
see code_viewer_lines_linenum_t
var CDVH_LINES_POPUP-
see code_viewer_lines_click_t
var CDVH_LINES_RADIX-
see set_code_viewer_lines_radix()
var CDVH_SRCVIEW-
see set_code_viewer_is_source()
var CDVH_USERDATA-
see set_code_viewer_user_data()
var CH2_LAZY_LOADED-
The chooser is lazy-loaded; it receives the callback do_lazy_load_dir() (only meaningful when CH_HAS_DIRTREE is set)
var CHCOL_DEC-
decimal number
var CHCOL_DEFHIDDEN-
column should be hidden by default
var CHCOL_DRAGHINT-
the column number that will be used to build hints for the dragging undo label. This should be provided for at most one column for any given chooser.
var CHCOL_EA-
address
var CHCOL_FNAME-
function name. If a chooser column has this flag set and implements chooser_base_t::get_ea(), rows background colors will be automatically set to match the navigator's "Library function", "Lumina function" and "External symbol" colors
var CHCOL_FORMAT-
column format mask
var CHCOL_HEX-
hexadecimal number
var CHCOL_INODENAME-
if CH_HAS_DIRTREE has been specified, this instructs the chooser that this column shows the inode name. This should be provided for at most one column for any given chooser.
var CHCOL_PATH-
file path. TUI IDA will truncate excessive cell lengths starting at their beginning, and prepending the resulting text with "…" order to leave the filename visible
var CHCOL_PLAIN-
plain string
var CHITEM_BOLD-
display the item in bold
var CHITEM_GRAY-
gray out the item
var CHITEM_ITALIC-
display the item in italic
var CHITEM_STRIKE-
strikeout the item
var CHITEM_UNDER-
underline the item
var CHOOSER_NOMAINMENU-
do not display main menu
var CHOOSER_NOSTATUSBAR-
do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead)
var CH_ATTRS-
generate ui_get_chooser_item_attrs (gui only)
var CH_BUILTIN_MASK-
Mask for builtin chooser numbers. Plugins should not use them.
var CH_CAN_DEL-
allow to delete existing item(s)
var CH_CAN_EDIT-
allow to edit existing item(s)
var CH_CAN_INS-
allow to insert new items
var CH_CAN_REFRESH-
allow to refresh chooser
var CH_FORCE_DEFAULT-
if a non-modal chooser was already open, change selection to the default one
var CH_HAS_DIFF-
The chooser can be used in a diffing/merging workflow.
var CH_HAS_DIRTREE-
The chooser can provide a dirtree_t, meaning a tree-like structure can be provided to the user (instead of a flat table)
var CH_KEEP-
The chooser instance's lifecycle is not tied to the lifecycle of the widget showing its contents. Closing the widget will not destroy the chooser structure. This allows for, e.g., static global chooser instances that don't need to be allocated on the heap. Also stack-allocated chooser instances must set this bit.
var CH_MODAL-
Modal chooser.
var CH_MULTI-
The chooser will allow multi-selection (only for GUI choosers). This bit is set when using the chooser_multi_t structure.
var CH_MULTI_EDIT-
Obsolete.
var CH_NOBTNS-
do not display ok/cancel/help/search buttons. Meaningful only for gui modal windows because non-modal windows do not have any buttons anyway. Text mode does not have them neither.
var CH_NON_PERSISTED_TREE-
the chooser tree is not persisted (it is not loaded on startup and is not saved on exit)
var CH_NO_FILTER-
The chooser will not have filtering abilities.
var CH_NO_SORT-
The chooser will not have sorting abilities.
var CH_NO_STATUS_BAR-
don't show a status bar
var CH_QFLT-
open with quick filter enabled and focused
var CH_QFTYP_DEFAULT-
set quick filtering type to the possible existing default for this chooser
var CH_QFTYP_FUZZY-
fuzzy search quick filter type
var CH_QFTYP_NORMAL-
normal (i.e., lexicographical) quick filter type
var CH_QFTYP_REGEX-
regex quick filter type
var CH_QFTYP_WHOLE_WORDS-
whole words quick filter type
var CH_RENAME_IS_EDIT-
triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() callback for the corresponding row.
var CH_RESTORE-
restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only)
var CH_TM_FOLDERS_ONLY-
chooser will show in folders-only mode
var CH_TM_FULL_TREE-
chooser will show in full-tree mode
var CH_TM_NO_TREE-
chooser will show in no-tree mode
var CK_EXTRA1-
extra background overlay #1
var CK_EXTRA10-
extra background overlay #10
var CK_EXTRA11-
extra background overlay #11
var CK_EXTRA12-
extra background overlay #12
var CK_EXTRA13-
extra background overlay #13
var CK_EXTRA14-
extra background overlay #14
var CK_EXTRA15-
extra background overlay #15
var CK_EXTRA16-
extra background overlay #16
var CK_EXTRA2-
extra background overlay #2
var CK_EXTRA3-
extra background overlay #3
var CK_EXTRA4-
extra background overlay #4
var CK_EXTRA5-
extra background overlay #5
var CK_EXTRA6-
extra background overlay #6
var CK_EXTRA7-
extra background overlay #7
var CK_EXTRA8-
extra background overlay #8
var CK_EXTRA9-
extra background overlay #9
var CK_TRACE-
traced address
var CK_TRACE_OVL-
overlay trace address
var CLNL_FINDCMT-
Search for the comment symbol everywhere in the line, not only at the beginning.
var CLNL_LTRIM-
Remove leading space characters.
var CLNL_RTRIM-
Remove trailing space characters.
var CREATETB_ADV-
toolbar is for 'advanced mode' only
var CVH_CLICK-
see custom_viewer_click_t
var CVH_CLOSE-
see custom_viewer_close_t
var CVH_CURPOS-
see custom_viewer_curpos_t
var CVH_DBLCLICK-
see custom_viewer_dblclick_t
var CVH_HELP-
see custom_viewer_help_t
var CVH_KEYDOWN-
see custom_viewer_keydown_t
var CVH_MOUSEMOVE-
see custom_viewer_mouse_moved_t
var CVH_POPUP-
see custom_viewer_popup_t
var CVH_QT_AWARE-
see set_custom_viewer_qt_aware()
var CVLF_USE_MOUSE-
Fetch the location from the mouse, instead of caret in the listing.
var CVNF_ACT-
activate (i.e., switch to) the viewer. Activation is performed before the new lochist_entry_t instance is actually copied to the viewer's lochist_t (otherwise, if the viewer was invisible its on_location_changed() handler wouldn't be called.)
var CVNF_JUMP-
push the current position in this viewer's lochist_t before going to the new location
var CVNF_LAZY-
try and move the cursor to a line displaying the place_t if possible. This might disregard the Y position in case of success
var DP_BEFORE-
Place src_form before dst_form in the tab bar instead of after; used with DP_INSIDE or DP_TAB.
var DP_BOTTOM-
Dock src_form below dest_form.
var DP_FLOATING-
Make src_form floating.
var DP_INSIDE-
Create a new tab bar with both src_form and dest_form.
var DP_LEFT-
Dock src_form to the left of dest_form.
var DP_RIGHT-
Dock src_form to the right of dest_form.
var DP_SZHINT-
When floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
var DP_TAB-
Place src_form into a tab next to dest_form, if dest_form is in a tab bar (otherwise the same as DP_INSIDE)
var DP_TOP-
Dock src_form above dest_form.
var GCRF_ALL-
Return all rows.
var GCRF_CURRENT-
Return the current row.
var GCRF_HEADER-
Return header texts.
var GCRF_SELECTION-
Return selected rows.
var HIF_IDENTIFIER-
text is an identifier (i.e., when searching for the current highlight, SEARCH_IDENT will be used)
var HIF_LOCKED-
locked; clicking/moving the cursor around doesn't change the highlight
var HIF_NOCASE-
case insensitive
var HIF_REGISTER-
text represents a register (aliases/subregisters will be highlit as well)
var HIF_SLOT_0-
operate on slot 0
var HIF_SLOT_1-
operate on slot 1
var HIF_SLOT_2-
operate on slot 2
var HIF_SLOT_3-
operate on slot 3
var HIF_SLOT_4-
operate on slot 4
var HIF_SLOT_5-
operate on slot 5
var HIF_SLOT_6-
operate on slot 6
var HIF_SLOT_7-
operate on slot 7
var HIF_SLOT_SHIFT-
position of the 3 top bits specifying which highlight to use
var HIF_USE_SLOT-
use the given number, or just use the "floating" highlight
var HIST_CMD-
commands
var HIST_CMT-
comments
var HIST_DIR-
directory names (text version only)
var HIST_FILE-
file names
var HIST_IDENT-
identifiers. usually CPU register names are forbidden
var HIST_IDENT2-
identifiers, including CPU register names
var HIST_SEG-
segment names
var HIST_SRCH-
search substrings
var HIST_TYPE-
type declarations
var IDA_DEBUG_ACCESSIBILITY-
accessibility
var IDA_DEBUG_ALREADY-
already data or code
var IDA_DEBUG_ALWAYS-
everything
var IDA_DEBUG_APPCALL-
appcall
var IDA_DEBUG_CHECKMEM-
check heap consistency
var IDA_DEBUG_CONFIG-
config file
var IDA_DEBUG_DBGINFO-
handling of debug info (e.g. pdb, dwarf)
var IDA_DEBUG_DEBUGGER-
debugger
var IDA_DEBUG_DEMANGLE-
demangler
var IDA_DEBUG_DREFS-
drefs
var IDA_DEBUG_FLIRT-
flirt
var IDA_DEBUG_IDP-
idp module
var IDA_DEBUG_IDS-
ids files
var IDA_DEBUG_INTERNET-
internet connection (for API backward compatibility)
var IDA_DEBUG_LDR-
ldr module
var IDA_DEBUG_LICENSE-
licensing
var IDA_DEBUG_LUMINA-
lumina related
var IDA_DEBUG_NETWORK-
network
var IDA_DEBUG_NOTIFY-
show all notifications
var IDA_DEBUG_OFFSET-
offsets
var IDA_DEBUG_PLUGIN-
plugin module
var IDA_DEBUG_QUEUE-
queue
var IDA_DEBUG_RANGECB-
range-based entities like segments, functions and so on
var IDA_DEBUG_REGEX-
regular expression
var IDA_DEBUG_ROLLBACK-
rollback
var IDA_DEBUG_SIMPLEX-
full stack analysis
var IDA_DEBUG_SRCDBG-
source debugging
var IDA_DEBUG_SUBPROC-
sub process
var IDA_DEBUG_THEMES-
themes
var IDA_DEBUG_TIL-
type system
var IDCHK_ARG-
bad argument(s)
var IDCHK_KEY-
bad hotkey name
var IDCHK_MAX-
too many IDC hotkeys
var IDCHK_OK-
ok
var IWID_ADDRWATCH-
address watches
var IWID_ALL-
mask
var IWID_ANY_LISTING-
anything that uses a listing widget
var IWID_BOOKMARKS-
bookmarks list
var IWID_BPTS-
breakpoints
var IWID_CALLS-
function calls
var IWID_CALLS_CALLEES-
funcalls, callees
var IWID_CALLS_CALLERS-
funcalls, callers
var IWID_CALL_STACK-
call stack
var IWID_CHOOSER-
chooser
var IWID_CLI-
input line
var IWID_CMDPALCSR-
command palette
var IWID_CMDPALWIN-
command palette
var IWID_CPUREGS-
registers
var IWID_CUSTVIEW-
custom viewers
var IWID_CV_LINE_INFOS-
lineinfo widget
var IWID_DISASM-
disassembly views
var IWID_DISASM_ARROWS-
arrows widget
var IWID_EA_LISTING-
anything that can be used to represent data/code at an address
var IWID_EXPORTS-
exports
var IWID_FRAME-
function frame
var IWID_FUNCS-
functions
var IWID_HEXVIEW-
hex views
var IWID_IMPORTS-
imports
var IWID_LOCALS-
locals
var IWID_MDVIEWCSR-
lumina md view
var IWID_MODULES-
modules
var IWID_NAMES-
names
var IWID_NAVBAND-
navigation band
var IWID_NOTEPAD-
notepad
var IWID_OUTPUT-
output
var IWID_PROBS-
problems
var IWID_PSEUDOCODE-
decompiler
var IWID_SCRIPTS_CSR-
recent scripts
var IWID_SEARCH-
search results
var IWID_SEGREGS-
segment registers
var IWID_SEGS-
segments
var IWID_SELS-
selectors
var IWID_SHORTCUTCSR-
shortcuts chooser
var IWID_SHORTCUTWIN-
shortcuts window
var IWID_SIGNS-
signatures
var IWID_SNIPPETS-
snippets
var IWID_SNIPPETS_CSR-
snippets chooser
var IWID_SO_OFFSETS-
stroff
var IWID_SO_STRUCTS-
stroff
var IWID_SRCPTHMAP_CSR-
mappings chooser
var IWID_SRCPTHUND_CSR-
undesired chooser
var IWID_STKVIEW-
stack view
var IWID_STRINGS-
strings
var IWID_THREADS-
threads
var IWID_TILIST-
type listing
var IWID_TILS-
type libraries
var IWID_TILVIEW-
local types
var IWID_TRACE-
tracing view
var IWID_UNDOHIST-
Undo history.
var IWID_WATCH-
watches
var IWID_XREFS-
xrefs
var LROEF_CPS_RANGE-
background for range of chars
var LROEF_FULL_LINE-
full line background
var MFF_FAST-
execute code as soon as possible this mode is ok call ui related functions that do not query the database.
var MFF_NOWAIT-
Do not wait for the request to be executed. he caller should ensure that the request is not destroyed until the execution completes. if not, the request will be ignored. the return code of execute_sync() is meaningless in this case. This flag can be used to delay the code execution until the next UI loop run even from the main thread
var MFF_READ-
execute code only when ida is idle and it is safe to query the database. this mode is recommended only for code that does not modify the database. (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box)
var MFF_WRITE-
execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is a modal dialog box on the screen this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ
var PCF_EA_CAPABLE-
toea() implementation returns meaningful data
var PCF_MAKEPLACE_ALLOCATES-
makeplace() returns a freshly allocated (i.e., non-static) instance. All new code should pass that flag to register_place_class(), and the corresponding makeplace() class implementation should return new instances.
var RENADDR_HR-
dialog for "Pseudocode"; additional flags: * 0x01 Library function * 0x02 Mark as decompiled
var RENADDR_IDA-
dialog for "IDA View"
var S2EAOPT_NOCALC-
don't try to interpret string as IDC (or current extlang) expression
var SETMENU_APP-
add menu item after the specified path
var SETMENU_ENSURE_SEP-
make sure there is a separator before the action
var SETMENU_FIRST-
add item to the beginning of menu
var SETMENU_INS-
add menu item before the specified path (default)
var SVF_COPY_LINES-
keep a local copy of '*lines'
var SVF_LINES_BYPTR-
remember the 'lines' ptr. do not make a copy of '*lines'
var TCCPT_IDAPLACE-
idaplace_t
var TCCPT_INVALID-
invalid
var TCCPT_PLACE-
place_t
var TCCPT_SIMPLELINE_PLACE-
simpleline_place_t
var TCCPT_TIPLACE-
tiplace_t
var TCCRT_FLAT-
flat view
var TCCRT_GRAPH-
graph view
var TCCRT_INVALID-
invalid
var TCCRT_PROXIMITY-
proximity view
var UIJMP_ACTIVATE-
activate the new window
var UIJMP_ANYVIEW-
jump in any ea_t-capable view
var UIJMP_DONTPUSH-
do not remember the current address in the navigation history
var UIJMP_IDAVIEW-
jump in idaview
var UIJMP_IDAVIEW_NEW-
jump in new idaview
var VES_SHIFT-
state & 1 => Shift is pressed state & 2 => Alt is pressed state & 4 => Ctrl is pressed state & 8 => Mouse left button is pressed state & 16 => Mouse right button is pressed state & 32 => Mouse middle button is pressed state & 128 => Meta is pressed (OSX only)
var VME_LEFT_BUTTON-
left mouse button
var VME_MID_BUTTON-
middle mouse button
var VME_RIGHT_BUTTON-
right mouse button
var VME_UNKNOWN-
unknown mouse button
var WCLS_DELETE_LATER-
assign the deletion of the widget to the UI loop ///<
var WCLS_DONT_SAVE_SIZE-
don't save size of the window
var WCLS_NO_CONTEXT-
don't change the current context (useful for toolbars)
var WCLS_SAVE-
save state in desktop config
var WOPN_CLOSED_BY_ESC-
override idagui.cfg:CLOSED_BY_ESC: esc will close
var WOPN_DP_BEFORE-
Place widget before dst_form in the tab bar instead of after; used with WOPN_DP_INSIDE and WOPN_DP_TAB
var WOPN_DP_BOTTOM-
Dock widget below dest_ctrl.
var WOPN_DP_FLOATING-
Make widget floating.
var WOPN_DP_INSIDE-
Create a new tab bar with both widget and dest_ctrl.
var WOPN_DP_LEFT-
Dock widget to the left of dest_ctrl.
var WOPN_DP_RIGHT-
Dock widget to the right of dest_ctrl.
var WOPN_DP_SZHINT-
when floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
var WOPN_DP_TAB-
Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar (otherwise the same as WOPN_DP_INSIDE)
var WOPN_DP_TOP-
Dock widget above dest_ctrl.
var WOPN_NOT_CLOSED_BY_ESC-
override idagui.cfg:CLOSED_BY_ESC: esc will not close
var WOPN_PERSIST-
widget will remain available when starting or stopping debugger sessions
var WOPN_RESTORE-
if the widget was the only widget in a floating area the last time it was closed, it will be restored as floating, with the same position+size as before
var chtype_entry-
see choose_entry()
var chtype_enum-
see choose_enum()
var chtype_enum_by_value_and_size-
see choose_enum_by_value()
var chtype_func-
see choose_func()
var chtype_generic-
the generic choose() function
var chtype_idasgn-
see choose_idasgn()
var chtype_idatil-
see choose_til()
var chtype_name-
see choose_name()
var chtype_segm-
see choose_segm()
var chtype_srcp-
see choose_srcp()
var chtype_stkvar_xref-
see choose_stkvar_xref()
var chtype_strpath-
see choose_struc_path()
var chtype_struct-
see choose_struct()
var chtype_xref-
see choose_xref()
var mbox_internal-
internal error
var msg_activated-
The message window is activated.
var msg_click-
Click event. @param x: (int) x-coordinate @param y: (int) y-coordinate @param state: (::view_event_state_t) @retval 1: handled @retval 0: not handled (invoke default handler)
var msg_closed-
View closed.
var msg_dblclick-
Double click event. @param x: (int) x-coordinate @param y: (int) y-coordinate @param state: (::view_event_state_t) @retval 1: handled @retval 0: not handled (invoke default handler)
var msg_deactivated-
The message window is deactivated.
var msg_keydown-
Key down event. @param key: (int) @param state: (::view_event_state_t) @retval 1: handled @retval 0: not handled (invoke default handler)
var view_activated-
A view is activated @param view: (TWidget *)
var view_click-
Click event @param view: (TWidget ) @param event: (const view_mouse_event_t )
var view_close-
View closed @param view: (TWidget *)
var view_created-
A view is being created. @param view: (TWidget *)
var view_curpos-
Cursor position changed @param view: (TWidget *)
var view_dblclick-
Double click event @param view: (TWidget ) @param event: (const view_mouse_event_t )
var view_deactivated-
A view is deactivated @param view: (TWidget *)
var view_keydown-
Key down event @param view: (TWidget *) @param key: (int) @param state: (::view_event_state_t)
var view_loc_changed-
The location for the view has changed (can be either the place_t, the renderer_info_t, or both.) @param view: (TWidget ) @param now: (const lochist_entry_t ) @param was: (const lochist_entry_t *)
var view_mouse_moved-
The mouse moved on the view @param view: (TWidget ) @param event: (const view_mouse_event_t )
var view_mouse_over-
The user moved the mouse over (or out of) a node or an edge. This is only relevant in a graph view. @param view: (TWidget ) @param event: (const view_mouse_event_t )
var view_switched-
A view's renderer has changed. @param view: (TWidget *) @param rt: (tcc_renderer_type_t)
Functions
def TWidget__from_ptrval__(ptrval: size_t)-
TWidget__from_ptrval__(ptrval) -> TWidget *
@param ptrval: size_t
def activate_widget(widget: TWidget *, take_focus: bool)-
activate_widget(widget, take_focus) Activate widget (only gui version) (ui_activate_widget).
@param widget: (C++: TWidget *) existing widget to display @param take_focus: (C++: bool) give focus to given widget
def add_hotkey(hotkey: char const *, pyfunc: PyObject *)-
add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed
@param hotkey: The hotkey @param pyfunc: Callable
@return: Context object on success or None on failure.
def add_idc_hotkey(hotkey: char const *, idcfunc: char const *)-
add_idc_hotkey(hotkey, idcfunc) -> int Add hotkey for IDC function (ui_add_idckey).
@param hotkey: (C++: const char ) hotkey name @param idcfunc: (C++: const char ) IDC function name @return: IDC hotkey error codes
def add_spaces(s: char const *, len: size_t)-
add_spaces(s, len) -> str Add space characters to the colored string so that its length will be at least 'len' characters. Don't trim the string if it is longer than 'len'.
@param str: (C++: char *) pointer to colored string to modify (may not be nullptr) @param len: (C++: ssize_t) the desired length of the string @return: pointer to the end of input string
def addon_count() ‑> int-
addon_count() -> int Get number of installed addons.
def analyzer_options()-
analyzer_options() Allow the user to set analyzer options. (show a dialog box) (ui_analyzer_options)
def ask_addr(defval, format)-
Output a formatted string to the output window (msg) preprended with "**DATABASE IS CORRUPTED: " Display a dialog box and wait for the user to input an address (ui_ask_addr).
@retval 0: the user pressed Esc. @retval 1: ok, the user entered an address
-
ask_buttons(Yes, No, Cancel, deflt, format) -> int Display a dialog box and get choice from maximum three possibilities (ui_ask_buttons). @note: for all buttons: * use "" or nullptr to take the default name for the button. * prepend "HIDECANCEL\n" in 'format' to hide the Cancel button
@param Yes: (C++: const char ) text for the first button @param No: (C++: const char ) text for the second button @param Cancel: (C++: const char ) text for the third button @param deflt: (C++: int) default choice: one of Button IDs @param format: (C++: const char ) printf-style format string for question. It may have some prefixes, see below. @return: one of Button IDs specifying the selected button (Esc key returns Cancel/3rd button value)
def ask_file(*args)-
ask_file(for_saving, defval, format) -> char *
@param for_saving: bool @param defval: char const * @param format: char const *
def ask_for_feedback(*args)-
ask_for_feedback(format) Show a message box asking to send the input file to \link{mailto:support@hex- rays.com,support@hex-rays.com}.
@param format: (C++: const char *) the reason why the input file is bad
def ask_form(*args)-
Display a dialog box and wait for the user. If the form contains the "BUTTON NO
" keyword, then the return values are the same as in the ask_yn() function (Button IDs) @retval 0: no memory to display or form syntax error (a warning is displayed in this case). the user pressed the 'No' button (if the form has it) or the user cancelled the dialog otherwise. all variables retain their original values. @retval 1: ok, all input fields are filled and validated. @retval -1: the form has the 'No' button and the user cancelled the dialog
def ask_ident(defval, format)-
Display a dialog box and wait for the user to input an identifier. If the user enters a non-valid identifier, this function displays a warning and allows the user to correct it. CPU register names are usually forbidden.
@return: false if the user cancelled the dialog, otherwise returns true.
def ask_ident2(*args) ‑> bool-
ask_ident2(str, format) -> bool Display a dialog box and wait for the user to input an identifier. If the user enters a non-valid identifier, this function displays a warning and allows the user to correct it. CPU register names are permitted.
@param str: (C++: qstring ) qstring to fill. Can contain the default value. Cannot be nullptr. @param format: (C++: const char ) printf() style format string with the question @return: false if the user cancelled the dialog, otherwise returns true.
def ask_long(defval, format)-
Display a dialog box and wait for the user to input an number (ui_ask_long). The number is represented in C-style. This function allows to enter any IDC expression and properly calculates it.
@retval 0: if the user pressed Esc. @retval 1: ok, the user entered a valid number.
def ask_seg(defval, format)-
Display a dialog box and wait for the user to input an segment name (ui_ask_seg). This function allows to enter segment register names, segment base paragraphs, segment names to denote a segment.
@retval 0: if the user pressed Esc. @retval 1: ok, the user entered an segment name
def ask_str(defval: qstring *, hist: int, prompt: char const *)-
ask_str(defval, hist, prompt) -> str or None Asks for a long text
@param defval: The default value @param hist: history id @param prompt: The prompt value @return: None or the entered string
def ask_text(max_size: size_t, defval: char const *, prompt: char const *)-
ask_text(max_size, defval, prompt) -> str Asks for a long text
@param max_size: Maximum text length, 0 for unlimited @param defval: The default value @param prompt: The prompt value @return: None or the entered string
def ask_yn(*args) ‑> int-
ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel".
@param deflt: (C++: int) default choice: one of Button IDs @param format: (C++: const char *) The question in printf() style format @return: the selected button (one of Button IDs). Esc key returns ASKBTN_CANCEL.
def atoea(str: char const *)-
atoea(str) -> bool Convert a number in C notation to an address. decimal: 1234 octal: 0123 hexadecimal: 0xabcd binary: 0b00101010
@param str: (C++: const char *) the string to parse
-
attach_action_to_menu(menupath, name, flags=0) -> bool Attach a previously-registered action to the menu (ui_attach_action_to_menu). @note: You should not change top level menu, or the Edit,Plugins submenus If you want to modify the debugger menu, do it at the ui_debugger_menu_change event (ida might destroy your menu item if you do it elsewhere).
@param menupath: (C++: const char ) path to the menu item after or before which the insertion will take place. * Example: Debug/StartProcess * Whitespace, punctuation are ignored. * It is allowed to specify only the prefix of the menu item. * Comparison is case insensitive. * menupath may start with the following prefixes: * [S] - modify the main menu of the structure window * [E] - modify the main menu of the enum window @param name: (C++: const char ) the action name @param flags: (C++: int) a combination of Set menu flags, to determine menu item position @return: success
def attach_action_to_popup(widget: TWidget *, popup_handle: TPopupMenu *, name: char const *, popuppath: char const * = None, flags: int = 0)-
attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool Insert a previously-registered action into the widget's popup menu (ui_attach_action_to_popup). This function has two "modes": 'single-shot', and 'permanent'.
@param widget: (C++: TWidget ) target widget @param popup_handle: (C++: TPopupMenu ) target popup menu * if non-nullptr, the action is added to this popup menu invocation (i.e., 'single-shot') * if nullptr, the action is added to a list of actions that should always be present in context menus for this widget (i.e., 'permanent'.) @param name: (C++: const char ) action name @param popuppath: (C++: const char ) can be nullptr @param flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) @return: success
def attach_action_to_toolbar(toolbar_name: char const *, name: char const *)-
attach_action_to_toolbar(toolbar_name, name) -> bool Attach an action to an existing toolbar (ui_attach_action_to_toolbar).
@param toolbar_name: (C++: const char ) the name of the toolbar @param name: (C++: const char ) the action name @return: success
def attach_dynamic_action_to_popup(unused: TWidget *, popup_handle: TPopupMenu *, desc: action_desc_t, popuppath: char const * = None, flags: int = 0)-
attach_dynamic_action_to_popup(unused, popup_handle, desc, popuppath=None, flags=0) -> bool Create & insert an action into the widget's popup menu (::ui_attach_dynamic_action_to_popup). Note: The action description in the 'desc' parameter is modified by this call so you should prepare a new description for each call. For example: desc = idaapi.action_desc_t(None, 'Dynamic popup action', Handler()) idaapi.attach_dynamic_action_to_popup(form, popup, desc)
@param unused: deprecated; should be None @param popup_handle: target popup @param desc: action description of type action_desc_t @param popuppath: can be None @param flags: a combination of SETMENU_ constants @return: success
-
banner(wait) -> bool Show a banner dialog box (ui_banner).
@param wait: (C++: int) time to wait before closing @retval 1: ok @retval 0: esc was pressed
def beep(beep_type: beep_t = 0)-
beep(beep_type=beep_default) Issue a beeping sound (ui_beep).
@param beep_type: (C++: beep_t)
-
call_nav_colorizer(dict, ea, nbytes) -> uint32 To be used with the IDA-provided colorizer, that is returned as result of the first call to set_nav_colorizer().
@param dict: PyObject * @param ea: ea_t @param nbytes: asize_t
def cancel_exec_request(req_id: int) ‑> bool-
cancel_exec_request(req_id) -> bool Try to cancel an asynchronous exec request (::ui_cancel_exec_request).
@param req_id: (C++: int) request id @retval true: successfully canceled @retval false: request has already been processed.
def cancel_thread_exec_requests(tid: __qthread_t)-
cancel_thread_exec_requests(tid) -> int Try to cancel asynchronous exec requests created by the specified thread.
@param tid: (C++: qthread_t) thread id @return: number of the canceled requests.
def choose_activate(_self: PyObject *)-
choose_activate(_self)
@param self: PyObject *
def choose_choose(_self: PyObject *)-
choose_choose(_self) -> PyObject *
@param self: PyObject *
def choose_close(_self: PyObject *)-
choose_close(_self)
@param self: PyObject *
def choose_create_embedded_chobj(_self: PyObject *)-
choose_create_embedded_chobj(_self) -> PyObject *
@param self: PyObject *
def choose_entry(title: char const *)-
choose_entry(title) -> ea_t Choose an entry point (ui_choose, chtype_entry).
@param title: (C++: const char *) chooser title @return: ea of selected entry point, BADADDR if none selected
def choose_enum(out: tinfo_t, title: char const *, default_ord: uint32)-
choose_enum(out, title, default_ord) -> bool Choose an enum (ui_choose, chtype_enum).
@param out: (C++: tinfo_t ) the selected enum type @param title: (C++: const char ) chooser title @param default_ord: (C++: uint32) ordinal of enum to select by default @retval true: the selected type is in OUT @retval false: nothing was selected
def choose_enum_by_value(out: tinfo_t, title: char const *, default_ord: uint32, value: uint64, nbytes: int)-
choose_enum_by_value(out, title, default_ord, value, nbytes) -> bool Choose an enum, restricted by value & size (ui_choose, chtype_enum_by_value_and_size). If the given value cannot be found initially, this function will ask if the user would like to import a standard enum.
@param out: (C++: tinfo_t ) the selected enum type @param title: (C++: const char ) chooser title @param default_ord: (C++: uint32) ordinal of enum to select by default @param value: (C++: uint64) value to search for @param nbytes: (C++: int) size of value @retval true: the selected type is in OUT @retval false: nothing was selected
def choose_find(title: char const *)-
choose_find(title) -> MyChoose or None
@param title: char const *
def choose_func(title: char const *, default_ea: ea_t)-
choose_func(title, default_ea) -> func_t * Choose a function (ui_choose, chtype_func).
@param title: (C++: const char *) chooser title @param default_ea: (C++: ea_t) ea of function to select by default @return: pointer to function that was selected, nullptr if none selected
def choose_get_widget(_self: PyObject *)-
choose_get_widget(_self) -> TWidget *
@param self: PyObject *
def choose_idasgn()-
choose_idasgn() -> PyObject * Opens the signature chooser
@return: None or the selected signature name
def choose_name(title: char const *)-
choose_name(title) -> ea_t Choose a name (ui_choose, chtype_name).
@param title: (C++: const char *) chooser title @return: ea of selected name, BADADDR if none selected
def choose_refresh(_self: PyObject *)-
choose_refresh(_self)
@param self: PyObject *
def choose_segm(title: char const *, default_ea: ea_t)-
choose_segm(title, default_ea) -> segment_t * Choose a segment (ui_choose, chtype_segm).
@param title: (C++: const char *) chooser title @param default_ea: (C++: ea_t) ea of segment to select by default @return: pointer to segment that was selected, nullptr if none selected
def choose_srcp(title: char const *)-
choose_srcp(title) -> sreg_range_t * Choose a segment register change point (ui_choose, chtype_srcp).
@param title: (C++: const char *) chooser title @return: pointer to segment register range of selected change point, nullptr if none selected
def choose_stkvar_xref(pfn: func_t *, srkvar_tid: tid_t)-
choose_stkvar_xref(pfn, srkvar_tid) -> ea_t Choose an xref to a stack variable (ui_choose, chtype_name).
@param pfn: (C++: func_t *) function @param srkvar_tid: (C++: tid_t) frame variable TID @return: ea of the selected xref, BADADDR if none selected
def choose_struct(out: tinfo_t, title: char const *)-
choose_struct(out, title) -> bool Choose a structure (ui_choose, chtype_struct).
@param out: (C++: tinfo_t ) the selected structure type @param title: (C++: const char ) chooser title @retval true: the selected type is in OUT @retval false: nothing was selected
def choose_til()-
choose_til() -> str Choose a type library (ui_choose, chtype_idatil).
@retval true: 'buf' was filled with the name of the selected til @retval false: otherwise
def choose_xref(to: ea_t)-
choose_xref(to) -> ea_t Choose an xref to an address (ui_choose, chtype_xref).
@param to: (C++: ea_t) referenced address @return: ea of selected xref, BADADDR if none selected
def clear_refresh_request(mask: uint64)-
clear_refresh_request(mask)
@param mask: uint64
def close_chooser(title: char const *)-
close_chooser(title) -> bool Close a non-modal chooser (ui_close_chooser).
@param title: (C++: const char *) window title of chooser to close @return: success
def close_widget(widget: TWidget *, options: int)-
close_widget(widget, options) Close widget (ui_close_widget, only gui version).
@param widget: (C++: TWidget *) pointer to the widget to close @param options: (C++: int) Form close flags
def clr_cancelled()-
clr_cancelled() Clear "Cancelled" flag (ui_clr_cancelled)
def create_code_viewer(custview: TWidget *, flags: int = 0, parent: TWidget * = None)-
create_code_viewer(custview, flags=0, parent=None) -> TWidget Create a code viewer (ui_create_code_viewer). A code viewer contains on the left side a widget representing the line numbers, and on the right side, the child widget passed as parameter. It will inherit its title from the child widget.
@param custview: (C++: TWidget ) the custom view to be added @param flags: (C++: int) Code viewer flags @param parent: (C++: TWidget ) widget to contain the new code viewer
def create_empty_widget(title: char const *, icon: int = -1)-
create_empty_widget(title, icon=-1) -> TWidget Create an empty widget, serving as a container for custom user widgets
@param title: (C++: const char *) char const * @param icon: (C++: int)
-
create_menu(name, label, menupath=None) -> bool Create a menu with the given name, label and optional position, either in the menubar, or as a submenu. If 'menupath' is non-nullptr, it provides information about where the menu should be positioned. First, IDA will try and resolve the corresponding menu by its name. If such an existing menu is found and is present in the menubar, then the new menu will be inserted in the menubar before it. Otherwise, IDA will try to resolve 'menupath' as it would for attach_action_to_menu() and, if found, add the new menu like so: // The new 'My menu' submenu will appear in the 'Comments' submenu // before the 'Enter comment…" command create_menu("(…)", "My menu", "Edit/Comments/Enter comment…"); or // The new 'My menu' submenu will appear at the end of the // 'Comments' submenu. create_menu("(…)", "My menu", "Edit/Comments/"); If the above fails, the new menu will be appended to the menubar.
@param name: (C++: const char ) name of menu (must be unique) @param label: (C++: const char ) label of menu @param menupath: (C++: const char *) where should the menu be inserted @return: success
def create_toolbar(name: char const *, label: char const *, before: char const * = None, flags: int = 0)-
create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position
@param name: (C++: const char ) name of toolbar (must be unique) @param label: (C++: const char ) label of toolbar @param before: (C++: const char *) if non-nullptr, the toolbar before which the new toolbar will be inserted @param flags: (C++: int) a combination of create toolbar flags, to determine toolbar position @return: success
def custom_viewer_jump(v: TWidget *, loc: lochist_entry_t const &, flags: uint32 = 0)-
custom_viewer_jump(v, loc, flags=0) -> bool Append 'loc' to the viewer's history, and cause the viewer to display it.
@param v: (C++: TWidget ) (TWidget ) @param loc: (C++: const lochist_entry_t &) (const lochist_entry_t &) @param flags: (C++: uint32) (uint32) or'ed combination of CVNF_* values @return: success
def del_hotkey(pyctx: PyObject *)-
del_hotkey(pyctx) -> bool Deletes a previously registered function hotkey
@param ctx: Hotkey context previously returned by add_hotkey()
@return: Boolean.
def del_idc_hotkey(hotkey: char const *)-
del_idc_hotkey(hotkey) -> bool
@param hotkey: char const *
-
delete_menu(name) -> bool Delete an existing menu
@param name: (C++: const char *) name of menu @return: success
def delete_toolbar(name: char const *)-
delete_toolbar(name) -> bool Delete an existing toolbar
@param name: (C++: const char *) name of toolbar @return: success
-
detach_action_from_menu(menupath, name) -> bool Detach an action from the menu (ui_detach_action_from_menu).
@param menupath: (C++: const char ) path to the menu item @param name: (C++: const char ) the action name @return: success
def detach_action_from_popup(widget: TWidget *, name: char const *)-
detach_action_from_popup(widget, name) -> bool Remove a previously-registered action, from the list of 'permanent' context menu actions for this widget (ui_detach_action_from_popup). This only makes sense if the action has been added to 'widget's list of permanent popup actions by calling attach_action_to_popup in 'permanent' mode.
@param widget: (C++: TWidget ) target widget @param name: (C++: const char ) action name
def detach_action_from_toolbar(toolbar_name: char const *, name: char const *)-
detach_action_from_toolbar(toolbar_name, name) -> bool Detach an action from the toolbar (ui_detach_action_from_toolbar).
@param toolbar_name: (C++: const char ) the name of the toolbar @param name: (C++: const char ) the action name @return: success
def display_copyright_warning() ‑> bool-
display_copyright_warning() -> bool Display copyright warning (ui_copywarn).
@return: yes/no
def display_widget(widget: TWidget *, options: uint32, dest_ctrl: char const * = None)-
display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before
@param widget: (C++: TWidget ) widget to display @param options: (C++: uint32) Widget open flags @param dest_ctrl: (C++: const char ) where to dock: if nullptr or invalid then use the active docker if there is not create a new tab relative to current active tab
def ea2str(ea: ea_t)-
ea2str(ea) -> str Convert linear address to UTF-8 string.
@param ea: (C++: ea_t)
def ea_viewer_history_push_and_jump(v: TWidget *, ea: ea_t, x: int, y: int, lnnum: int)-
ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool Push current location in the history and jump to the given location (ui_ea_viewer_history_push_and_jump). This will jump in the given ea viewer and also in other synchronized views.
@param v: (C++: TWidget *) ea viewer @param ea: (C++: ea_t) jump destination @param x: (C++: int) ,y: coords on screen @param lnnum: (C++: int) desired line number of given address @param lnnum: (C++: int) desired line number of given address
def enable_chooser_item_attrs(chooser_caption: char const *, enable: bool)-
enable_chooser_item_attrs(chooser_caption, enable) -> bool Enable item-specific attributes for chooser items (ui_enable_chooser_item_attrs). For example: color list items differently depending on a criterium. If enabled, the chooser will generate ui_get_chooser_item_attrs events that can be intercepted by a plugin to modify the item attributes. This event is generated only in the GUI version of IDA. Specifying CH_ATTRS bit at the chooser creation time has the same effect.
@param chooser_caption: (C++: const char *) char const * @param enable: (C++: bool) @return: success
def error(*args)-
error(format) Display a fatal message in a message box and quit IDA
@param format: message to print
def execute_sync(py_callable: PyObject *, reqf: int)-
execute_sync(py_callable, reqf) -> ssize_t Executes a function in the context of the main thread. If the current thread not the main thread, then the call is queued and executed afterwards.
@param py_callable: A python callable object, must return an integer value @param reqf: one of MFF_ flags @return: -1 or the return value of the callable
def execute_ui_requests(py_list: PyObject *)-
execute_ui_requests(py_list) -> bool Inserts a list of callables into the UI message processing queue. When the UI is ready it will call one callable. A callable can request to be called more than once if it returns True.
@param callable_list: A list of python callable objects. @note: A callable should return True if it wants to be called more than once. @return: Boolean. False if the list contains a non callable item
def find_widget(caption: char const *)-
find_widget(caption) -> TWidget * Find widget with the specified caption (only gui version) (ui_find_widget). NB: this callback works only with the tabbed widgets!
@param caption: (C++: const char *) title of tab, or window title if widget is not tabbed @return: pointer to the TWidget, nullptr if none is found
def formchgcbfa_close(p_fa: size_t, close_normally: int)-
formchgcbfa_close(p_fa, close_normally)
@param p_fa: size_t @param close_normally: int
def formchgcbfa_enable_field(p_fa: size_t, fid: int, enable: bool)-
formchgcbfa_enable_field(p_fa, fid, enable) -> bool
@param p_fa: size_t @param fid: int @param enable: bool
def formchgcbfa_get_field_value(p_fa: size_t, fid: int, ft: int, sz: size_t)-
formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject *
@param p_fa: size_t @param fid: int @param ft: int @param sz: size_t
def formchgcbfa_get_focused_field(p_fa: size_t)-
formchgcbfa_get_focused_field(p_fa) -> int
@param p_fa: size_t
def formchgcbfa_move_field(p_fa: size_t, fid: int, x: int, y: int, w: int, h: int)-
formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool
@param p_fa: size_t @param fid: int @param x: int @param y: int @param w: int @param h: int
def formchgcbfa_refresh_field(p_fa: size_t, fid: int)-
formchgcbfa_refresh_field(p_fa, fid)
@param p_fa: size_t @param fid: int
def formchgcbfa_set_field_value(p_fa: size_t, fid: int, ft: int, py_val: PyObject *)-
formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool
@param p_fa: size_t @param fid: int @param ft: int @param py_val: PyObject *
def formchgcbfa_set_focused_field(p_fa: size_t, fid: int)-
formchgcbfa_set_focused_field(p_fa, fid) -> bool
@param p_fa: size_t @param fid: int
def formchgcbfa_show_field(p_fa: size_t, fid: int, show: bool)-
formchgcbfa_show_field(p_fa, fid, show) -> bool
@param p_fa: size_t @param fid: int @param show: bool
def free_custom_icon(icon_id: int)-
free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon()
@param icon_id: int
def gen_disasm_text(text: disasm_text_t, ea1: ea_t, ea2: ea_t, truncate_lines: bool)-
gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range.
@param text: (C++: text_t &) result @param ea1: (C++: ea_t) start address @param ea2: (C++: ea_t) end address @param truncate_lines: (C++: bool) (on idainfo::margin)
def get_action_checkable(name: char const *)-
get_action_checkable(name) -> bool Get an action's checkability (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_checked(name: char const *)-
get_action_checked(name) -> bool Get an action's checked state (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_icon(name: char const *)-
get_action_icon(name) -> bool Get an action's icon (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_label(name: char const *)-
get_action_label(name) -> str Get an action's label (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_shortcut(name: char const *)-
get_action_shortcut(name) -> str Get an action's shortcut (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_state(name: char const *)-
get_action_state(name) -> bool Get an action's state (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_tooltip(name: char const *)-
get_action_tooltip(name) -> str Get an action's tooltip (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_action_visibility(name: char const *)-
get_action_visibility(name) -> bool Get an action's visibility (ui_get_action_attr).
@param name: (C++: const char *) the action name @return: success
def get_active_modal_widget()-
get_active_modal_widget() -> TWidget * Get the current, active modal TWidget instance. Note that in this context, the "wait dialog" is not considered: this function will return nullptr even if it is currently shown.
@return: TWidget * the active modal widget, or nullptr
def get_addon_info(id: char const *, info: addon_info_t)-
get_addon_info(id, info) -> bool Get info about a registered addon with a given product code. info->cb must be valid! NB: all pointers are invalidated by next call to register_addon or get_addon_info
@param id: (C++: const char ) char const * @param info: (C++: addon_info_t ) @return: false if not found
def get_addon_info_idx(index: int, info: addon_info_t) ‑> bool-
get_addon_info_idx(index, info) -> bool Get info about a registered addon with specific index. info->cb must be valid! NB: all pointers are invalidated by next call to register_addon or get_addon_info
@param index: (C++: int) @param info: (C++: addon_info_t *) @return: false if index is out of range
def get_chooser_data(chooser_caption: char const *, n: int)-
get_chooser_data(chooser_caption, n) -> [str, …] Get the text corresponding to the index N in the chooser data. Use -1 to get the header.
See also get_chooser_rows().
@param chooser_caption: (C++: const char *) char const * @param n: (C++: int)
def get_chooser_obj(chooser_caption: char const *)-
get_chooser_obj(chooser_caption) -> void * Get the underlying object of the specified chooser (ui_get_chooser_obj).
This attemps to find the choser by its title and, if found, returns the result of calling its chooser_base_t::get_chooser_obj() method.
@note: This is object is chooser-specific.
@param chooser_caption: (C++: const char *) char const * @return: the object that was used to create the chooser
def get_chooser_rows(out: chooser_row_info_vec_t, chooser_caption: char const *, what: size_t)-
get_chooser_rows(out, chooser_caption, what) -> bool Get the chooser contents corresponding to the rows indicated by "what".
@param out: (C++: chooser_row_info_vec_t ) A vector of chooser_row_info_t, one entry per returned row. @param chooser_caption: (C++: const char ) The caption that identifies the desired chooser. @param what: (C++: size_t) Either one of the GCRF_ flags, or a row index. @return: Success.
def get_curline()-
get_curline() -> char const * Get current line from the disassemble window (ui_get_curline).
@return: cptr current line with the color codes (use tag_remove() to remove the color codes)
def get_current_viewer()-
get_current_viewer() -> TWidget * Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer)
def get_current_widget()-
get_current_widget() -> TWidget * Get a pointer to the current widget (ui_get_current_widget).
def get_cursor()-
get_cursor() -> bool Get the cursor position on the screen (ui_get_cursor). @note: coordinates are 0-based
@retval true: pointers are filled @retval false: no disassembly window open
def get_custom_viewer_curline(custom_viewer: TWidget *, mouse: bool)-
get_custom_viewer_curline(custom_viewer, mouse) -> char const * Get current line of custom viewer (ui_get_custom_viewer_curline). The returned line contains color codes
See also the more powerful get_custom_viewer_location()
@param custom_viewer: (C++: TWidget *) view @param mouse: (C++: bool) mouse position (otherwise cursor position) @return: pointer to contents of current line
def get_custom_viewer_location(*args) ‑> bool-
get_custom_viewer_location(out, custom_viewer, mouse=False) -> bool Get the current location in a custom viewer (ui_get_custom_viewer_location_2).
@param out: (C++: listing_location_t ) output structure to fill @param custom_viewer: (C++: TWidget ) the listing widget @param flags: (C++: uint32) or'ed combination of CVLF_* values get_custom_viewer_location(out, custom_viewer, flags=0) -> bool
@param out: listing_location_t * @param custom_viewer: TWidget * @param flags: uint32
def get_custom_viewer_place(custom_viewer: TWidget *, mouse: bool)-
get_custom_viewer_place(custom_viewer, mouse) -> place_t Get current place in a custom viewer (ui_get_curplace).
See also the more complete get_custom_viewer_location()
@param custom_viewer: (C++: TWidget *) view @param mouse: (C++: bool) mouse position (otherwise cursor position)
def get_custom_viewer_place_xcoord(custom_viewer: TWidget *, pline: place_t, pitem: place_t)-
get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int Get the X position of the item, in the line
@param custom_viewer: (C++: TWidget ) the widget @param pline: (C++: const place_t ) a place corresponding to the line @param pitem: (C++: const place_t *) a place corresponding to the item @return: -1 if 'pitem' is not included in the line -2 if 'pitem' points at the entire line
= 0 for the X coordinate within the pline, where pitem points
def get_ea_viewer_history_info(nback: int *, nfwd: int *, v: TWidget *)-
get_ea_viewer_history_info(nback, nfwd, v) -> bool Get information about what's in the history (ui_ea_viewer_history_info).
@param nback: (C++: int ) number of available back steps @param nfwd: (C++: int ) number of available forward steps @param v: (C++: TWidget *) ea viewer @retval false: if the given ea viewer does not exist @retval true: otherwise
def get_hexdump_ea(hexdump_num: int)-
get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view.
@param hexdump_num: (C++: int) number of hexview window
def get_highlight(v: TWidget *, in_flags: uint32 = 0)-
get_highlight(v, in_flags=0) -> PyObject Returns the currently highlighted identifier and flags
@param v: The UI widget to operate on @param flags: Optionally specify a slot (see kernwin.hpp), current otherwise @return: a tuple (text, flags), or None if nothing is highlighted or in case of error.
def get_icon_id_by_name(icon_name: char const *)-
get_icon_id_by_name(icon_name) -> int Retrieve the id of the icon by name (ui_get_icon_id_by_name).
@param icon_name: (C++: const char *) full name of the icon @return: icon id
def get_kernel_version()-
get_kernel_version() -> str Get IDA kernel version (in a string like "5.1").
def get_key_code(keyname: char const *)-
get_key_code(keyname) -> ushort Get keyboard key code by its name (ui_get_key_code)
@param keyname: (C++: const char *) char const *
def get_last_widget(*args)-
get_last_widget(mask=uint64(-1)) -> TWidget Get last ida viewer (idaview or custom viewer) (ui_get_last_widget)
@param mask: (C++: uint64) an OR'ed set of IWID_* to limit the search to @return: the viewer, if found
-
get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address.
@param pixel: (C++: int)
-
get_navband_pixel(ea) -> int Maps an address, onto a pixel coordinate within the navigation band
@param ea: The address to map @return: a list [pixel, is_vertical]
def get_opnum() ‑> int-
get_opnum() -> int Get current operand number, -1 means no operand (ui_get_opnum)
def get_output_curline(mouse: bool)-
get_output_curline(mouse) -> str Get current line of output window (ui_get_output_curline).
@param mouse: (C++: bool) current for mouse pointer? @return: false if output contains no text
def get_output_cursor()-
get_output_cursor() -> bool Get coordinates of the output window's cursor (ui_get_output_cursor). @note: coordinates are 0-based @note: this function will succeed even if the output window is not visible
@retval false: the output window has been destroyed. @retval true: pointers are filled
def get_output_selected_text()-
get_output_selected_text() -> str Returns selected text from output window (ui_get_output_selected_text).
@return: true if there is a selection
def get_place_class(out_flags: int *, out_sdk_version: int *, id: int)-
get_place_class(out_flags, out_sdk_version, id) -> place_t Get information about a previously-registered place_t class. See also register_place_class().
@param out_flags: (C++: int ) output flags (can be nullptr) @param out_sdk_version: (C++: int ) sdk version the place was created with (can be nullptr) @param id: (C++: int) place class ID @return: the place_t template, or nullptr if not found
def get_place_class_id(name: char const *)-
get_place_class_id(name) -> int Get the place class ID for the place that has been registered as 'name'.
@param name: (C++: const char *) the class name @return: the place class ID, or -1 if not found
def get_place_class_template(id: int)-
get_place_class_template(id) -> place_t See get_place_class()
@param id: (C++: int)
def get_registered_actions()-
get_registered_actions() -> [str, …] Get a list of all currently-registered actions
def get_screen_ea()-
get_screen_ea() -> ea_t Get the address at the screen cursor (ui_screenea)
def get_synced_group(w: TWidget const *)-
get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with
@param w: (C++: const TWidget *) the widget @return: the group of widgets/registers, or nullptr
def get_tab_size(path: char const *)-
get_tab_size(path) -> int Get the size of a tab in spaces (ui_get_tab_size).
@param path: (C++: const char *) the path of the source view for which the tab size is requested. * if nullptr, the default size is returned.
def get_user_input_event(out: input_event_t) ‑> bool-
get_user_input_event(out) -> bool Get the current user input event (mouse button press, key press, …) It is sometimes desirable to be able to tell when a certain situation happens (e.g., 'view_curpos' gets triggered); this function exists to provide that context (GUI version only)
@param out: (C++: input_event_t *) the input event data @return: false if we are not currently processing a user input event
def get_user_strlist_options(out: strwinsetup_t *)-
get_user_strlist_options(out)
@param out: strwinsetup_t *
def get_view_renderer_type(v: TWidget *)-
get_view_renderer_type(v) -> tcc_renderer_type_t Get the type of renderer currently in use in the given view (ui_get_renderer_type)
@param v: (C++: TWidget *)
def get_viewer_place_type(viewer: TWidget *)-
get_viewer_place_type(viewer) -> tcc_place_type_t Get the type of place_t instances a viewer uses & creates (ui_get_viewer_place_type).
@param viewer: (C++: TWidget *)
def get_viewer_user_data(viewer: TWidget *)-
get_viewer_user_data(viewer) -> void * Get the user data from a custom viewer (ui_get_viewer_user_data)
@param viewer: (C++: TWidget *)
def get_widget_title(widget: TWidget *)-
get_widget_title(widget) -> str Get the TWidget's title (ui_get_widget_title).
@param widget: (C++: TWidget *)
def get_widget_type(widget: TWidget *)-
get_widget_type(widget) -> twidget_type_t Get the type of the TWidget * (ui_get_widget_type).
@param widget: (C++: TWidget *)
def get_window_id(name: char const * = None)-
get_window_id(name=None) Get the system-specific window ID (GUI version only)
@param name: (C++: const char *) name of the window (nullptr means the main IDA window) @return: the low-level window ID
def hide_wait_box()-
hide_wait_box() Hide the "Please wait dialog box".
def info(*args)-
info(format) -> ssize_t
@param format: char const *
def install_command_interpreter(py_obj: PyObject *)-
install_command_interpreter(py_obj) -> int Install command line interpreter (ui_install_cli)
@param py_obj: PyObject *
def internal_register_place_class(tmplate: place_t, flags: int, owner: plugin_t const *, sdk_version: int)-
internal_register_place_class(tmplate, flags, owner, sdk_version) -> int
@param tmplate: place_t const * @param flags: int @param owner: plugin_t const * @param sdk_version: int
def is_action_enabled(s: action_state_t)-
is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*.
@param s: (C++: action_state_t) enum action_state_t
def is_chooser_widget(t: twidget_type_t)-
is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget?
@param t: (C++: twidget_type_t)
def is_ida_library(path: char *, pathsize: size_t, handle: void **)-
is_ida_library(path, pathsize, handle) -> bool
@param path: char * @param pathsize: size_t @param handle: void **
def is_idaq() ‑> bool-
is_idaq() -> bool Returns True or False depending if IDAPython is hosted by IDAQ
def is_idaview(v: TWidget *)-
is_idaview(v) -> bool Is the given custom view an idaview? (ui_is_idaview)
@param v: (C++: TWidget *)
def is_msg_inited() ‑> bool-
is_msg_inited() -> bool Can we use msg() functions?
def is_place_class_ea_capable(id: int) ‑> bool-
is_place_class_ea_capable(id) -> bool See get_place_class()
@param id: (C++: int)
def is_refresh_requested(mask: uint64)-
is_refresh_requested(mask) -> bool Get a refresh request state
@param mask: (C++: uint64) Window refresh flags @return: the state (set or cleared)
-
is_tif_cursor_footer(c) -> bool
@param c: tif_cursor_t
def is_tif_cursor_header(c: tif_cursor_t)-
is_tif_cursor_header(c) -> bool
@param c: tif_cursor_t
def is_tif_cursor_index(c: tif_cursor_t)-
is_tif_cursor_index(c) -> bool
@param c: tif_cursor_t
def jumpto(*args) ‑> bool-
jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool Set cursor position in custom ida viewer.
@param custom_viewer: (C++: TWidget ) view @param place: (C++: place_t ) target position @param uijmp_flags: int
@return: success jumpto(custom_viewer, place, x, y) -> bool
@param custom_viewer: TWidget * @param place: place_t * @param x: int
def l_compare2(t1: place_t, t2: place_t, ud: void *)-
l_compare2(t1, t2, ud) -> int
@param t1: place_t const * @param t2: place_t const * @param ud: void *
def load_custom_icon(file_name=None, data=None, format=None)-
Loads a custom icon and returns an identifier that can be used with other APIs
If file_name is passed then the other two arguments are ignored.
Load an icon and return its id (ui_load_custom_icon).
@return: icon id
def load_dbg_dbginfo(*args) ‑> bool-
load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file.
@param path: (C++: const char ) path to file @param li: (C++: linput_t ) loader input. if nullptr, check DBG_NAME_KEY @param base: (C++: ea_t) loading address @param verbose: (C++: bool) dump status to message window
def lookup_key_code(key: int, shift: int, is_qt: bool)-
lookup_key_code(key, shift, is_qt) -> ushort Get shortcut code previously created by ui_get_key_code.
@param key: (C++: int) key constant @param shift: (C++: int) modifiers @param is_qt: (C++: bool) are we using gui version?
def msg(message: PyObject *)-
msg(message) -> int Display an UTF-8 string in the message window
The result of the stringification of the arguments will be treated as an UTF-8 string.
@param message: message to print (formatting is done in Python)
This function can be used to debug IDAPython scripts
def msg_clear()-
msg_clear() Clear the "Output" window.
def msg_get_lines(count: int = -1)-
msg_get_lines(count=-1) -> PyObject Retrieve the last 'count' lines from the output window, in reverse order (from most recent, to least recent)
@param count: (C++: int) The number of lines to retrieve. -1 means: all
def msg_save(path: qstring &)-
msg_save(path) -> bool Save the "Output" window contents into a file
@param path: (C++: qstring &) The path of the file to save the contents into. An empty path means that the user will be prompted for the destination and, if the file already exists, the user will be asked to confirm before overriding its contents. Upon return, 'path' will contain the path that the user chose. @return: success
def nomem(*args)-
nomem(format)
@param format: char const *
def open_bookmarks_window(w: TWidget *)-
open_bookmarks_window(w) -> TWidget * Open the bookmarks window (ui_open_builtin).
@param w: (C++: TWidget *) The widget for which the bookmarks will open. For example, this can be an IDAView, or Enums view, etc. @return: pointer to resulting window
def open_bpts_window(ea: ea_t)-
open_bpts_window(ea) -> TWidget * Open the breakpoints window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_calls_window(ea: ea_t)-
open_calls_window(ea) -> TWidget * Open the function calls window (ui_open_builtin).
@param ea: (C++: ea_t) @return: pointer to resulting window
def open_disasm_window(window_title: char const *, ranges: rangevec_t = None)-
open_disasm_window(window_title, ranges=None) -> TWidget Open a disassembly view (ui_open_builtin).
@param window_title: (C++: const char ) title of view to open @param ranges: (C++: const rangevec_t ) if != nullptr, then display a flow chart with the specified ranges @return: pointer to resulting window
def open_exports_window(ea: ea_t)-
open_exports_window(ea) -> TWidget * Open the exports window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_form(*args)-
Display a dockable modeless dialog box and return a handle to it. The modeless form can be closed in the following ways: * by pressing the small 'x' in the window title * by calling form_actions_t::close() from the form callback (form_actions_t) @note: pressing the 'Yes/No/Cancel' buttons does not close the modeless form, except if the form callback explicitly calls close().
@return: handle to the form or nullptr. the handle can be used with TWidget
def open_frame_window(pfn: func_t *, offset: uval_t)-
open_frame_window(pfn, offset) -> TWidget * Open the frame window for the given function (ui_open_builtin).
@param pfn: (C++: func_t *) function to analyze @param offset: (C++: uval_t) offset where the cursor is placed @return: pointer to resulting window if 'pfn' is a valid function and the window was displayed, nullptr otherwise
def open_funcs_window(ea: ea_t)-
open_funcs_window(ea) -> TWidget * Open the 'Functions' window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_hexdump_window(window_title: char const *)-
open_hexdump_window(window_title) -> TWidget * Open a hexdump view (ui_open_builtin).
@param window_title: (C++: const char *) title of view to open @return: pointer to resulting window
def open_imports_window(ea: ea_t)-
open_imports_window(ea) -> TWidget * Open the exports window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_loctypes_window(ordinal: int, cursor: tif_cursor_t const * = None)-
open_loctypes_window(ordinal, cursor=None) -> TWidget Open the local types window (ui_open_builtin).
@param ordinal: (C++: int) ordinal of type to select by default @param cursor: (C++: const tif_cursor_t *) cursor to the type member @return: pointer to resulting window
def open_modules_window()-
open_modules_window() -> TWidget * Open the modules window (ui_open_builtin).
@return: pointer to resulting window
def open_names_window(ea: ea_t)-
open_names_window(ea) -> TWidget * Open the names window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
-
open_navband_window(ea, zoom) -> TWidget * Open the navigation band window (ui_open_builtin).
@param ea: (C++: ea_t) sets the address of the navband arrow @param zoom: (C++: int) sets the navband zoom level @return: pointer to resulting window
def open_notepad_window()-
open_notepad_window() -> TWidget * Open the notepad window (ui_open_builtin).
@return: pointer to resulting window
def open_problems_window(ea: ea_t)-
open_problems_window(ea) -> TWidget * Open the problems window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_segments_window(ea: ea_t)-
open_segments_window(ea) -> TWidget * Open the segments window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_segregs_window(ea: ea_t)-
open_segregs_window(ea) -> TWidget * Open the segment registers window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def open_selectors_window()-
open_selectors_window() -> TWidget * Open the selectors window (ui_open_builtin).
@return: pointer to resulting window
def open_signatures_window()-
open_signatures_window() -> TWidget * Open the signatures window (ui_open_builtin).
@return: pointer to resulting window
def open_stack_window()-
open_stack_window() -> TWidget * Open the call stack window (ui_open_builtin).
@return: pointer to resulting window
def open_strings_window(*args)-
open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget Open the 'Strings' window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @param selstart: (C++: ea_t) ,selend: only display strings that occur within this range @param selend: (C++: ea_t) @return: pointer to resulting window
def open_threads_window()-
open_threads_window() -> TWidget * Open the threads window (ui_open_builtin).
@return: pointer to resulting window
def open_tils_window()-
open_tils_window() -> TWidget * Open the type libraries window (ui_open_builtin).
@return: pointer to resulting window
def open_trace_window()-
open_trace_window() -> TWidget * Open the tracing window (ui_open_builtin).
@return: pointer to resulting window
def open_url(url: char const *)-
open_url(url) Open the given url (ui_open_url)
@param url: (C++: const char *) char const *
def open_xrefs_window(ea: ea_t)-
open_xrefs_window(ea) -> TWidget * Open the cross references window (ui_open_builtin).
@param ea: (C++: ea_t) index of entry to select by default @return: pointer to resulting window
def place_t_as_idaplace_t(p: place_t)-
as_idaplace_t(p) -> idaplace_t
@param p: place_t *
def place_t_as_simpleline_place_t(p: place_t)-
as_simpleline_place_t(p) -> simpleline_place_t
@param p: place_t *
def place_t_as_tiplace_t(p: place_t)-
as_tiplace_t(p) -> tiplace_t
@param p: place_t *
def plgform_close(py_link: PyObject *, options: int)-
plgform_close(py_link, options)
@param py_link: PyObject * @param options: int
def plgform_get_widget(py_link: PyObject *)-
plgform_get_widget(py_link) -> TWidget *
@param py_link: PyObject *
def plgform_new()-
plgform_new() -> PyObject *
def plgform_show(*args) ‑> bool-
plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool
@param py_link: PyObject * @param py_obj: PyObject * @param caption: char const * @param options: int
def process_ui_action(name: char const *, flags: int = 0)-
process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name
@param name: action name @param flags: int @return: Boolean
def py_chooser_base_t_get_row(chobj: chooser_base_t, n: size_t)-
py_chooser_base_t_get_row(chobj, n) -> PyObject *
@param chobj: chooser_base_t const * @param n: size_t
def py_get_ask_form()-
py_get_ask_form() -> size_t
def py_get_open_form()-
py_get_open_form() -> size_t
def py_load_custom_icon_data(data: PyObject *, format: char const *)-
py_load_custom_icon_data(data, format) -> int
@param data: PyObject * @param format: char const *
def py_load_custom_icon_fn(filename: char const *)-
py_load_custom_icon_fn(filename) -> int
@param filename: char const *
def py_register_compiled_form(py_form: PyObject *)-
py_register_compiled_form(py_form)
@param py_form: PyObject *
def py_unregister_compiled_form(py_form: PyObject *)-
py_unregister_compiled_form(py_form)
@param py_form: PyObject *
def pyidag_bind(_self: PyObject *)-
pyidag_bind(_self) -> bool
@param self: PyObject *
def pyidag_unbind(_self: PyObject *)-
pyidag_unbind(_self) -> bool
@param self: PyObject *
def pyscv_add_line(py_this: PyObject *, py_sl: PyObject *)-
pyscv_add_line(py_this, py_sl) -> bool
@param py_this: PyObject * @param py_sl: PyObject *
def pyscv_clear_lines(py_this: PyObject *)-
pyscv_clear_lines(py_this) -> PyObject *
@param py_this: PyObject *
def pyscv_close(py_this: PyObject *)-
pyscv_close(py_this)
@param py_this: PyObject *
def pyscv_count(py_this: PyObject *)-
pyscv_count(py_this) -> size_t
@param py_this: PyObject *
def pyscv_del_line(py_this: PyObject *, nline: size_t)-
pyscv_del_line(py_this, nline) -> bool
@param py_this: PyObject * @param nline: size_t
def pyscv_edit_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *)-
pyscv_edit_line(py_this, nline, py_sl) -> bool
@param py_this: PyObject * @param nline: size_t @param py_sl: PyObject *
def pyscv_get_current_line(py_this: PyObject *, mouse: bool, notags: bool)-
pyscv_get_current_line(py_this, mouse, notags) -> PyObject *
@param py_this: PyObject * @param mouse: bool @param notags: bool
def pyscv_get_current_word(py_this: PyObject *, mouse: bool)-
pyscv_get_current_word(py_this, mouse) -> PyObject *
@param py_this: PyObject * @param mouse: bool
def pyscv_get_line(py_this: PyObject *, nline: size_t)-
pyscv_get_line(py_this, nline) -> PyObject *
@param py_this: PyObject * @param nline: size_t
def pyscv_get_pos(py_this: PyObject *, mouse: bool)-
pyscv_get_pos(py_this, mouse) -> PyObject *
@param py_this: PyObject * @param mouse: bool
def pyscv_get_selection(py_this: PyObject *)-
pyscv_get_selection(py_this) -> PyObject *
@param py_this: PyObject *
def pyscv_get_widget(py_this: PyObject *)-
pyscv_get_widget(py_this) -> TWidget *
@param py_this: PyObject *
def pyscv_init(py_link: PyObject *, title: char const *)-
pyscv_init(py_link, title) -> PyObject *
@param py_link: PyObject * @param title: char const *
def pyscv_insert_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *)-
pyscv_insert_line(py_this, nline, py_sl) -> bool
@param py_this: PyObject * @param nline: size_t @param py_sl: PyObject *
def pyscv_is_focused(py_this: PyObject *)-
pyscv_is_focused(py_this) -> bool
@param py_this: PyObject *
def pyscv_jumpto(py_this: PyObject *, ln: size_t, x: int, y: int)-
pyscv_jumpto(py_this, ln, x, y) -> bool
@param py_this: PyObject * @param ln: size_t @param x: int @param y: int
def pyscv_patch_line(py_this: PyObject *, nline: size_t, offs: size_t, value: int)-
pyscv_patch_line(py_this, nline, offs, value) -> bool
@param py_this: PyObject * @param nline: size_t @param offs: size_t @param value: int
def pyscv_refresh(py_this: PyObject *)-
pyscv_refresh(py_this) -> bool
@param py_this: PyObject *
def pyscv_show(py_this: PyObject *)-
pyscv_show(py_this) -> bool
@param py_this: PyObject *
def qcleanline(*args)-
qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> ssize_t Performs some cleanup operations to a line.
@param cmt_char: (C++: char) character that denotes the start of a comment: * the entire text is removed if the line begins with this character (ignoring leading spaces) * all text after (and including) this character is removed if flag CLNL_FINDCMT is set @param flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM @return: length of line
def read_range_selection(v: TWidget *)-
read_range_selection(v) -> bool Get the address range for the selected range boundaries, this is the convenient function for read_selection()
@param v: (C++: TWidget *) view, nullptr means the last active window containing addresses @retval 0: no range is selected @retval 1: ok, start ea and end ea are filled
def read_selection(v: TWidget *, p1: twinpos_t, p2: twinpos_t)-
read_selection(v, p1, p2) -> bool Read the user selection, and store its information in p0 (from) and p1 (to).
This can be used as follows:
>>> p0 = idaapi.twinpos_t() p1 = idaapi.twinpos_t() view = idaapi.get_current_viewer() idaapi.read_selection(view, p0, p1)At that point, p0 and p1 hold information for the selection. But, the 'at' property of p0 and p1 is not properly typed. To specialize it, call #place() on it, passing it the view they were retrieved from. Like so:
>>> place0 = p0.place(view) place1 = p1.place(view)This will effectively "cast" the place into a specialized type, holding proper information, depending on the view type (e.g., disassembly, structures, enums, …)
@param view: The view to retrieve the selection for. @param p1: Storage for the "to" part of the selection. @param p1: Storage for the "to" part of the selection. @return: a bool value indicating success.
def refresh_chooser(title: char const *)-
refresh_chooser(title) -> bool Mark a non-modal custom chooser for a refresh (ui_refresh_chooser).
@param title: (C++: const char *) title of chooser @return: success
def refresh_choosers()-
refresh_choosers()
def refresh_custom_viewer(custom_viewer: TWidget *)-
refresh_custom_viewer(custom_viewer) Refresh custom ida viewer (ui_refresh_custom_viewer)
@param custom_viewer: (C++: TWidget *)
def refresh_idaview()-
refresh_idaview() Refresh marked windows (ui_refreshmarked)
def refresh_idaview_anyway()-
refresh_idaview_anyway() Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please consider request_refresh() instead
-
refresh_navband(force) Refresh navigation band if changed (ui_refresh_navband).
@param force: (C++: bool) refresh regardless
def register_action(desc: action_desc_t) ‑> bool-
register_action(desc) -> bool Create a new action (ui_register_action). After an action has been created, it is possible to attach it to menu items (attach_action_to_menu()), or to popup menus (attach_action_to_popup()).
Because the actions will need to call the handler's activate() and update() methods at any time, you shouldn't build your action handler on the stack.
Please see the SDK's "ht_view" plugin for an example how to register actions.
@param desc: (C++: const action_desc_t &) action to register @return: success
def register_addon(info: addon_info_t) ‑> int-
register_addon(info) -> int Register an add-on. Show its info in the About box. For plugins, should be called from init() function (repeated calls with the same product code overwrite previous entries) returns: index of the add-on in the list, or -1 on error
@param info: (C++: const addon_info_t *) addon_info_t const *
-
register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool Helper.
You are not encouraged to use this, as it mixes flags for both register_action(), and attach_action_to_menu().
The only reason for its existence is to make it simpler to port existing plugins to the new actions API.
@param menupath: (C++: const char ) char const * @param name: (C++: const char ) char const * @param label: (C++: const char ) char const * @param shortcut: (C++: const char ) char const * @param flags: (C++: int) @param handler: (C++: action_handler_t ) @param owner: (C++: void ) @param action_desc_t_flags: (C++: int)
def register_timer(interval: int, py_callback: PyObject *)-
register_timer(interval, py_callback) -> PyCapsule Register a timer
@param interval: Interval in milliseconds @param py_callback: A Python callable that takes no parameters and returns an integer. The callback may return: -1 : to unregister the timer >= 0 : the new or same timer interval @return: None or a timer object
def remove_command_interpreter(cli_idx: int)-
remove_command_interpreter(cli_idx) Remove command line interpreter (ui_install_cli)
@param cli_idx: int
def repaint_custom_viewer(custom_viewer: TWidget *)-
repaint_custom_viewer(custom_viewer) Repaint the given widget immediately (ui_repaint_qwidget)
@param custom_viewer: (C++: TWidget *)
def replace_wait_box(*args)-
replace_wait_box(format) Replace the label of "Please wait dialog box".
@param format: (C++: const char *) char const *
def request_refresh(mask: uint64, cnd: bool = True)-
request_refresh(mask, cnd=True) Request a refresh of a builtin window.
@param mask: (C++: uint64) Window refresh flags @param cnd: (C++: bool) set if true or clear flag otherwise
def restore_database_snapshot(ss: snapshot_t const *, pyfunc_or_none: PyObject *, pytuple_or_none: PyObject *)-
restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> bool Restore a database snapshot. Note: This call is asynchronous. When it is completed, the callback will be triggered.
@param ss: (C++: const snapshot_t *) snapshot instance (see build_snapshot_tree()) @param pyfunc_or_none: PyObject * @param pytuple_or_none: PyObject * @return: false if restoration could not be started (snapshot file was not found). If the returned value is True then check if the operation succeeded from the callback.
def set_cancelled()-
set_cancelled() Set "Cancelled" flag (ui_set_cancelled)
def set_code_viewer_handler(code_viewer: TWidget *, handler_id: custom_viewer_handler_id_t, handler_or_data: void *)-
set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * Set a handler for a code viewer event (ui_set_custom_viewer_handler).
@param code_viewer: (C++: TWidget ) the code viewer @param handler_id: (C++: custom_viewer_handler_id_t) one of CDVH_ in custom_viewer_handler_id_t @param handler_or_data: (C++: void ) can be a handler or data. see examples in Functions: custom viewer handlers @return: old value of the handler or data
def set_code_viewer_is_source(code_viewer: TWidget *)-
set_code_viewer_is_source(code_viewer) -> bool Specify that the given code viewer is used to display source code (ui_set_custom_viewer_handler).
@param code_viewer: (C++: TWidget *)
def set_code_viewer_line_handlers(code_viewer: TWidget *, click_handler: code_viewer_lines_click_t *, popup_handler: code_viewer_lines_click_t *, dblclick_handler: code_viewer_lines_click_t *, drawicon_handler: code_viewer_lines_icon_t *, linenum_handler: code_viewer_lines_linenum_t *)-
set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) Set handlers for code viewer line events. Any of these handlers may be nullptr
@param code_viewer: (C++: TWidget ) @param click_handler: (C++: code_viewer_lines_click_t ) @param popup_handler: (C++: code_viewer_lines_click_t ) @param dblclick_handler: (C++: code_viewer_lines_click_t ) @param drawicon_handler: (C++: code_viewer_lines_icon_t ) @param linenum_handler: (C++: code_viewer_lines_linenum_t )
def set_code_viewer_lines_alignment(code_viewer: TWidget *, align: int)-
set_code_viewer_lines_alignment(code_viewer, align) -> bool Set alignment for lines in a code viewer (ui_set_custom_viewer_handler).
@param code_viewer: (C++: TWidget *) @param align: (C++: int)
def set_code_viewer_lines_icon_margin(code_viewer: TWidget *, margin: int)-
set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool Set space allowed for icons in the margin of a code viewer (ui_set_custom_viewer_handler).
@param code_viewer: (C++: TWidget *) @param margin: (C++: int)
def set_code_viewer_lines_radix(code_viewer: TWidget *, radix: int)-
set_code_viewer_lines_radix(code_viewer, radix) -> bool Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler).
@param code_viewer: (C++: TWidget *) @param radix: (C++: int)
def set_code_viewer_user_data(code_viewer: TWidget *, ud: void *)-
set_code_viewer_user_data(code_viewer, ud) -> bool Set the user data on a code viewer (ui_set_custom_viewer_handler).
@param code_viewer: (C++: TWidget ) @param ud: (C++: void )
def set_custom_viewer_qt_aware(custom_viewer: TWidget *)-
set_custom_viewer_qt_aware(custom_viewer) -> bool Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler)
@param custom_viewer: (C++: TWidget *)
def set_dock_pos(src_ctrl: char const *, dest_ctrl: char const *, orient: int, left: int = 0, top: int = 0, right: int = 0, bottom: int = 0)-
set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0) -> bool Sets the dock orientation of a window relatively to another window.
Use the left, top, right, bottom parameters if DP_FLOATING is used, or if you want to specify the width of docked windows.
@param src_ctrl: char const * @param dest_ctrl: char const * @param orient: One of DP_XXXX constants @param left: int @param top: int @param right: int @param bottom: int @return: Boolean
Example
set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window
def set_execute_sync_availability(tid: __qthread_t, availability: execute_sync_availability_t)-
set_execute_sync_availability(tid, availability) -> execute_sync_availability_t Set the availability of the execute_sync functionality for the given thread
Setting it to
esa_unavailablewill cause the existing requests for this thread to be cancelled. Setting it toesa_releasewill clear the status for this thread, and should be issued right before a call toqthread_freeis issued.@param tid: (C++: qthread_t) thread id @param availability: (C++: execute_sync_availability_t) the availability @return: the previous availability
def set_highlight(viewer: TWidget *, str: char const *, flags: int)-
set_highlight(viewer, str, flags) -> bool Set the highlighted identifier in the viewer (ui_set_highlight).
@param viewer: (C++: TWidget ) the viewer @param str: (C++: const char ) the text to match, or nullptr to remove current @param flags: (C++: int) combination of HIF_… bits (see set_highlight flags) @return: false if an error occurred
-
set_nav_colorizer(new_py_colorizer) -> dict or None Set a new colorizer for the navigation band.
The 'callback' is a function of 2 arguments: - ea (the EA to colorize for) - nbytes (the number of bytes at that EA) and must return a 'long' value.
The previous colorizer is returned, allowing the new 'callback' to use 'call_nav_colorizer' with it.
Note that the previous colorizer is returned only the first time set_nav_colorizer() is called: due to the way the colorizers API is defined in C, it is impossible to chain more than 2 colorizers in IDAPython: the original, IDA-provided colorizer, and a user-provided one.
Example: colorizer inverting the color provided by the IDA colorizer: def my_colorizer(ea, nbytes): global ida_colorizer orig = idaapi.call_nav_colorizer(ida_colorizer, ea, nbytes) return long(~orig)
ida_colorizer = idaapi.set_nav_colorizer(my_colorizer)@param new_py_colorizer: PyObject *
def set_view_renderer_type(v: TWidget *, rt: tcc_renderer_type_t)-
set_view_renderer_type(v, rt) Set the type of renderer to use in a view (ui_set_renderer_type)
@param v: (C++: TWidget *) @param rt: (C++: tcc_renderer_type_t) enum tcc_renderer_type_t
def show_wait_box(message: char const *)-
show_wait_box(message) Display a dialog box with "Please wait…". The behavior of the dialog box can be configured with well-known tokens, that should be placed at the start of the format string: "NODELAY\n": the dialog will show immediately, instead of appearing after usual grace threshold "HIDECANCEL\n": the cancel button won't be added to the dialog box and user_cancelled() will always return false (but can be called to refresh UI) Using "HIDECANCEL" implies "NODELAY" Plugins must call hide_wait_box() to close the dialog box, otherwise the user interface will remain disabled. Note that, if the wait dialog is already visible, show_wait_box() will 1) push the currently-displayed text on a stack 2) display the new text Then, when hide_wait_box() is called, if that stack isn't empty its top label will be popped and restored in the wait dialog. This implies that a plugin should call hide_wait_box() exactly as many times as it called show_wait_box(), or the wait dialog might remain visible and block the UI. Also, in case the plugin knows the wait dialog is currently displayed, alternatively it can call replace_wait_box(), to replace the text of the dialog without pushing the currently-displayed text on the stack.
@param message: char const *
def str2ea(*args)-
str2ea(str, screen_ea=BADADDR) -> bool Convert string to linear address. Tries to interpret the string as: 1) "current IP" keyword if supported by assembler (e.g. "$" in x86) 2) segment:offset expression, where "segment" may be a name or a fixed segment register (e.g. cs, ds) 3) just segment name/register (translated to segment's start address) 4) a name in the database (or debug name during debugging) 5) hexadecimal value without prefix or suffix 6) +delta or -delta, where numerical 'delta' is added to or subtracted from 'screen_ea' 7) register name (only during debugging) 8) if all else fails, try to evaluate 'str' as an IDC expression
@param str: (C++: const char *) string to parse @param screen_ea: (C++: ea_t) the current address in the disassembly/pseudocode view @return: success
def str2ea_ex(*args)-
str2ea_ex(str, screen_ea=BADADDR, flags=0) -> bool Same as str2ea() but possibly with some steps skipped.
@param str: (C++: const char *) string to parse @param screen_ea: (C++: ea_t) the current address in the disassembly/pseudocode view @param flags: (C++: int) see String to address conversion flags @return: success
def strarray(array: strarray_t, array_size: size_t, code: int)-
strarray(array, array_size, code) -> char const * Find a line with the specified code in the strarray_t array. If the last element of the array has code==0 then it is considered as the default entry. If no default entry exists and the code is not found, strarray() returns "".
@param array: (C++: const strarray_t *) strarray_t const * @param array_size: (C++: size_t) @param code: (C++: int)
def sync_sources(what: sync_source_t, _with: sync_source_t, sync: bool) ‑> bool-
sync_sources(what, _with, sync) -> bool [Un]synchronize sources
@param what: (C++: const sync_source_t &) @param with: (C++: const sync_source_t &) @param sync: (C++: bool) @return: success
def take_database_snapshot(ss: snapshot_t *)-
take_database_snapshot(ss) -> (bool, NoneType) Take a database snapshot (ui_take_database_snapshot).
@param ss: (C++: snapshot_t *) in/out parameter. * in: description, flags * out: filename, id @return: success
def textctrl_info_t_assign(_self: PyObject *, other: PyObject *)-
textctrl_info_t_assign(_self, other) -> bool
@param self: PyObject * @param other: PyObject *
def textctrl_info_t_create()-
textctrl_info_t_create() -> PyObject *
def textctrl_info_t_destroy(py_obj: PyObject *)-
textctrl_info_t_destroy(py_obj) -> bool
@param py_obj: PyObject *
def textctrl_info_t_get_clink(_self: PyObject *)-
textctrl_info_t_get_clink(_self) -> textctrl_info_t *
@param self: PyObject *
def textctrl_info_t_get_clink_ptr(_self: PyObject *)-
textctrl_info_t_get_clink_ptr(_self) -> PyObject *
@param self: PyObject *
def textctrl_info_t_get_flags(_self: PyObject *)-
textctrl_info_t_get_flags(_self) -> unsigned int
@param self: PyObject *
def textctrl_info_t_get_tabsize(_self: PyObject *)-
textctrl_info_t_get_tabsize(_self) -> unsigned int
@param self: PyObject *
def textctrl_info_t_get_text(_self: PyObject *)-
textctrl_info_t_get_text(_self) -> char const *
@param self: PyObject *
def textctrl_info_t_set_flags(_self: PyObject *, flags: unsigned int)-
textctrl_info_t_set_flags(_self, flags) -> bool
@param self: PyObject * @param flags: unsigned int
def textctrl_info_t_set_tabsize(_self: PyObject *, tabsize: unsigned int)-
textctrl_info_t_set_tabsize(_self, tabsize) -> bool
@param self: PyObject * @param tabsize: unsigned int
def textctrl_info_t_set_text(_self: PyObject *, s: char const *)-
textctrl_info_t_set_text(_self, s) -> bool
@param self: PyObject * @param s: char const *
def ui_load_new_file(temp_file: qstring *, filename: qstring *, pli: linput_t **, neflags: ushort, ploaders: load_info_t **)-
ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool Display a load file dialog and load file (ui_load_file).
@param temp_file: (C++: qstring ) name of the file with the extracted archive member. @param filename: (C++: qstring ) the name of input file as is, library or archive name @param pli: (C++: linput_t ) loader input source, may be changed to point to temp_file @param neflags: (C++: ushort) combination of NEF_… bits (see Load file flags) @param ploaders: (C++: load_info_t ) list of loaders which accept file, may be changed for loaders of temp_file @retval true: file was successfully loaded @retval false: otherwise
def ui_run_debugger(dbgopts: char const *, exename: char const *, argc: int, argv: char const *const *)-
ui_run_debugger(dbgopts, exename, argc, argv) -> bool Load a debugger plugin and run the specified program (ui_run_dbg).
@param dbgopts: (C++: const char ) value of the -r command line switch @param exename: (C++: const char ) name of the file to run @param argc: (C++: int) number of arguments for the executable @param argv: (C++: const char const ) argument vector @return: success
def unmark_selection()-
unmark_selection() Unmark selection (ui_unmarksel)
def unregister_action(name: char const *)-
unregister_action(name) -> bool Delete a previously-registered action (ui_unregister_action).
@param name: (C++: const char *) name of action @return: success
def unregister_timer(py_timerctx: PyObject *)-
unregister_timer(py_timerctx) -> bool Unregister a timer
@param timer_obj: a timer object previously returned by a register_timer() @return: Boolean @note: After the timer has been deleted, the timer_obj will become invalid.
def update_action_checkable(name: char const *, checkable: bool)-
update_action_checkable(name, checkable) -> bool Update an action's checkability (ui_update_action_attr).
@param name: (C++: const char *) action name @param checkable: (C++: bool) new checkability @return: success
def update_action_checked(name: char const *, checked: bool)-
update_action_checked(name, checked) -> bool Update an action's checked state (ui_update_action_attr).
@param name: (C++: const char *) action name @param checked: (C++: bool) new checked state @return: success
def update_action_icon(name: char const *, icon: int)-
update_action_icon(name, icon) -> bool Update an action's icon (ui_update_action_attr).
@param name: (C++: const char *) action name @param icon: (C++: int) new icon id @return: success
def update_action_label(name: char const *, label: char const *)-
update_action_label(name, label) -> bool Update an action's label (ui_update_action_attr).
@param name: (C++: const char ) action name @param label: (C++: const char ) new label @return: success
def update_action_shortcut(name: char const *, shortcut: char const *)-
update_action_shortcut(name, shortcut) -> bool Update an action's shortcut (ui_update_action_attr).
@param name: (C++: const char ) action name @param shortcut: (C++: const char ) new shortcut @return: success
def update_action_state(name: char const *, state: action_state_t)-
update_action_state(name, state) -> bool Update an action's state (ui_update_action_attr).
@param name: (C++: const char *) action name @param state: (C++: action_state_t) new state @return: success
def update_action_tooltip(name: char const *, tooltip: char const *)-
update_action_tooltip(name, tooltip) -> bool Update an action's tooltip (ui_update_action_attr).
@param name: (C++: const char ) action name @param tooltip: (C++: const char ) new tooltip @return: success
def update_action_visibility(name: char const *, visible: bool)-
update_action_visibility(name, visible) -> bool Update an action's visibility (ui_update_action_attr).
@param name: (C++: const char *) action name @param visible: (C++: bool) new visibility @return: success
def user_cancelled() ‑> bool-
user_cancelled() -> bool Test the ctrl-break flag (ui_test_cancelled). @retval 1: Ctrl-Break is detected, a message is displayed @retval 2: Ctrl-Break is detected again, a message is not displayed @retval 0: Ctrl-Break is not detected
def warning(*args)-
warning(format) -> ssize_t Display a message in a message box
@param format: message to print (formatting is done in Python)
This function can be used to debug IDAPython scripts The user will be able to hide messages if they appear twice in a row on the screen
Classes
class Choose (title, cols, flags=0, popup_names=None, icon=-1, x1=-1, y1=-1, x2=-1, y2=-1, deflt=None, embedded=False, width=None, height=None, forbidden_cb=0, flags2=0)-
Chooser wrapper class.
Some constants are defined in this class. Please refer to kernwin.hpp for more information.
Constructs a chooser window. @param title: The chooser title @param cols: a list of colums; each list item is a list of two items example: [ ["Address", 10 | Choose.CHCOL_HEX], ["Name", 30 | Choose.CHCOL_PLAIN] ] @param flags: One of CH_XXXX constants @param flags2: One of CH2_XXXX constants @param deflt: The index of the default item (0-based) for single selection choosers or the list of indexes for multi selection chooser @param popup_names: List of new captions to replace this list ["Insert", "Delete", "Edit", "Refresh"] @param icon: Icon index (the icon should exist in ida resources or an index to a custom loaded icon) @param x1: , y1, x2, y2: The default location (for txt-version) @param embedded: Create as embedded chooser @param width: Embedded chooser width @param height: Embedded chooser height @param forbidden_cb: Explicitly forbidden callbacks
Class variables
var ALL_CHANGEDvar ALREADY_EXISTS-
the non-modal chooser with the same data is already open
var CHCOL_DECvar CHCOL_DEFHIDDENvar CHCOL_DRAGHINTvar CHCOL_EAvar CHCOL_FNAMEvar CHCOL_FORMATvar CHCOL_HEXvar CHCOL_INODENAMEvar CHCOL_PATHvar CHCOL_PLAINvar CH_ATTRSvar CH_BUILTIN_MASK-
The chooser can provide a dirtree_t, meaning a tree-like structure can be provided to the user (instead of a flat table)
var CH_BUILTIN_SHIFTvar CH_CAN_DEL-
allow to delete existing item(s)
var CH_CAN_EDIT-
allow to edit existing item(s)
var CH_CAN_INS-
allow to insert new items
var CH_CAN_REFRESH-
allow to refresh chooser
var CH_FORCE_DEFAULT-
If a non-modal chooser was already open, change selection to the given default one
var CH_HAS_DIFFvar CH_HAS_DIRTREE-
The chooser can be used in a diffing/merging workflow
var CH_MODAL-
Modal chooser
var CH_MULTI-
Allow multi selection. Refer the description of the OnInsertLine(), OnDeleteLine(), OnEditLine(), OnSelectLine(), OnRefresh(), OnSelectionChange() to see a difference between single and multi selection callbacks.
var CH_NOBTNSvar CH_NOIDB-
use the chooser even without an open database, same as x0=-2
var CH_NO_STATUS_BAR-
don't show a status bar
var CH_QFLT-
open with quick filter enabled and focused
var CH_QFTYP_DEFAULTvar CH_QFTYP_FUZZYvar CH_QFTYP_MASKvar CH_QFTYP_NORMALvar CH_QFTYP_REGEXvar CH_QFTYP_SHIFTvar CH_QFTYP_WHOLE_WORDSvar CH_RENAME_IS_EDIT-
triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() callback for the corresponding row.
var CH_RESTORE-
restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only)
var EMPTY_CHOOSER-
the chooser is initialized
var NOTHING_CHANGEDvar NO_ATTR-
some mandatory attribute is missing
var NO_SELECTION-
there is no selected item
var SELECTION_CHANGEDvar UI_Hooks_Trampoline-
Proxy of C++ UI_Hooks class.
Methods
def Activate(self)-
Activates a visible chooser
def AddCommand(self, caption, flags=4, menu_index=-1, icon=-1, emb=None, shortcut=None)def Close(self)-
Closes the chooser
def Embedded(self, create_chobj=False)-
Creates an embedded chooser (as opposed to Show()) @return: Returns 0 on success or NO_ATTR
def GetEmbSelection(self)-
Deprecated. For embedded choosers, the selection is available through 'Form.EmbeddedChooserControl.selection'
def GetWidget(self)-
Return the TWidget underlying this view.
@return: The TWidget underlying this view, or None.
def OnClose(self)-
The chooser window is closed.
def OnDeleteLine(self, sel)-
User deleted an element
@param sel: the current selection @return: a tuple (changed, selection)
def OnEditLine(self, sel)-
User asked to edit an element.
@param sel: the current selection @return: a tuple (changed, selection)
def OnGetDirTree(self)-
Get the dirtree_t that will be used to present a tree-like structure to the user (see CH_HAS_DIRTREE)
@return: the dirtree_t, or None
def OnGetEA(self, n)-
Get the address of an element
When this function returns valid addresses: * If any column has the
CHCOL_FNAMEflag, rows will be colored according to the attributes of the functions who own those addresses (extern, library function, Lumina, … - similar to what the "Functions" widget does) * When a selection is present and the user presses<Enter>(<Shift+Enter>if the chooser is modal), IDA will jump to that address (through jumpto()) @param n: element number (0-based) @return: the effective address, ida_idaapi.BADADDR if the element has no address def OnGetIcon(self, n)-
Get an icon to associate with the first cell of an element
@param n: index of the element @return: an icon ID
def OnGetLine(self, n)-
Get data for an element
This callback is mandatory
@param n: the index to fetch data for @return: a list of strings
def OnGetLineAttr(self, n)-
Get attributes for an element
@param n: index of the element @return: a tuple (color, flags)
def OnGetSize(self)-
Get the number of elements in the chooser.
This callback is mandatory
@return: the number of elements
def OnIndexToDiffpos(self, n)-
Map an element index to a diffpos_t
This callback is mandatory if CH_HAS_DIFF is specified
@param n: index of the element @return: the diffpos
def OnIndexToInode(self, n)-
Map an element index to a dirtree_t inode
This callback is mandatory if CH_HAS_DIRTREE is specified
@param n: index of the element @return: the inode number
def OnInit(self)-
Initialize the chooser and populate it.
This callback is optional
def OnInsertLine(self, sel)-
User asked to insert an element
@param sel: the current selection @return: a tuple (changed, selection)
def OnLazyLoadDir(self, path)-
Callback for lazy-loaded, dirtree-based choosers; the function will be called when a folder is expanded and it has not been loaded before. The implementation should use the given dirtree's link() or mkdir() methods to add the folder contents.
@param path: an absolute dirtree path to the directory that is being expanded @return: success
def OnPopup(self, widget, popup_handle)def OnRefresh(self, sel)-
The chooser needs to be refreshed. It returns the new positions of the selected items.
@param sel: the current selection @return: a tuple (changed, selection)
def OnSelectLine(self, sel)-
User pressed the enter key, or double-clicked a selection
@param sel: the current selection @return: a tuple (changed, selection)
def OnSelectionChange(self, sel)-
Selection changed
@param sel: the new selection
def Refresh(self)-
Causes the refresh callback to trigger
def Show(self, modal=False)-
Activates or creates a chooser window @param modal: Display as modal dialog @return: For all choosers it will return NO_ATTR if some mandatory attribute is missing. The mandatory attributes are: flags, title, cols, OnGetSize(), OnGetLine(); For modal choosers it will return the selected item index (0-based), or NO_SELECTION if no selection, or EMPTY_CHOOSER if the OnRefresh() callback returns EMPTY_CHOOSER; For non-modal choosers it will return 0 or ALREADY_EXISTS if the chooser was already open and is active now;
def adjust_last_item(self, n)-
Helper for OnDeleteLine() and OnRefresh() callbacks. They can be finished by the following line: return [Choose.ALL_CHANGED] + self.adjust_last_item(n) @param line: number of the remaining select item @return: list of selected lines numbers (one element or empty)
class CustomIDAMemo-
Proxy of C++ View_Hooks class.
init(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks
@param _flags: uint32 @param _hkcb_flags: uint32
Ancestors
Subclasses
Methods
def CreateGroups(self, groups_infos)-
Send a request to modify the graph by creating a (set of) group(s), and perform an animation.
Each object in the 'groups_infos' list must be of the format: { "nodes" : [
, , , …] # The list of nodes to group "text" : # The synthetic text for that group } @param groups_infos: A list of objects that describe those groups. @return: A [
, , …] list of group nodes, or None (failure). def DelNodesInfos(self, *nodes)-
Delete the properties for the given node(s).
@param nodes: A list of node IDs
def DeleteGroups(self, groups, new_current=-1)-
Send a request to delete the specified groups in the graph, and perform an animation.
@param groups: A list of group node numbers. @param new_current: A node to focus on after the groups have been deleted @return: True on success, False otherwise.
def GetCurrentRendererType(self)def GetNodeInfo(self, *args)-
Get the properties for the given node.
@param ni: A node_info_t instance @param node: The index of the node. @return: success
def GetWidget(self)-
Return the TWidget underlying this view.
@return: The TWidget underlying this view, or None.
def GetWidgetAsGraphViewer(self)-
Return the graph_viewer_t underlying this view.
@return: The graph_viewer_t underlying this view, or None.
def Refresh(self)-
Refreshes the view. This causes the OnRefresh() to be called
def SetCurrentRendererType(self, rtype)-
Set the current view's renderer.
@param rtype: The renderer type. Should be one of the idaapi.TCCRT_* values.
def SetGroupsVisibility(self, groups, expand, new_current=-1)-
Send a request to expand/collapse the specified groups in the graph, and perform an animation.
@param groups: A list of group node numbers. @param expand: True to expand the group, False otherwise. @param new_current: A node to focus on after the groups have been expanded/collapsed. @return: True on success, False otherwise.
def SetNodeInfo(self, node_index, node_info, flags)-
Set the properties for the given node.
Example usage (set second nodes's bg color to red): inst = … p = idaapi.node_info_t() p.bg_color = 0x00ff0000 inst.SetNodeInfo(1, p, idaapi.NIF_BG_COLOR)
@param node_index: The node index. @param node_info: An idaapi.node_info_t instance. @param flags: An OR'ed value of NIF_* values.
def SetNodesInfos(self, values)-
Set the properties for the given nodes.
Example usage (set first three nodes's bg color to purple): inst = … p = idaapi.node_info_t() p.bg_color = 0x00ff00ff inst.SetNodesInfos({0 : p, 1 : p, 2 : p})
@param values: A dictionary of 'int -> node_info_t' objects.
Inherited members
class Form (form, controls)-
Contruct a Form class. This class wraps around ask_form() or open_form() and provides an easier / alternative syntax for describing forms. The form control names are wrapped inside the opening and closing curly braces and the control themselves are defined and instantiated via various form controls (subclasses of Form).
@param form: The form string @param controls: A dictionary containing the control name as a key and control object as value
Class variables
var ButtonInput-
Button control. A handler along with a 'code' (numeric value) can be associated with the button. This way one handler can handle many buttons based on the button code (or in other terms id or tag)
var ChkGroupControl-
Checkbox group control class. It holds a set of checkbox controls
var ChkGroupItemControl-
Checkbox group item control
var ColorInput-
Color button input control
var Controlvar DirInput-
Directory browsing control
var DropdownListControl-
Dropdown control This control allows manipulating a dropdown control
var EmbeddedChooserControl-
Embedded chooser control. This control links to a Chooser2 control created with the 'embedded=True'
var FT_ADDR-
Address - ea_t *
var FT_ASCII-
Ascii string - char *
var FT_BIN-
Binary number, 0b prefix - sval_t *
var FT_BUTTON-
Button - def handler(code)
var FT_CHAR-
Char value – sval_t *
var FT_CHKGRPvar FT_CHKGRP2var FT_COLOR-
Color button - bgcolor_t *
var FT_DEC-
Decimal number - sval_t *
var FT_DIR-
Path to directory - char * at least QMAXPATH
var FT_DROPDOWN_LIST-
Dropdown list control - Form.DropdownControl
var FT_ECHOOSER-
Embedded chooser - idaapi.Choose
var FT_FILE-
File browse - char * at least QMAXPATH
var FT_FORMCHG-
Form change callback - formchgcb_t
var FT_HEX-
Hex number - uval_t *
var FT_HTML_LABEL-
HTML label to display (only for GUI version, and for dynamic labels; no input)
var FT_IDENT-
Identifier - char * at least MAXNAMELEN
var FT_INT64-
default base int64 - int64
var FT_MULTI_LINE_TEXT-
Multi text control - textctrl_info_t
var FT_OCT-
Octal number, C notation - sval_t *
var FT_RADGRPvar FT_RADGRP2var FT_RAWHEX-
Hex number, no 0x prefix - uval_t *
var FT_SEG-
Segment - sel_t *
var FT_SHEX-
Signed hex number - sval_t *
var FT_TYPE-
Type declaration - char * at least MAXSTR
var FT_UINT64-
default base uint64 - uint64
var FileInput-
File Open/Save input control
var FormChangeCb-
Form change handler. This can be thought of like a dialog procedure. Everytime a form action occurs, this handler will be called along with the control id. The programmer can then call various form actions accordingly: - EnableField - ShowField - MoveField - GetFieldValue - etc…
Special control IDs: -1 (The form is initialized) and -2 (Ok has been clicked)
var GroupControl-
Base class for group controls
var GroupItemControl-
Base class for group control items
var InputControl-
Generic form input control. It could be numeric control, string control, directory/file browsing, etc…
var LabelControl-
Base class for static label control
var MultiLineTextControl-
Multi line text control. This class inherits from textctrl_info_t. Thus the attributes are also inherited This control allows manipulating a multilinetext control
var NumericArgument-
Argument representing various integer arguments (ushort, uint32, uint64, etc…) @param tp: One of Form.FT_XXX
var NumericInput-
A composite class serving as a base numeric input control class
var NumericLabel-
Numeric label control
var RadGroupControl-
Radiobox group control class. It holds a set of radiobox controls
var RadGroupItemControl-
Radiobox group item control
var StringArgument-
Argument representing a character buffer
var StringInput-
Base string input control class. This class also constructs a StringArgument
var StringLabel-
String label control
Static methods
def ControlToFieldTypeIdAndSize(ctrl)-
Converts a control object to a tuple containing the field id and the associated buffer size
def create_string_buffer(value, size=None)def fieldtype_to_ctype(tp, i64=False)-
Factory method returning a ctype class corresponding to the field type string
Instance variables
var controls-
Dictionary of controls
var form-
Form string
var modal-
By default, forms are modal
var openform_flags-
If non-modal, these flags will be passed to open_form. This is an OR'ed combination of the PluginForm.FORM_* values.
var title-
The Form title. It will be filled when the form is compiled
Methods
def Add(self, name, ctrl, mkattr=True)-
Low level function. Prefer AddControls() to this function. This function adds one control to the form.
@param name: Control name @param ctrl: Control object @param mkattr: Create control name / control object as a form attribute
def AddControls(self, controls, mkattr=True)-
Adds controls from a dictionary. The dictionary key is the control name and the value is a Form.Control object @param controls: The control dictionary
def Close(self, close_normally)-
Close the form @param close_normally 1: form is closed normally as if the user pressed Enter 0: form is closed abnormally as if the user pressed Esc @return: None
def Compile(self)-
Compiles a form and returns the form object (self) and the argument list. The form object will contain object names corresponding to the form elements
@return: It will raise an exception on failure. Otherwise the return value is ignored
def CompileEx(self, form)-
Low level function. Compiles (parses the form syntax and adds the control) the form string and returns the argument list to be passed the argument list to ask_form().
The form controls are wrapped inside curly braces: {ControlName}.
A special operator can be used to return the index of a given control by its name: {id:ControlName}. This is useful when you use the STARTITEM form keyword to set the initially focused control. (note that, technically, the index is not the same as the ID; that's because STARTITEM uses raw, 0-based indexes rather than control IDs to determine the focused widget.)
@param form: Compiles the form and returns the arguments needed to be passed to ask_form()
def Compiled(self)-
Checks if the form has already been compiled
@return: Boolean
def EnableField(self, ctrl, enable)-
Enable or disable an input field @return: False - no such control
def Execute(self)-
Displays a modal dialog containing the compiled form. @return: 1 - ok ; 0 - cancel
def FindControlById(self, id)-
Finds a control instance given its id
def Free(self)-
Frees all resources associated with a compiled form. Make sure you call this function when you finish using the form.
def GetControlValue(self, ctrl)-
Returns the control's value depending on its type @param ctrl: Form control instance @return: - color button, radio controls: integer - file/dir input, string input and string label: string - embedded chooser control (0-based indices of selected items): integer list - for multilinetext control: textctrl_info_t - dropdown list controls: string (when editable) or index (when readonly) - None: on failure
def GetFocusedField(self)-
Get currently focused input field. @return: None if no field is selected otherwise the control ID
def MoveField(self, ctrl, x, y, w, h)-
Move/resize an input field
@return: False - no such fiel
def Open(self)-
Opens a widget containing the compiled form.
def RefreshField(self, ctrl)-
Refresh a field @return: False - no such control
def SetControlValue(self, ctrl, value)-
Set the control's value depending on its type @param ctrl: Form control instance @param value - embedded chooser: a 0-base indices list to select embedded chooser items - multilinetext: a textctrl_info_t - dropdown list: an integer designating the selection index if readonly a string designating the edit control value if not readonly @return: Boolean true on success
def SetFocusedField(self, ctrl)-
Set currently focused input field @return: False - no such control
def ShowField(self, ctrl, show)-
Show or hide an input field @return: False - no such control
class IDAViewWrapper (title)-
Deprecated. Use View_Hooks instead.
Because the lifecycle of an IDAView is not trivial to track (e.g., a user might close, then re-open the same disassembly view), this wrapper doesn't bring anything superior to the View_Hooks: quite the contrary, as the latter is much more generic (and better maps IDA's internal model.)
init(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks
@param _flags: uint32 @param _hkcb_flags: uint32
Ancestors
Methods
def Bind(self)def Unbind(self)
Inherited members
CustomIDAMemo:CreateGroupsDelNodesInfosDeleteGroupsGetNodeInfoGetWidgetGetWidgetAsGraphViewerRefreshSetCurrentRendererTypeSetGroupsVisibilitySetNodeInfoSetNodesInfoshookthisownunhookview_activatedview_clickview_closeview_createdview_curposview_dblclickview_deactivatedview_keydownview_loc_changedview_mouse_movedview_mouse_overview_switched
class PluginForm-
PluginForm class.
This form can be used to host additional controls. Please check the PyQt example.
Subclasses
- view.main.IdaPluginForm
Class variables
var VALID_CAPSULE_NAMEvar WCLS_CLOSE_LATERvar WCLS_DELETE_LATER-
This flag should be used when Close() is called from an event handler
var WCLS_DONT_SAVE_SIZE-
Don't save size of the window
var WCLS_NO_CONTEXT-
Don't change the current context (useful for toolbars)
var WCLS_SAVE-
Save state in desktop config
var WOPN_CENTEREDvar WOPN_CREATE_ONLYvar WOPN_DP_BEFORE-
place widget before dst_form in the tab bar instead of after used with #WOPN_DP_INSIDE and #WOPN_DP_TAB
var WOPN_DP_BOTTOM-
Dock widget below dest_ctrl
var WOPN_DP_FLOATING-
When floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
var WOPN_DP_INSIDE-
Create a new tab bar with both widget and dest_ctrl
var WOPN_DP_INSIDE_BEFOREvar WOPN_DP_LEFT-
Dock widget to the left of dest_ctrl
var WOPN_DP_RIGHT-
Dock widget to the right of dest_ctrl
var WOPN_DP_SZHINT-
Make widget floating
var WOPN_DP_TAB-
Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar (otherwise the same as #WOPN_DP_INSIDE)
var WOPN_DP_TAB_BEFOREvar WOPN_DP_TOP-
Dock widget above dest_ctrl
var WOPN_MDIvar WOPN_MENUvar WOPN_ONTOPvar WOPN_PERSIST-
form will persist until explicitly closed with Close()
var WOPN_RESTORE-
if the widget is the only widget in a floating area when it is closed, remember that area's geometry. The next time that widget is created as floating (i.e., WOPN_DP_FLOATING) its geometry will be restored (e.g., "Execute script"
var WOPN_TAB
Static methods
def FormToPyQtWidget(tw, ctx=<module '__main__' (built-in)>)-
Convert a TWidget* to a QWidget to be used by PyQt
@param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
def FormToPySideWidget(tw, ctx=<module '__main__' (built-in)>)-
Use this method to convert a TWidget* to a QWidget to be used by PySide
@param ctx: Context. Reference to a module that already imported QtWidgets module
def QtWidgetToTWidget(w, ctx=<module '__main__' (built-in)>)-
Convert a QWidget to a TWidget* to be used by IDA
@param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
def TWidgetToPyQtWidget(tw, ctx=<module '__main__' (built-in)>)-
Convert a TWidget* to a QWidget to be used by PyQt
@param ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
def TWidgetToPySideWidget(tw, ctx=<module '__main__' (built-in)>)-
Use this method to convert a TWidget* to a QWidget to be used by PySide
@param ctx: Context. Reference to a module that already imported QtWidgets module
Methods
def Close(self, options)-
Closes the form.
@param options: Close options (WCLS_SAVE, WCLS_NO_CONTEXT, …)
@return: None
def GetWidget(self)-
Return the TWidget underlying this view.
@return: The TWidget underlying this view, or None.
def OnClose(self, form)-
Called when the plugin form is closed
@return: None
def OnCreate(self, form)-
This event is called when the plugin form is created. The programmer should populate the form when this event is triggered.
@return: None
def Show(self, caption, options=0)-
Creates the form if not was not created or brings to front if it was already created
@param caption: The form caption @param options: One of PluginForm.WOPN_ constants
class UI_Hooks-
Proxy of C++ UI_Hooks class.
init(self, _flags=0, _hkcb_flags=0x0001) -> UI_Hooks
@param _flags: uint32 @param _hkcb_flags: uint32
Subclasses
Instance variables
var thisown-
The membership flag
Methods
def create_desktop_widget(self, title: char const *, cfg: jobj_wrapper_t)-
create_desktop_widget(self, title, cfg) -> PyObject * create a widget, to be placed in the widget tree (at desktop-creation time.)
@param title: (const char ) @param cfg: (const jobj_t ) @return: TWidget * the created widget, or null
def current_widget_changed(self, widget: TWidget *, prev_widget: TWidget *)-
current_widget_changed(self, widget, prev_widget) The currently-active TWidget changed.
@param widget: (TWidget ) @param prev_widget: (TWidget )
def database_closed(self, *args)-
database_closed(self) The database has been closed. See also processor_t::closebase, it occurs earlier. See also ui_initing_database. This is not the same as IDA exiting. If you need to perform cleanup at the exiting time, use qatexit().
def database_inited(self, is_new_database: int, idc_script: char const *)-
database_inited(self, is_new_database, idc_script) database initialization has completed. the kernel is about to run idc scripts
@param is_new_database: (int) @param idc_script: (const char *) - may be nullptr @return: void See also ui_initing_database. This event is called for both new and old databases.
-
debugger_menu_change(self, enable) debugger menu modification detected
@param enable: (bool) true: debugger menu has been added, or a different debugger has been selected false: debugger menu will be removed (user switched to "No debugger")
def desktop_applied(self, name: char const *, from_idb: bool, type: int)-
desktop_applied(self, name, from_idb, type) a desktop has been applied
@param name: (const char *) the desktop name @param from_idb: (bool) the desktop was stored in the IDB (false if it comes from the registry) @param type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge)
def destroying_plugmod(self, plugmod: plugmod_t, entry: plugin_t const *)-
destroying_plugmod(self, plugmod, entry) The plugin object is about to be destroyed
@param plugmod: (const plugmod_t ) @param entry: (const plugin_t )
def destroying_procmod(self, procmod: procmod_t)-
destroying_procmod(self, procmod) The processor module is about to be destroyed
@param procmod: (const procmod_t *)
def finish_populating_widget_popup(self, widget: TWidget *, popup_handle: TPopupMenu *, ctx: action_ctx_base_t = None)-
finish_populating_widget_popup(self, widget, popup_handle, ctx=None) IDA is about to be done populating the context menu for a widget. This is your chance to attach_action_to_popup().
@param widget: (TWidget ) @param popup_handle: (TPopupMenu ) @param ctx: (const action_activation_ctx_t *)
def get_chooser_item_attrs(self, chooser: chooser_base_t, n: size_t, attrs: chooser_item_attrs_t)-
get_chooser_item_attrs(self, chooser, n, attrs) get item-specific attributes for a chooser. This callback is generated only after enable_chooser_attrs()
@param chooser: (const chooser_base_t ) @param n: (::size_t) @param attrs: (chooser_item_attrs_t )
def get_custom_viewer_hint(self, viewer: TWidget *, place: place_t)-
get_custom_viewer_hint(self, viewer, place) -> PyObject * ui wants to display a hint for a viewer (idaview or custom). Every subscriber is supposed to append the hint lines to HINT and increment IMPORTANT_LINES accordingly. Completely overwriting the existing lines in HINT is possible but not recommended. If the REG_HINTS_MARKER sequence is found in the returned hints string, it will be replaced with the contents of the "regular" hints. If the SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it will be replaced with the contents of the source-level debugger-generated hints. The following keywords might appear at the beginning of the returned hints: HIGHLIGHT text where text will be highlighted CAPTION caption caption for the hint widget
@param viewer: (TWidget) viewer @param place: (place_t ) current position in the viewer @retval 0: continue collecting hints with other subscribers @retval 1: stop collecting hints
def get_ea_hint(self, ea: ea_t)-
get_ea_hint(self, ea) -> PyObject * ui wants to display a simple hint for an address. Use this event to generate a custom hint See also more generic ui_get_item_hint
@param ea: (::ea_t) @return: true if generated a hint
def get_item_hint(self, ea: ea_t, max_lines: int)-
get_item_hint(self, ea, max_lines) -> PyObject * ui wants to display multiline hint for an item. See also more generic ui_get_custom_viewer_hint
@param ea: (ea_t) or item id like a structure or enum member @param max_lines: (int) maximal number of lines @return: true if generated a hint
def get_lines_rendering_info(self, out: lines_rendering_output_t, widget: TWidget const *, info: lines_rendering_input_t)-
get_lines_rendering_info(self, out, widget, info) get lines rendering information
@param out: (lines_rendering_output_t ) @param widget: (const TWidget ) @param info: (const lines_rendering_input_t *)
def get_widget_config(self, widget: TWidget const *, cfg: jobj_t *)-
get_widget_config(self, widget, cfg) -> PyObject * retrieve the widget configuration (it will be passed back at ui_create_desktop_widget-, and ui_set_widget_config-time)
@param widget: (const TWidget ) @param cfg: (jobj_t )
def hook(self) ‑> bool-
hook(self) -> bool
def idcstart(self)-
idcstart(self) Start of IDC engine work.
def idcstop(self)-
idcstop(self) Stop of IDC engine work.
def initing_database(self)-
initing_database(self) database initialization has started.
@return: void See also ui_database_inited. This event is called for both new and old databases.
def plugin_loaded(self, plugin_info: plugin_info_t const *)-
plugin_loaded(self, plugin_info) The plugin was loaded in memory.
@param plugin_info: (const plugin_info_t *)
def plugin_unloading(self, plugin_info: plugin_info_t const *)-
plugin_unloading(self, plugin_info) The plugin is about to be unloaded
@param plugin_info: (const plugin_info_t *)
def populating_widget_popup(self, widget: TWidget *, popup_handle: TPopupMenu *, ctx: action_ctx_base_t = None)-
populating_widget_popup(self, widget, popup_handle, ctx=None) IDA is populating the context menu for a widget. This is your chance to attach_action_to_popup().
Have a look at ui_finish_populating_widget_popup, if you want to augment the context menu with your own actions after the menu has had a chance to be properly populated by the owning component or plugin (which typically does it on ui_populating_widget_popup.)
@param widget: (TWidget ) @param popup_handle: (TPopupMenu ) @param ctx: (const action_activation_ctx_t *)
def postprocess_action(self)-
postprocess_action(self) an ida ui action has been handled
def preprocess_action(self, name: char const *)-
preprocess_action(self, name) -> int ida ui is about to handle a user action.
@param name: (const char *) ui action name. these names can be looked up in ida[tg]ui.cfg @retval 0: ok @retval nonzero: a plugin has handled the command
def range(self)-
range(self) The disassembly range has been changed ( idainfo::min_ea … idainfo::max_ea). UI should redraw the scrollbars. See also: ui_lock_range_refresh
def ready_to_run(self)-
ready_to_run(self) all UI elements have been initialized. Automatic plugins may hook to this event to perform their tasks.
def resume(self)-
resume(self) Resume the suspended graphical interface. Only the text version. Interface should respond to it
def saved(self, path: char const *)-
saved(self, path) The kernel has saved the database. This callback just informs the interface. Note that at the time this notification is sent, the internal paths are not updated yet, and calling get_path(PATH_TYPE_IDB) will return the previous path.
@param path: (const char *) the database path
def saving(self)-
saving(self) The kernel is flushing its buffers to the disk. The user interface should save its state. Parameters: none Returns: none
def screen_ea_changed(self, ea: ea_t, prev_ea: ea_t)-
screen_ea_changed(self, ea, prev_ea) The "current address" changed
@param ea: (ea_t) @param prev_ea: (ea_t)
def set_widget_config(self, widget: TWidget const *, cfg: jobj_wrapper_t)-
set_widget_config(self, widget, cfg) set the widget configuration
@param widget: (const TWidget ) @param cfg: (const jobj_t )
def suspend(self)-
suspend(self) Suspend graphical interface. Only the text version. Interface should respond to it.
def unhook(self) ‑> bool-
unhook(self) -> bool
def updated_actions(self)-
updated_actions(self) IDA is done updating actions.
def updating_actions(self, ctx: action_ctx_base_t)-
updating_actions(self, ctx) IDA is about to update all actions. If your plugin needs to perform expensive operations more than once (e.g., once per action it registers), you should do them only once, right away.
@param ctx: (action_update_ctx_t *)
def widget_closing(self, widget: TWidget *)-
widget_closing(self, widget) TWidget is about to close. This event precedes ui_widget_invisible. Use this to perform some possible actions relevant to the lifecycle of this widget
@param widget: (TWidget *)
def widget_invisible(self, widget: TWidget *)-
widget_invisible(self, widget) TWidget is being closed. Use this event to destroy the window controls
@param widget: (TWidget *)
def widget_visible(self, widget: TWidget *)-
widget_visible(self, widget) TWidget is displayed on the screen. Use this event to populate the window with controls
@param widget: (TWidget *)
class View_Hooks-
Proxy of C++ View_Hooks class.
init(self, _flags=0, _hkcb_flags=0x0001) -> View_Hooks
@param _flags: uint32 @param _hkcb_flags: uint32
Subclasses
Instance variables
var thisown-
The membership flag
Methods
def hook(self) ‑> bool-
hook(self) -> bool
def unhook(self) ‑> bool-
unhook(self) -> bool
def view_activated(self, view: TWidget *)-
view_activated(self, view) A view is activated
@param view: (TWidget *)
def view_click(self, view: TWidget *, event: view_mouse_event_t)-
view_click(self, view, event) Click event
@param view: (TWidget ) @param event: (const view_mouse_event_t )
def view_close(self, view: TWidget *)-
view_close(self, view) View closed
@param view: (TWidget *)
def view_created(self, view: TWidget *)-
view_created(self, view) A view is being created.
@param view: (TWidget *)
def view_curpos(self, view: TWidget *)-
view_curpos(self, view) Cursor position changed
@param view: (TWidget *)
def view_dblclick(self, view: TWidget *, event: view_mouse_event_t)-
view_dblclick(self, view, event) Double click event
@param view: (TWidget ) @param event: (const view_mouse_event_t )
def view_deactivated(self, view: TWidget *)-
view_deactivated(self, view) A view is deactivated
@param view: (TWidget *)
def view_keydown(self, view: TWidget *, key: int, state: view_event_state_t)-
view_keydown(self, view, key, state) Key down event
@param view: (TWidget *) @param key: (int) @param state: (::view_event_state_t)
def view_loc_changed(self, view: TWidget *, now: lochist_entry_t const *, was: lochist_entry_t const *)-
view_loc_changed(self, view, now, was) The location for the view has changed (can be either the place_t, the renderer_info_t, or both.)
@param view: (TWidget ) @param now: (const lochist_entry_t ) @param was: (const lochist_entry_t *)
def view_mouse_moved(self, view: TWidget *, event: view_mouse_event_t)-
view_mouse_moved(self, view, event) The mouse moved on the view
@param view: (TWidget ) @param event: (const view_mouse_event_t )
def view_mouse_over(self, view: TWidget *, event: view_mouse_event_t)-
view_mouse_over(self, view, event) The user moved the mouse over (or out of) a node or an edge. This is only relevant in a graph view.
@param view: (TWidget ) @param event: (const view_mouse_event_t )
def view_switched(self, view: TWidget *, rt: tcc_renderer_type_t)-
view_switched(self, view, rt) A view's renderer has changed.
@param view: (TWidget *) @param rt: (tcc_renderer_type_t)
class action_ctx_base_cur_sel_t-
Proxy of C++ action_ctx_base_cur_sel_t class.
init(self) -> action_ctx_base_cur_sel_t
Instance variables
var thisown-
The membership flag
var to : twinpos_t-
end of selection
Methods
def reset(self)-
reset(self)
class action_ctx_base_t-
Proxy of C++ action_ctx_base_t class.
init(self) -> action_ctx_base_t
Instance variables
var action : char const *-
action name
var chooser : chooser_base_t *-
the underlying chooser_base_t (if 'widget' is a chooser widget)
var chooser_selection : sizevec_t-
current chooser selection (0-based)
var cur_ea : ea_t-
the current EA of the position in the view
var cur_extracted_ea-
cur_value
var cur_fchunk : func_t *-
the current function chunk
var cur_flags : uint32-
Current address information. see Action context property bits.
var cur_func : func_t *-
the current function
var cur_seg : segment_t *-
the current segment
var cur_sel : action_ctx_base_cur_sel_t-
the currently selected range. also see ACF_HAS_SELECTION
var cur_value : uval_t-
the possible address, or value the cursor is positioned on
var dirtree_selection : dirtree_selection_t *-
the current dirtree_t selection (if applicable)
var focus : TWidget *-
The focused widget in case it is not the 'form' itself (e.g., the 'quick filter' input in choosers.)
var formvar form_titlevar form_typevar graph : interactive_graph_t *-
the current graph (if in a graph view)
var graph_selection : screen_graph_selection_t *-
the current graph selection (if in a graph view)
var regname : char const *-
register name (if widget_type == BWN_CPUREGS and context menu opened on register)
var thisown-
The membership flag
var type_ref : til_type_ref_t *-
a reference to the current type (if 'widget' is a type listing widget; nullptr otherwise)
var widget : TWidget *-
widget
var widget_title : qstring-
title of current widget
var widget_type : twidget_type_t-
type of current widget
Methods
def has_flag(self, flag: uint32)-
has_flag(self, flag) -> bool Check if the given flag is set.
@param flag: (C++: uint32)
def reset(self)-
reset(self) Invalidate all context info.
class action_desc_t (name: char const *, label: char const *, handler: PyObject *, shortcut: char const * = None, tooltip: char const * = None, icon: int = -1, flags: int = 0)-
Proxy of C++ action_desc_t class.
init(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t
@param name: char const * @param label: char const * @param handler: PyObject * @param shortcut: char const * @param tooltip: char const * @param icon: int @param flags: int
Instance variables
var cb : int-
size of this structure
var flags : int-
See Action flags.
var icon : int-
an optional icon ID to use
var label : char const *-
the label of the action, possibly with an accelerator key definition (e.g., "~J~ump to operand")
var name : char const *-
the internal name of the action; must be unique. a way to reduce possible conflicts is to prefix it with some specific prefix. E.g., "myplugin:doSthg".
var owner : void const *-
either the plugin_t, or plugmod_t responsible for registering the action. Can be nullptr Please see ACTION_DESC_LITERAL_PLUGMOD
var shortcut : char const *-
an optional shortcut definition. E.g., "Ctrl+Enter"
var thisown-
The membership flag
var tooltip : char const *-
an optional tooltip for the action
class action_handler_t-
Subclasses
- ida_kernwin.quick_widget_commands_t._ah_t
Methods
def activate(self, 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.
@return: non-zero: all IDA windows will be refreshed
def update(self, 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 addon_info_t-
Proxy of C++ addon_info_t class.
init(self) -> addon_info_t
Instance variables
var cb : size_t-
cb
var custom_data : void const *-
custom_data
var custom_size : size_t-
custom_size
var freeform : char const *-
freeform
var id : char const *-
id
var name : char const *-
name
var producer : char const *-
producer
var thisown-
The membership flag
var url : char const *-
url
var version : char const *-
version
class chooser_base_t (*args, **kwargs)-
Proxy of C++ chooser_base_t class.
Class variables
var NSTDPOPUPSvar POPUP_DELvar POPUP_EDITvar POPUP_INSvar POPUP_REFRESH
Instance variables
var columns : int-
number of columns
var deflt_col : int-
Column that will have focus.
var header : char const *const *-
header line; contains the tooltips, and column name for each of 'columns' columns. When tooltips need to be provided, the syntax should be: "#tooltip#column-name". (Otherwise, the syntax is simply "column-name".)
var height : int-
(in chars)
var icon : int-
default icon
var popup_names : qstring [chooser_base_t::NSTDPOPUPS]-
array of custom labels of the standard actions. Used to replace labels for these actions. An empty name means that the default name will be used. @note: Availability of these actions is determined by the CH_CAN_… flags. The label, icon and other action attributes can be overwritten in the action description returned by get_stdact_descs()
var thisown-
The membership flag
var title : char const *-
menu title (includes ptr to help). May have chooser title prefixes (see "Chooser title" above).
var width : int-
(in chars)
var widths : int const *-
column widths * low 16 bits of each value hold the column width * high 16 bits are flags (see Chooser column flags)
var x0 : int-
screen position, Functions: generic list choosers
var x1 : int-
x1
var y0 : int-
y0
var y1 : int-
y1
Methods
def ask_item_attrs(self) ‑> bool-
ask_item_attrs(self) -> bool should chooser generate ui_get_chooser_item_attrs events?
def can_del(self) ‑> bool-
can_del(self) -> bool
def can_edit(self) ‑> bool-
can_edit(self) -> bool
def can_filter(self) ‑> bool-
can_filter(self) -> bool
def can_ins(self) ‑> bool-
can_ins(self) -> bool is an operation allowed?
def can_refresh(self) ‑> bool-
can_refresh(self) -> bool
def can_sort(self) ‑> bool-
can_sort(self) -> bool
def get_builtin_number(self)-
get_builtin_number(self) -> uint get number of the built-in chooser
def get_count(self)-
get_count(self) -> size_t get the number of elements in the chooser
def get_ea(self, arg2: size_t)-
get_ea(self, arg2) -> ea_t get the address of an element. When this function returns valid addresses: * If any column has the
CHCOL_FNAMEflag, rows will be colored according to the attributes of the functions who own those addresses (extern, library function, Lumina, … - similar to what the "Functions" widget does) * When a selection is present and the user presses<Enter>(<Shift+Enter>if the chooser is modal), IDA will jump to that address (through jumpto())@param arg2: size_t @return: the effective address, BADADDR if the element has no address
def get_quick_filter_initial_mode(self) ‑> int-
get_quick_filter_initial_mode(self) -> int
def get_row(self, n: size_t)-
get_row(self, n) -> ([str, …], int, chooser_item_attrs_t) get a description of an element.
@param n: (C++: size_t) element number (0..get_count()-1)
def has_diff_capability(self) ‑> bool-
has_diff_capability(self) -> bool
def has_dirtree(self) ‑> bool-
has_dirtree(self) -> bool
def has_inode_to_index(self) ‑> bool-
has_inode_to_index(self) -> bool
def has_widget_lifecycle(self) ‑> bool-
has_widget_lifecycle(self) -> bool should chooser object be deleted when the widget gets destroyed?
def is_dirtree_persisted(self) ‑> bool-
is_dirtree_persisted(self) -> bool
def is_force_default(self) ‑> bool-
is_force_default(self) -> bool should selection of the already opened non-modal chooser be changed?
def is_lazy_loaded(self) ‑> bool-
is_lazy_loaded(self) -> bool
def is_modal(self) ‑> bool-
is_modal(self) -> bool is choose modal?
def is_multi(self) ‑> bool-
is_multi(self) -> bool is multi-selection allowed?
def is_quick_filter_visible_initially(self) ‑> bool-
is_quick_filter_visible_initially(self) -> bool
def is_same(self, other: chooser_base_t) ‑> bool-
is_same(self, other) -> bool do the current and the given objects hold the same data?
@param other: (C++: const chooser_base_t *) chooser_base_t const *
-
is_status_bar_hidden(self) -> bool
def popup_allowed(self, stdact_idx: int) ‑> bool-
popup_allowed(self, stdact_idx) -> bool is a standard action allowed?
@param stdact_idx: (C++: int)
def should_rename_trigger_edit(self) ‑> bool-
should_rename_trigger_edit(self) -> bool
def should_restore_geometry(self) ‑> bool-
should_restore_geometry(self) -> bool
class chooser_item_attrs_t-
Proxy of C++ chooser_item_attrs_t class.
init(self) -> chooser_item_attrs_t
Instance variables
var color : bgcolor_t-
item color
var flags : int-
Chooser item property bits
var thisown-
The membership flag
Methods
def reset(self)-
reset(self)
class chooser_row_info_t-
Proxy of C++ chooser_row_info_t class.
init(self) -> chooser_row_info_t
Instance variables
var attrs : chooser_item_attrs_t-
styling attributes
var icon : int-
icon number
var texts : qstrvec_t-
texts, one per chooser column
var thisown-
The membership flag
class chooser_row_info_vec_t (*args)-
Proxy of C++ qvector< chooser_row_info_t > class.
init(self) -> chooser_row_info_vec_t init(self, x) -> chooser_row_info_vec_t
@param x: qvector< chooser_row_info_t > const &
Instance variables
var thisown-
The membership flag
Methods
def add_unique(self, x: chooser_row_info_t) ‑> bool-
add_unique(self, x) -> bool
@param x: chooser_row_info_t const &
def at(self, _idx: size_t)-
at(self, _idx) -> chooser_row_info_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> chooser_row_info_t
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> chooser_row_info_t
def erase(self, *args)-
erase(self, it) -> chooser_row_info_t
@param it: qvector< chooser_row_info_t >::iterator
erase(self, first, last) -> chooser_row_info_t
@param first: qvector< chooser_row_info_t >::iterator @param last: qvector< chooser_row_info_t >::iterator
def extract(self)-
extract(self) -> chooser_row_info_t
def find(self, *args)-
find(self, x) -> chooser_row_info_t
@param x: chooser_row_info_t const &
def front(self)def grow(self, *args)-
grow(self, x=chooser_row_info_t())
@param x: chooser_row_info_t const &
def has(self, x: chooser_row_info_t) ‑> bool-
has(self, x) -> bool
@param x: chooser_row_info_t const &
def inject(self, s: chooser_row_info_t, len: size_t)-
inject(self, s, len)
@param s: chooser_row_info_t * @param len: size_t
def insert(self, it: chooser_row_info_t, x: chooser_row_info_t)-
insert(self, it, x) -> chooser_row_info_t
@param it: qvector< chooser_row_info_t >::iterator @param x: chooser_row_info_t const &
def pop_back(self)-
pop_back(self)
def push_back(self, *args)-
push_back(self, x)
@param x: chooser_row_info_t const &
push_back(self) -> chooser_row_info_t
def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def resize(self, *args)-
resize(self, _newsize, x)
@param _newsize: size_t @param x: chooser_row_info_t const &
resize(self, _newsize)
@param _newsize: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: chooser_row_info_vec_t)-
swap(self, r)
@param r: qvector< chooser_row_info_t > &
def truncate(self)-
truncate(self)
class chooser_stdact_desc_t-
Proxy of C++ chooser_stdact_desc_t class.
init(self, _label=None, _tooltip=None, _icon=-1) -> chooser_stdact_desc_t
@param _label: char const * @param _tooltip: char const * @param _icon: int
Instance variables
var icon : int-
icon
var label : char const *-
see action_desc_t
var thisown-
The membership flag
var tooltip : char const *-
tooltip
var version : int-
to support the backward compatibility
Methods
def ucb(self, arg0: action_ctx_base_t)-
ucb(self, arg0) -> action_state_t the update callback, see action_handler_t::update() When the update callback is called from the chooser UI engine, it can be sure that ctx.source.chooser is a valid pointer to chooser_base_t and that there are selected items for the Delete and Edit actions.
@param arg0: action_update_ctx_t *
class cli_t-
cli_t wrapper class.
This class allows you to implement your own command line interface handlers.
Ancestors
Methods
def OnExecuteLine(self, line)-
The user pressed Enter. The CLI is free to execute the line immediately or ask for more lines.
This callback is mandatory.
@param line: typed line(s) @return: Boolean: True-executed line, False-ask for more lines
def OnFindCompletions(self, line, x)-
The user pressed Tab. Return a list of completions
This callback is optional.
@param line: the current line (string) @param x: the index where the cursor is (int)
@return: None if no completion could be generated, otherwise a tuple: (completions : Sequence[str], hints : Sequence[str], docs: Sequence[str], match_start: int, match_end: int)
def OnKeydown(self, line, x, sellen, vkey, shift)-
A keyboard key has been pressed This is a generic callback and the CLI is free to do whatever it wants.
This callback is optional.
@param line: current input line @param x: current x coordinate of the cursor @param sellen: current selection length (usually 0) @param vkey: virtual key code. if the key has been handled, it should be returned as zero @param shift: shift state
@return: None - Nothing was changed tuple(line, x, sellen, vkey): if either of the input line or the x coordinate or the selection length has been modified. It is possible to return a tuple with None elements to preserve old values. Example: tuple(new_line, None, None, None) or tuple(new_line)
def register(self, flags=0, sname=None, lname=None, hint=None)-
Registers the CLI.
@param flags: Feature bits. No bits are defined yet, must be 0 @param sname: Short name (displayed on the button) @param lname: Long name (displayed in the menu) @param hint: Hint for the input line
@return: Boolean: True-Success, False-Failed
def unregister(self)-
Unregisters the CLI (if it was registered)
class disabled_script_timeout_tclass disasm_line_t (*args)-
Proxy of C++ disasm_line_t class.
init(self) -> disasm_line_t init(self, other) -> disasm_line_t
@param other: disasm_line_t const &
Instance variables
var at : place_t *-
at
var bg_color : bgcolor_t-
bg_color
var is_default : bool-
is_default
var line : qstring-
line
var prefix_color : color_t-
prefix_color
var thisown-
The membership flag
class disasm_text_t (*args)-
Proxy of C++ qvector< disasm_line_t > class.
init(self) -> disasm_text_t init(self, x) -> disasm_text_t
@param x: qvector< disasm_line_t > const &
Instance variables
var thisown-
The membership flag
Methods
def at(self, _idx: size_t)-
at(self, _idx) -> disasm_line_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> disasm_line_t
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> disasm_line_t
def erase(self, *args)-
erase(self, it) -> disasm_line_t
@param it: qvector< disasm_line_t >::iterator
erase(self, first, last) -> disasm_line_t
@param first: qvector< disasm_line_t >::iterator @param last: qvector< disasm_line_t >::iterator
def extract(self)-
extract(self) -> disasm_line_t
def front(self)def grow(self, *args)-
grow(self, x=disasm_line_t())
@param x: disasm_line_t const &
def inject(self, s: disasm_line_t, len: size_t)-
inject(self, s, len)
@param s: disasm_line_t * @param len: size_t
def insert(self, it: disasm_line_t, x: disasm_line_t)-
insert(self, it, x) -> disasm_line_t
@param it: qvector< disasm_line_t >::iterator @param x: disasm_line_t const &
def pop_back(self)-
pop_back(self)
def push_back(self, *args)-
push_back(self, x)
@param x: disasm_line_t const &
push_back(self) -> disasm_line_t
def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def resize(self, *args)-
resize(self, _newsize, x)
@param _newsize: size_t @param x: disasm_line_t const &
resize(self, _newsize)
@param _newsize: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: disasm_text_t)-
swap(self, r)
@param r: qvector< disasm_line_t > &
def truncate(self)-
truncate(self)
class idaplace_t (*args, **kwargs)-
Proxy of C++ idaplace_t class.
Ancestors
Instance variables
var ea : ea_t-
address
Inherited members
class input_event_keyboard_data_t-
Proxy of C++ input_event_t::input_event_keyboard_data_t class.
init(self) -> input_event_keyboard_data_t
Instance variables
var key : int-
key
var text : char [8]-
text
var thisown-
The membership flag
class input_event_mouse_data_t-
Proxy of C++ input_event_t::input_event_mouse_data_t class.
init(self) -> input_event_mouse_data_t
Instance variables
-
button
var thisown-
The membership flag
var x : int-
x
var y : int-
y
-
class input_event_shortcut_data_t-
Proxy of C++ input_event_t::input_event_shortcut_data_t class.
init(self) -> input_event_shortcut_data_t
Instance variables
var action_name : char const *-
action_name
var thisown-
The membership flag
class input_event_t-
Proxy of C++ input_event_t class.
init(self) -> input_event_t
Instance variables
var cb : int-
size marker
var keyboard : input_event_t::input_event_keyboard_data_t-
keyboard
var kind : input_event_kind_t-
the kind of event
var modifiers : input_event_modifiers_t-
current keyboard (and mouse) modifiers
var mouse : input_event_t::input_event_mouse_data_t-
mouse
var shortcut : input_event_t::input_event_shortcut_data_t-
shortcut
var source : void *-
the source event, should it be required for detailed inform (e.g., a QEvent in the GUI version of IDA)
var target : TWidget *-
the target widget
var thisown-
The membership flag
Methods
def get_source_QEvent(self)def get_target_QWidget(self)
class jobj_wrapper_t (*args, **kwargs)-
Proxy of C++ jobj_wrapper_t class.
Instance variables
var thisown-
The membership flag
Methods
def get_dict(self)-
get_dict(self) -> dict
class line_rendering_output_entries_refs_t (*args)-
Proxy of C++ qvector< line_rendering_output_entry_t * > class.
init(self) -> line_rendering_output_entries_refs_t init(self, x) -> line_rendering_output_entries_refs_t
@param x: qvector< line_rendering_output_entry_t * > const &
Instance variables
var thisown-
The membership flag
Methods
def add_unique(self, x: line_rendering_output_entry_t) ‑> bool-
add_unique(self, x) -> bool
@param x: line_rendering_output_entry_t *const &
def at(self, _idx: size_t)-
at(self, _idx) -> line_rendering_output_entry_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> qvector< line_rendering_output_entry_t * >::iterator begin(self) -> qvector< line_rendering_output_entry_t * >::const_iterator
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> qvector< line_rendering_output_entry_t * >::iterator end(self) -> qvector< line_rendering_output_entry_t * >::const_iterator
def erase(self, *args)-
erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator
@param it: qvector< line_rendering_output_entry_t * >::iterator
erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator
@param first: qvector< line_rendering_output_entry_t * >::iterator @param last: qvector< line_rendering_output_entry_t * >::iterator
def extract(self)-
extract(self) -> line_rendering_output_entry_t **
def find(self, *args)-
find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator
@param x: line_rendering_output_entry_t *const &
find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator
@param x: line_rendering_output_entry_t *const &
def front(self)def has(self, x: line_rendering_output_entry_t) ‑> bool-
has(self, x) -> bool
@param x: line_rendering_output_entry_t *const &
def inject(self, s: line_rendering_output_entry_t **, len: size_t)-
inject(self, s, len)
@param s: line_rendering_output_entry_t ** @param len: size_t
def insert(self, it: qvector< line_rendering_output_entry_t * >::iterator, x: line_rendering_output_entry_t)-
insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator
@param it: qvector< line_rendering_output_entry_t * >::iterator @param x: line_rendering_output_entry_t *const &
def pop_back(self)-
pop_back(self)
def push_back(self, e)def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def resize(self, *args)-
resize(self, _newsize, x)
@param _newsize: size_t @param x: line_rendering_output_entry_t *const &
resize(self, _newsize)
@param _newsize: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: line_rendering_output_entries_refs_t)-
swap(self, r)
@param r: qvector< line_rendering_output_entry_t * > &
def truncate(self)-
truncate(self)
class line_rendering_output_entry_t (*args)-
Proxy of C++ line_rendering_output_entry_t class.
init(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t
@param _line: twinline_t const * @param _flags: uint32 @param _bg_color: bgcolor_t
init(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t
@param _line: twinline_t const * @param _cpx: int @param _nchars: int @param _flags: uint32 @param _bg_color: bgcolor_t
Instance variables
var bg_color : bgcolor_t-
bg_color
var cpx : int-
number of char to start from, valid if LROEF_CPS_RANGE
var flags : uint32-
line_rendering_output_entry_t flags
var line : twinline_t const *-
line
var nchars : int-
chars count, valid if LROEF_CPS_RANGE
var thisown-
The membership flag
Methods
def is_bg_color_direct(self) ‑> bool-
is_bg_color_direct(self) -> bool
def is_bg_color_empty(self) ‑> bool-
is_bg_color_empty(self) -> bool
def is_bg_color_key(self) ‑> bool-
is_bg_color_key(self) -> bool
class line_section_t-
Proxy of C++ line_section_t class.
init(self) -> line_section_t
Subclasses
Instance variables
var length : cplen_t-
length
var start : cpidx_t-
start
var thisown-
The membership flag
Methods
def contains(self, x: cpidx_t)-
contains(self, x) -> bool
@param x: cpidx_t
def is_closed(self) ‑> bool-
is_closed(self) -> bool
def is_open(self) ‑> bool-
is_open(self) -> bool
def valid(self) ‑> bool-
valid(self) -> bool
class linearray_t (_ud: void *)-
Proxy of C++ linearray_t class.
init(self, _ud) -> linearray_t
@param _ud: void *
Instance variables
var thisown-
The membership flag
Methods
def beginning(self) ‑> bool-
beginning(self) -> bool Are we at the beginning?
def down(self)-
down(self) -> qstring const * Get a line from down direction. place is ok BEFORE
def ending(self) ‑> bool-
ending(self) -> bool
def get_bg_color(self)-
get_bg_color(self) -> bgcolor_t Get current background color. (the same behavior as with get_place(): good before down() and after up())
def get_dlnnum(self) ‑> int-
get_dlnnum(self) -> int Get default line number. (the same behavior as with get_place(): good before down() and after up())
def get_linecnt(self) ‑> int-
get_linecnt(self) -> int Get number of lines for the current place. (the same behavior as with get_place(): good before down() and after up())
def get_pfx_color(self)-
get_pfx_color(self) -> bgcolor_t Get current prefix color. (the same behavior as with get_place(): good before down() and after up())
def get_place(self)-
get_place(self) -> place_t Get the current place. If called before down(), then returns place of line which will be returned by down(). If called after up(), then returns place if line returned by up().
def set_place(self, new_at: place_t) ‑> int-
set_place(self, new_at) -> int Position the array. This function must be called before calling any other member functions.
linearray_t doesn't own place_t structures. The caller must take care of place_t objects.
@param new_at: (C++: const place_t *) new position of the array @return: the delta of lines that the linearray_t had to adjust the place by. For example, if the place_t has a lnnum of 5, but it turns out, upon generating lines, that the number of lines for that particular place is only 2, then 3 will be returned.
def set_userdata(self, userd: void *)-
set_userdata(self, userd) Change the user data.
@param userd: (C++: void *)
def up(self)-
up(self) -> qstring const * Get a line from up direction. place is ok AFTER
def userdata(self)-
userdata(self) -> void * Get pointer to user data.
class lines_rendering_input_t-
Proxy of C++ lines_rendering_input_t class.
init(self) -> lines_rendering_input_t
Instance variables
var cb : int-
cb
var sections_lines : sections_lines_refs_t-
references to the lines that are used for rendering
var sync_group : synced_group_t const *-
the 'synced' group 'widget' (see ui_get_lines_rendering_info) belongs to, or nullptr
var thisown-
The membership flag
class lines_rendering_output_t-
Proxy of C++ lines_rendering_output_t class.
init(self) -> lines_rendering_output_t
Instance variables
var entries : line_rendering_output_entries_refs_t-
entries
var flags : uint32-
flags
var thisown-
The membership flag
Methods
def clear(self)-
clear(self)
def swap(self, r: lines_rendering_output_t)-
swap(self, r)
@param r: lines_rendering_output_t &
class listing_location_t-
Proxy of C++ listing_location_t class.
init(self) -> listing_location_t
Instance variables
var cb : int-
cb
var loc : lochist_entry_t const *-
loc
var tagged_sections : tagged_line_sections_t const *-
tagged_sections
var text : qstring const *-
text
var thisown-
The membership flag
class place_t (*args, **kwargs)-
Proxy of C++ place_t class.
Subclasses
Static methods
def as_idaplace_t(p: place_t)-
as_idaplace_t(p) -> idaplace_t
@param p: place_t *
def as_simpleline_place_t(p: place_t)-
as_simpleline_place_t(p) -> simpleline_place_t
@param p: place_t *
def as_tiplace_t(p: place_t)-
as_tiplace_t(p) -> tiplace_t
@param p: place_t *
Instance variables
var lnnum : int-
Number of line within the current object.
var thisown-
The membership flag
Methods
def adjust(self, ud: void *)-
adjust(self, ud) Adjust the current location to point to a displayable object. This function validates the location and makes sure that it points to an existing object. For example, if the location points to the middle of an instruction, it will be adjusted to point to the beginning of the instruction.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t
def beginning(self, ud: void *)-
beginning(self, ud) -> bool Are we at the first displayable object?.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @return: true if the current location points to the first displayable object
def clone(self)-
clone(self) -> place_t Clone the location.
@return: a pointer to a copy of the current location in dynamic memory
def compare(self, t2: place_t) ‑> int-
compare(self, t2) -> int Deprecated. Please consider compare2(const place_t , void ) instead.
@param t2: (C++: const place_t *) place_t const *
def compare2(self, t2: place_t, arg3: void *)-
compare2(self, t2, arg3) -> int Compare two locations except line numbers (lnnum). This function is used to organize loops. For example, if the user has selected an range, its boundaries are remembered as location objects. Any operation within the selection will have the following look: for ( loc=starting_location; loc < ending_location; loc.next() ) In this loop, the comparison function is used.
@param t2: (C++: const place_t *) the place to compare this one to. @param arg3: void *
def copyfrom(self, _from: place_t)-
copyfrom(self, _from) Copy the specified location object to the current object.
@param from: (C++: const place_t *) place_t const *
def deserialize(self, _in: bytevec_t const &)-
deserialize(self, _in) -> bool De-serialize into this instance. 'pptr' should be incremented by as many bytes as de-serialization consumed.
@param pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. @return: whether de-serialization was successful
def ending(self, ud: void *)-
ending(self, ud) -> bool Are we at the last displayable object?.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @return: true if the current location points to the last displayable object
def enter(self, arg2: uint32 *)-
enter(self, arg2) -> place_t Visit this place, possibly 'unhiding' a section of text. If entering that place required some expanding, a place_t should be returned that represents that section, plus some flags for later use by 'leave()'.
@param out_flags: flags to be used together with the place_t that is returned, in order to restore the section to its original state when leave() is called. @return: a place_t corresponding to the beginning of the section of text that had to be expanded. That place_t's leave() will be called with the flags contained in 'out_flags' when the user navigates away from it.
def generate(self, ud: void *, maxsize: int)-
generate(self, ud, maxsize) -> ([str, …], int, int, int) Generate text lines for the current location.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @param maxsize: (C++: int) the maximum number of lines to generate @return: number of generated lines
def id(self) ‑> int-
id(self) -> int Get the place's ID (i.e., the value returned by register_place_class())
@return: the id
def leave(self, arg2: uint32)-
leave(self, arg2) Leave this place, possibly 'hiding' a section of text that was previously expanded (at enter()-time.)
@param arg2: uint32
def makeplace(self, ud: void *, x: uval_t, lnnum: int)-
makeplace(self, ud, x, lnnum) -> place_t Map a number to a location. When the user clicks on the scrollbar and drags it, we need to determine the location corresponding to the new scrollbar position. This function is used to determine it. It builds a location object for the specified 'x' and returns a pointer to it.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @param x: (C++: uval_t) number to map @param lnnum: (C++: int) line number to initialize 'lnnum' @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES
def name(self)-
name(self) -> char const * Get this place type name. All instances of a given class must return the same string.
@return: the place type name. Please try and pick something that is not too generic, as it might clash w/ other plugins. A good practice is to prefix the class name with the name of your plugin. E.g., "myplugin:srcplace_t".
def next(self, ud: void *)-
next(self, ud) -> bool Move to the next displayable location.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @return: success
def prev(self, ud: void *)-
prev(self, ud) -> bool Move to the previous displayable location.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @return: success
def rebase(self, arg2: segm_move_infos_t const &)-
rebase(self, arg2) -> bool Rebase the place instance
@param arg2: segm_move_infos_t const & @return: true if place was rebased, false otherwise
def serialize(self)-
serialize(self) Serialize this instance. It is fundamental that all instances of a particular subclass of of place_t occupy the same number of bytes when serialized.
def toea(self)-
toea(self) -> ea_t Map the location to an ea_t.
@return: the corresponding ea_t, or BADADDR;
def touval(self, ud: void *)-
touval(self, ud) -> uval_t Map the location to a number. This mapping is used to draw the vertical scrollbar.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t
class quick_widget_commands_t (callback)-
Methods
def add(self, caption, flags, menu_index, icon, emb, shortcut)def populate_popup(self, widget, popup)
class renderer_pos_info_t-
Proxy of C++ renderer_pos_info_t class.
init(self) -> renderer_pos_info_t
Instance variables
var cx : short-
the X coords of the character in the current line. When in graph mode: X coords of the character in 'node'. When in flat mode: X coords of the character in the line, w/o taking scrolling into consideration.
var cy : short-
the Y coords of the character. When in graph mode: Y coords of the character in 'node'. When in flat mode: Line number, starting from the top.
var node : int-
the node, or -1 if the current renderer is not a graph renderer.
var sx : short-
the number of chars that are scrolled (flat mode only)
var thisown-
The membership flag
class section_lines_refs_t (*args)-
Proxy of C++ qvector< twinline_t const * > class.
init(self) -> section_lines_refs_t init(self, x) -> section_lines_refs_t
@param x: qvector< twinline_t const * > const &
Instance variables
var thisown-
The membership flag
Methods
def add_unique(self, x: twinline_t) ‑> bool-
add_unique(self, x) -> bool
@param x: twinline_t const *const &
def at(self, _idx: size_t)-
at(self, _idx) -> twinline_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> qvector< twinline_t const * >::iterator begin(self) -> qvector< twinline_t const * >::const_iterator
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> qvector< twinline_t const * >::iterator end(self) -> qvector< twinline_t const * >::const_iterator
def erase(self, *args)-
erase(self, it) -> qvector< twinline_t const * >::iterator
@param it: qvector< twinline_t const * >::iterator
erase(self, first, last) -> qvector< twinline_t const * >::iterator
@param first: qvector< twinline_t const * >::iterator @param last: qvector< twinline_t const * >::iterator
def extract(self)-
extract(self) -> twinline_t const **
def find(self, *args)-
find(self, x) -> qvector< twinline_t const * >::iterator
@param x: twinline_t const *const &
find(self, x) -> qvector< twinline_t const * >::const_iterator
@param x: twinline_t const *const &
def front(self)def has(self, x: twinline_t) ‑> bool-
has(self, x) -> bool
@param x: twinline_t const *const &
def inject(self, s: twinline_t const **, len: size_t)-
inject(self, s, len)
@param s: twinline_t const ** @param len: size_t
def insert(self, it: qvector< twinline_t const * >::iterator, x: twinline_t)-
insert(self, it, x) -> qvector< twinline_t const * >::iterator
@param it: qvector< twinline_t const * >::iterator @param x: twinline_t const *const &
def pop_back(self)-
pop_back(self)
def push_back(self, *args)-
push_back(self, x)
@param x: twinline_t const *const &
push_back(self) -> twinline_t const *&
def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def resize(self, *args)-
resize(self, _newsize, x)
@param _newsize: size_t @param x: twinline_t const *const &
resize(self, _newsize)
@param _newsize: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: section_lines_refs_t)-
swap(self, r)
@param r: qvector< twinline_t const * > &
def truncate(self)-
truncate(self)
class sections_lines_refs_t (*args)-
Proxy of C++ qvector< section_lines_refs_t > class.
init(self) -> sections_lines_refs_t init(self, x) -> sections_lines_refs_t
@param x: qvector< section_lines_refs_t > const &
Instance variables
var thisown-
The membership flag
Methods
def add_unique(self, x: section_lines_refs_t) ‑> bool-
add_unique(self, x) -> bool
@param x: section_lines_refs_t const &
def at(self, _idx: size_t)-
at(self, _idx) -> section_lines_refs_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> qvector< section_lines_refs_t >::iterator begin(self) -> qvector< section_lines_refs_t >::const_iterator
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> qvector< section_lines_refs_t >::iterator end(self) -> qvector< section_lines_refs_t >::const_iterator
def erase(self, *args)-
erase(self, it) -> qvector< section_lines_refs_t >::iterator
@param it: qvector< section_lines_refs_t >::iterator
erase(self, first, last) -> qvector< section_lines_refs_t >::iterator
@param first: qvector< section_lines_refs_t >::iterator @param last: qvector< section_lines_refs_t >::iterator
def extract(self)-
extract(self) -> section_lines_refs_t
def find(self, *args)-
find(self, x) -> qvector< section_lines_refs_t >::iterator
@param x: section_lines_refs_t const &
find(self, x) -> qvector< section_lines_refs_t >::const_iterator
@param x: section_lines_refs_t const &
def front(self)def grow(self, *args)-
grow(self, x=section_lines_refs_t())
@param x: section_lines_refs_t const &
def has(self, x: section_lines_refs_t) ‑> bool-
has(self, x) -> bool
@param x: section_lines_refs_t const &
def inject(self, s: section_lines_refs_t, len: size_t)-
inject(self, s, len)
@param s: section_lines_refs_t * @param len: size_t
def insert(self, it: qvector< section_lines_refs_t >::iterator, x: section_lines_refs_t)-
insert(self, it, x) -> qvector< section_lines_refs_t >::iterator
@param it: qvector< section_lines_refs_t >::iterator @param x: section_lines_refs_t const &
def pop_back(self)-
pop_back(self)
def push_back(self, *args)-
push_back(self, x)
@param x: section_lines_refs_t const &
push_back(self) -> section_lines_refs_t
def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def resize(self, *args)-
resize(self, _newsize, x)
@param _newsize: size_t @param x: section_lines_refs_t const &
resize(self, _newsize)
@param _newsize: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: sections_lines_refs_t)-
swap(self, r)
@param r: qvector< section_lines_refs_t > &
def truncate(self)-
truncate(self)
class simplecustviewer_t-
The base class for implementing simple custom viewers
Class variables
var UI_Hooks_Trampoline-
Proxy of C++ UI_Hooks class.
Methods
def AddLine(self, line, fgcolor=None, bgcolor=None)-
Adds a colored line to the view @return: Boolean
def ClearLines(self)-
Clears all the lines
def Close(self)-
Destroys the view. One has to call Create() afterwards. Show() can be called and it will call Create() internally. @return: Boolean
def Count(self)-
Returns the number of lines in the view
def Create(self, title)-
Creates the custom view. This should be the first method called after instantiation
@param title: The title of the view @return: Boolean whether it succeeds or fails. It may fail if a window with the same title is already open. In this case better close existing windows
def DelLine(self, lineno)-
Deletes an existing line @return: Boolean
def EditLine(self, lineno, line, fgcolor=None, bgcolor=None)-
Edits an existing line. @return: Boolean
def GetCurrentLine(self, mouse=0, notags=0)-
Returns the current line. @param mouse: Current line at mouse pos @param notags: If True then tag_remove() will be called before returning the line @return: Returns the current line (colored or uncolored) or None on failure
def GetCurrentWord(self, mouse=0)-
Returns the current word @param mouse: Use mouse position or cursor position @return: None if failed or a String containing the current word at mouse or cursor
def GetLine(self, lineno)-
Returns a line @param lineno: The line number @return: Returns a tuple (colored_line, fgcolor, bgcolor) or None
def GetLineNo(self, mouse=0)-
Calls GetPos() and returns the current line number or -1 on failure
def GetPos(self, mouse=0)-
Returns the current cursor or mouse position. @param mouse: return mouse position @return: Returns a tuple (lineno, x, y)
def GetSelection(self)-
Returns the selected range or None @return: - tuple(x1, y1, x2, y2) - None if no selection
def GetWidget(self)-
Return the TWidget underlying this view.
@return: The TWidget underlying this view, or None.
def InsertLine(self, lineno, line, fgcolor=None, bgcolor=None)-
Inserts a line in the given position @return: Boolean
def IsFocused(self)-
Returns True if the current view is the focused view
def Jump(self, lineno, x=0, y=0)def OnPopup(self, form, popup_handle)-
Context menu popup is about to be shown. Create items dynamically if you wish @return: Boolean. True if you handled the event
def PatchLine(self, lineno, offs, value)-
Patches an existing line character at the given offset. This is a low level function. You must know what you're doing
def Refresh(self)def RefreshCurrent(self)-
Refreshes the current line only
def Show(self)-
Shows an already created view. It the view was closed, then it will call Create() for you @return: Boolean
class simpleline_place_t (*args, **kwargs)-
Proxy of C++ simpleline_place_t class.
Ancestors
Instance variables
var n : uint32-
line number
Inherited members
class simpleline_t (*args)-
Proxy of C++ simpleline_t class.
init(self) -> simpleline_t init(self, c, str) -> simpleline_t
@param c: color_t @param str: char const *
init(self, str) -> simpleline_t
@param str: char const *
Instance variables
var bgcolor : bgcolor_t-
line background color
var color : color_t-
line prefix color
var line : qstring-
line text
var thisown-
The membership flag
class strarray_t-
Proxy of C++ strarray_t class.
init(self) -> strarray_t
Instance variables
var code : int-
code
var text : char const *-
text
var thisown-
The membership flag
class sync_source_t (*args)-
Proxy of C++ sync_source_t class.
init(self, _view) -> sync_source_t
@param _view: TWidget const *
init(self, _regname) -> sync_source_t
@param _regname: char const *
Instance variables
var thisown-
The membership flag
Methods
def get_register(self)-
get_register(self) -> char const *
def get_widget(self)-
get_widget(self) -> TWidget const *
def is_register(self) ‑> bool-
is_register(self) -> bool
def is_widget(self) ‑> bool-
is_widget(self) -> bool
class sync_source_vec_t (*args)-
Proxy of C++ qvector< sync_source_t > class.
init(self) -> sync_source_vec_t init(self, x) -> sync_source_vec_t
@param x: qvector< sync_source_t > const &
Subclasses
Instance variables
var thisown-
The membership flag
Methods
def add_unique(self, x: sync_source_t) ‑> bool-
add_unique(self, x) -> bool
@param x: sync_source_t const &
def at(self, _idx: size_t)-
at(self, _idx) -> sync_source_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> sync_source_t
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> sync_source_t
def erase(self, *args)-
erase(self, it) -> sync_source_t
@param it: qvector< sync_source_t >::iterator
erase(self, first, last) -> sync_source_t
@param first: qvector< sync_source_t >::iterator @param last: qvector< sync_source_t >::iterator
def extract(self)-
extract(self) -> sync_source_t
def find(self, *args)-
find(self, x) -> sync_source_t
@param x: sync_source_t const &
def front(self)def has(self, x: sync_source_t) ‑> bool-
has(self, x) -> bool
@param x: sync_source_t const &
def inject(self, s: sync_source_t, len: size_t)-
inject(self, s, len)
@param s: sync_source_t * @param len: size_t
def insert(self, it: sync_source_t, x: sync_source_t)-
insert(self, it, x) -> sync_source_t
@param it: qvector< sync_source_t >::iterator @param x: sync_source_t const &
def pop_back(self)-
pop_back(self)
def push_back(self, x: sync_source_t)-
push_back(self, x)
@param x: sync_source_t const &
def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: sync_source_vec_t)-
swap(self, r)
@param r: qvector< sync_source_t > &
def truncate(self)-
truncate(self)
class synced_group_t-
Proxy of C++ synced_group_t class.
init(self) -> synced_group_t
Ancestors
Methods
def has(self, ss: sync_source_t) ‑> bool-
has(self, ss) -> bool
@param ss: sync_source_t const &
def has_register(self, r: char const *)-
has_register(self, r) -> bool
@param r: char const *
def has_widget(self, v: TWidget const *)-
has_widget(self, v) -> bool
@param v: TWidget const *
Inherited members
class tagged_line_section_t-
Proxy of C++ tagged_line_section_t class.
init(self) -> tagged_line_section_t
Ancestors
Instance variables
var tag : color_t-
tag
Methods
def substr(self, _in: qstring const &, end: tagged_line_section_t = None)-
substr(self, _in, end=None) -> bool
@param in: qstring const & @param end: tagged_line_section_t const *
def valid_in(self, _in: qstring const &)-
valid_in(self, _in) -> bool
@param in: qstring const &
Inherited members
class tagged_line_sections_t-
Proxy of C++ tagged_line_sections_t class.
init(self) -> tagged_line_sections_t
Instance variables
var thisown-
The membership flag
Methods
def nearest_after(self, range: tagged_line_section_t, start: cpidx_t, tag: color_t = 0)-
nearest_after(self, range, start, tag=0) -> tagged_line_section_t
@param range: tagged_line_section_t const & @param start: cpidx_t @param tag: color_t
def nearest_at(self, x: cpidx_t, tag: color_t = 0)-
nearest_at(self, x, tag=0) -> tagged_line_section_t
@param x: cpidx_t @param tag: color_t
def nearest_before(self, range: tagged_line_section_t, start: cpidx_t, tag: color_t = 0)-
nearest_before(self, range, start, tag=0) -> tagged_line_section_t
@param range: tagged_line_section_t const & @param start: cpidx_t @param tag: color_t
def sections_at(self, out: tagged_line_sections_t, x: cpidx_t, tag: color_t = 0)-
sections_at(self, out, x, tag=0)
@param out: tagged_line_sections_t * @param x: cpidx_t @param tag: color_t
class text_t (*args)-
Proxy of C++ qvector< twinline_t > class.
init(self) -> text_t init(self, x) -> text_t
@param x: qvector< twinline_t > const &
Instance variables
var thisown-
The membership flag
Methods
def at(self, _idx: size_t)-
at(self, _idx) -> twinline_t
@param _idx: size_t
def back(self)def begin(self, *args)-
begin(self) -> twinline_t
def capacity(self)-
capacity(self) -> size_t
def clear(self)-
clear(self)
def empty(self) ‑> bool-
empty(self) -> bool
def end(self, *args)-
end(self) -> twinline_t
def erase(self, *args)-
erase(self, it) -> twinline_t
@param it: qvector< twinline_t >::iterator
erase(self, first, last) -> twinline_t
@param first: qvector< twinline_t >::iterator @param last: qvector< twinline_t >::iterator
def extract(self)-
extract(self) -> twinline_t
def front(self)def grow(self, *args)-
grow(self, x=twinline_t())
@param x: twinline_t const &
def inject(self, s: twinline_t, len: size_t)-
inject(self, s, len)
@param s: twinline_t * @param len: size_t
def insert(self, it: twinline_t, x: twinline_t)-
insert(self, it, x) -> twinline_t
@param it: qvector< twinline_t >::iterator @param x: twinline_t const &
def pop_back(self)-
pop_back(self)
def push_back(self, *args)-
push_back(self, x)
@param x: twinline_t const &
push_back(self) -> twinline_t
def qclear(self)-
qclear(self)
def reserve(self, cnt: size_t)-
reserve(self, cnt)
@param cnt: size_t
def resize(self, *args)-
resize(self, _newsize, x)
@param _newsize: size_t @param x: twinline_t const &
resize(self, _newsize)
@param _newsize: size_t
def size(self)-
size(self) -> size_t
def swap(self, r: text_t)-
swap(self, r)
@param r: qvector< twinline_t > &
def truncate(self)-
truncate(self)
class textctrl_info_t (text='', flags=0, tabsize=0)-
Class representing textctrl_info_t
Ancestors
Subclasses
Class variables
var TXTF_ACCEPTTABS-
Tab key inserts 'tabsize' spaces
var TXTF_AUTOINDENT-
Auto-indent on new line
var TXTF_FIXEDFONT-
The control uses IDA's fixed font
var TXTF_MODIFIED-
Gets/sets the modified status
var TXTF_READONLY-
Text cannot be edited (but can be selected and copied)
var TXTF_SELECTED-
Shows the field with its text selected
Instance variables
var flags-
Text control property bits
var tabsize-
how many spaces a single tab will indent
var text-
in, out: text control value
var value-
Alias for the text property
Methods
def assign(self, other)-
Copies the contents of 'other' to 'self'
Inherited members
class tiplace_t (*args, **kwargs)-
Proxy of C++ tiplace_t class.
Ancestors
Instance variables
var cursor : tif_cursor_t-
cursor
var ordinal : uint32-
ordinal
Methods
def calc_udm_offset(self, ud: void const *, p_udmidx: ssize_t * = None, p_bitoff: int * = None)-
calc_udm_offset(self, ud, p_udmidx=None, p_bitoff=None) -> uint64 for structs: calculate the offset that corresponds to the tiplace.
@param ud: (C++: const void ) pointer to user-defined context data. Is supplied by linearray_t @param p_udmidx: (C++: ssize_t ) place to return the index of the current udt member, if any. if there is no member at the current offset, return -1 @param p_bitoff: (C++: int *) place to return the bit offset of the item from the beginning of the bit bucket if there no bitfields, return -1 @return: the current offset or uint64(-1)
def fill_type_ref(self, out: til_type_ref_t, ud: void const *)-
fill_type_ref(self, out, ud) -> bool fill the type information for use in actions
@param out: (C++: til_type_ref_t ) pointer to storage @param ud: (C++: const void ) pointer to user-defined context data. Is supplied by linearray_t @return: success
def get_kind(self, ud: void const *)-
get_kind(self, ud) -> type_t get the kind of type this place represents
@param ud: (C++: const void *) pointer to user-defined context data. Is supplied by linearray_t @return: one of BTF_TYPEDEF, BTF_STRUCT, BTF_UNION, BTF_ENUM or BT_UNK
-
is_footer(self) -> bool
def is_header(self) ‑> bool-
is_header(self) -> bool
def is_index(self) ‑> bool-
is_index(self) -> bool
def reset(self)-
reset(self)
-
set_footer(self)
def set_header(self)-
set_header(self)
def set_index_by_offset(self, ud: void *, offset: uint64)-
set_index_by_offset(self, ud, offset) for structs: calculate the index that corresponds to the offset and set it.
@param ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t @param offset: (C++: uint64) offset of udt member
def valid_ord(self) ‑> bool-
valid_ord(self) -> bool
Inherited members
class twinline_t (*args)-
Proxy of C++ twinline_t class.
init(self) -> twinline_t init(self, t, pc, bc) -> twinline_t
@param t: place_t * @param pc: color_t @param bc: bgcolor_t
Instance variables
var at : place_t *-
location in view
var bg_color : bgcolor_t-
line background color
var is_default : bool-
is this the default line of the current location?
var line : qstring-
line contents
var prefix_color : color_t-
line prefix color
var thisown-
The membership flag
class twinpos_t (*args)-
Proxy of C++ twinpos_t class.
init(self) -> twinpos_t init(self, t) -> twinpos_t
@param t: place_t *
init(self, t, x0) -> twinpos_t
@param t: place_t * @param x0: int
Instance variables
var at : place_t *-
location in view
var thisown-
The membership flag
var x : int-
cursor x
Methods
def place(self, view)def place_as_idaplace_t(self)def place_as_simpleline_place_t(self)def place_as_tiplace_t(self)
class ui_requests_t-
Proxy of C++ ui_requests_t class.
init(self) -> ui_requests_t
Instance variables
var thisown-
The membership flag
class view_mouse_event_location_t-
Proxy of C++ view_mouse_event_location_t class.
init(self) -> view_mouse_event_location_t
Instance variables
var ea : ea_t-
flat view (rtype == TCCRT_FLAT)
var item : selection_item_t const *-
graph views (rtype != TCCRT_FLAT). nullptr if mouse is not currently over an item.
var thisown-
The membership flag
class view_mouse_event_t-
Proxy of C++ view_mouse_event_t class.
init(self) -> view_mouse_event_t
Instance variables
-
represents which mouse button was responsible for generating the event. This field does not care about the current state of the mouse.
var location : view_mouse_event_t::location_t-
location where event was generated
var renderer_pos : renderer_pos_info_t-
position where event was generated, relative to the renderer
var rtype : tcc_renderer_type_t-
type of renderer that received the event
var state : view_event_state_t-
contains information about what buttons are CURRENTLY pressed on the keyboard and mouse. view_mouse_event_t instances created in functions like mouseReleaseEvent() won't contain any information about the mouse, because it has been released.
var thisown-
The membership flag
var x : uint32-
screen x coordinate
var y : uint32-
screen y coordinate
-