Module ida_kernwin
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
AA_CHECKABLE
AA_CHECKED
AA_ICON
AA_LABEL
AA_NONE
AA_SHORTCUT
AA_STATE
AA_TOOLTIP
AA_VISIBILITY
ACF_HAS_FIELD_DIRTREE_SELECTION
ACF_HAS_SELECTION
ACF_HAS_SOURCE
ACF_HAS_TYPE_REF
ACF_XTRN_EA
ADF_CHECKABLE
ADF_CHECKED
ADF_GLOBAL
ADF_NO_HIGHLIGHT
ADF_NO_UNDO
ADF_OT_MASK
ADF_OT_PLUGIN
ADF_OT_PLUGMOD
ADF_OT_PROCMOD
ADF_OWN_HANDLER
AHF_VERSION
AHF_VERSION_MASK
ASKBTN_BTN1
ASKBTN_BTN2
ASKBTN_BTN3
ASKBTN_CANCEL
ASKBTN_NO
ASKBTN_YES
AST_DISABLE
AST_DISABLE_ALWAYS
AST_DISABLE_FOR_IDB
AST_DISABLE_FOR_WIDGET
AST_ENABLE
AST_ENABLE_ALWAYS
AST_ENABLE_FOR_IDB
AST_ENABLE_FOR_WIDGET
BWN_ADDRWATCH
BWN_BOOKMARKS
BWN_BPTS
BWN_CALLS
BWN_CALLS_CALLEES
BWN_CALLS_CALLERS
BWN_CALL_STACK
BWN_CHOOSER
BWN_CLI
BWN_CMDPALCSR
BWN_CMDPALWIN
BWN_CPUREGS
BWN_CUSTVIEW
BWN_CV_LINE_INFOS
BWN_DISASM
BWN_DISASMS
BWN_DISASM_ARROWS
BWN_DUMP
BWN_DUMPS
BWN_EXPORTS
BWN_FRAME
BWN_FUNCS
BWN_IMPORTS
BWN_LOCALS
BWN_LOCTYPS
BWN_MDVIEWCSR
BWN_MODULES
BWN_NAMES
BWN_NAVBAND
BWN_NOTEPAD
BWN_OUTPUT
BWN_PROBS
BWN_PSEUDOCODE
BWN_SCRIPTS_CSR
BWN_SEARCH
BWN_SEARCHS
BWN_SEGREGS
BWN_SEGS
BWN_SELS
BWN_SHORTCUTCSR
BWN_SHORTCUTWIN
BWN_SIGNS
BWN_SNIPPETS
BWN_SNIPPETS_CSR
BWN_SO_OFFSETS
BWN_SO_STRUCTS
BWN_SRCPTHMAP_CSR
BWN_SRCPTHUND_CSR
BWN_STACK
BWN_STKVIEW
BWN_STRINGS
BWN_THREADS
BWN_TILIST
BWN_TILS
BWN_TILVIEW
BWN_TRACE
BWN_UNDOHIST
BWN_UNKNOWN
BWN_WATCH
BWN_XREFS
CB_CANCEL
CB_CLOSE
CB_DESTROYING
CB_INIT
CB_INVISIBLE
CB_NO
CB_YES
CDVF_LINEICONS
CDVF_NOLINES
CDVF_STATUSBAR
CDVH_LINES_ALIGNMENT
CDVH_LINES_CLICK
CDVH_LINES_DBLCLICK
CDVH_LINES_DRAWICON
CDVH_LINES_ICONMARGIN
CDVH_LINES_LINENUM
CDVH_LINES_POPUP
CDVH_LINES_RADIX
CDVH_SRCVIEW
CDVH_USERDATA
CH2_HAS_INODE2INDEX
CH2_LAZY_LOADED
CHCOL_DEC
CHCOL_DEFHIDDEN
CHCOL_DRAGHINT
CHCOL_EA
CHCOL_FNAME
CHCOL_FORMAT
CHCOL_HEX
CHCOL_INODENAME
CHCOL_PATH
CHCOL_PLAIN
CHITEM_BOLD
CHITEM_GRAY
CHITEM_ITALIC
CHITEM_STRIKE
CHITEM_UNDER
CHOOSER_MENU_EDIT
CHOOSER_MENU_JUMP
CHOOSER_MENU_SEARCH
CHOOSER_MULTI_SELECTION
CHOOSER_NOMAINMENU
CHOOSER_NOSTATUSBAR
CHOOSER_NO_SELECTION
CHOOSER_POPUP_MENU
CH_ATTRS
CH_BUILTIN_MASK
CH_BUILTIN_SHIFT
CH_CAN_DEL
CH_CAN_EDIT
CH_CAN_INS
CH_CAN_REFRESH
CH_FORCE_DEFAULT
CH_HAS_DIFF
CH_HAS_DIRTREE
CH_KEEP
CH_MODAL
CH_MULTI
CH_MULTI_EDIT
CH_NOBTNS
CH_NOIDB
CH_NON_PERSISTED_TREE
CH_NO_FILTER
CH_NO_SORT
CH_NO_STATUS_BAR
CH_QFLT
CH_QFTYP_DEFAULT
CH_QFTYP_FUZZY
CH_QFTYP_MASK
CH_QFTYP_NORMAL
CH_QFTYP_REGEX
CH_QFTYP_SHIFT
CH_QFTYP_WHOLE_WORDS
CH_RENAME_IS_EDIT
CH_RESTORE
CH_TM_FOLDERS_ONLY
CH_TM_FULL_TREE
CH_TM_MASK
CH_TM_NO_TREE
CH_TM_SHIFT
CH_UNUSED
CK_EXTRA1
CK_EXTRA10
CK_EXTRA11
CK_EXTRA12
CK_EXTRA13
CK_EXTRA14
CK_EXTRA15
CK_EXTRA16
CK_EXTRA2
CK_EXTRA3
CK_EXTRA4
CK_EXTRA5
CK_EXTRA6
CK_EXTRA7
CK_EXTRA8
CK_EXTRA9
CK_TRACE
CK_TRACE_OVL
CLNL_FINDCMT
CLNL_LTRIM
CLNL_RTRIM
CLNL_TRIM
CREATETB_ADV
CVH_CLICK
CVH_CLOSE
CVH_CURPOS
CVH_DBLCLICK
CVH_HELP
CVH_KEYDOWN
CVH_MOUSEMOVE
CVH_POPUP
CVH_QT_AWARE
CVH_USERDATA
CVLF_USE_MOUSE
CVNF_ACT
CVNF_JUMP
CVNF_LAZY
DEFAULT_PLACE_LNNUM
DP_BEFORE
DP_BOTTOM
DP_FLOATING
DP_INSIDE
DP_LEFT
DP_RIGHT
DP_SZHINT
DP_TAB
DP_TOP
GCRF_ALL
GCRF_CURRENT
GCRF_HEADER
GCRF_HIGH_BIT
GCRF_SELECTION
HIF_IDENTIFIER
HIF_LOCKED
HIF_NOCASE
HIF_REGISTER
HIF_SLOT_0
HIF_SLOT_1
HIF_SLOT_2
HIF_SLOT_3
HIF_SLOT_4
HIF_SLOT_5
HIF_SLOT_6
HIF_SLOT_7
HIF_SLOT_SHIFT
HIF_USE_SLOT
HIST_CMD
HIST_CMT
HIST_DIR
HIST_FILE
HIST_IDENT
HIST_IDENT2
HIST_SEG
HIST_SRCH
HIST_TYPE
IDALIB_API_MAGIC
IDA_DEBUG_ACCESSIBILITY
IDA_DEBUG_ALREADY
IDA_DEBUG_ALWAYS
IDA_DEBUG_APPCALL
IDA_DEBUG_CHECKMEM
IDA_DEBUG_CONFIG
IDA_DEBUG_DBGINFO
IDA_DEBUG_DEBUGGER
IDA_DEBUG_DEMANGLE
IDA_DEBUG_DREFS
IDA_DEBUG_FLIRT
IDA_DEBUG_IDP
IDA_DEBUG_IDS
IDA_DEBUG_INTERNET
IDA_DEBUG_LDR
IDA_DEBUG_LICENSE
IDA_DEBUG_LUMINA
IDA_DEBUG_NETWORK
IDA_DEBUG_NOTIFY
IDA_DEBUG_OFFSET
IDA_DEBUG_PLUGIN
IDA_DEBUG_QUEUE
IDA_DEBUG_RANGECB
IDA_DEBUG_REGEX
IDA_DEBUG_ROLLBACK
IDA_DEBUG_SIMPLEX
IDA_DEBUG_SRCDBG
IDA_DEBUG_SUBPROC
IDA_DEBUG_THEMES
IDA_DEBUG_TIL
IDCHK_ARG
IDCHK_KEY
IDCHK_MAX
IDCHK_OK
IK_ADD
IK_APPS
IK_BACK
IK_BROWSER_BACK
IK_BROWSER_FAVORITES
IK_BROWSER_FORWARD
IK_BROWSER_HOME
IK_BROWSER_REFRESH
IK_BROWSER_SEARCH
IK_BROWSER_STOP
IK_CANCEL
IK_CAPITAL
IK_CLEAR
IK_CONTROL
IK_DECIMAL
IK_DELETE
IK_DIVIDE
IK_DOWN
IK_END
IK_ESCAPE
IK_EXECUTE
IK_F1
IK_F10
IK_F11
IK_F12
IK_F13
IK_F14
IK_F15
IK_F16
IK_F17
IK_F18
IK_F19
IK_F2
IK_F20
IK_F21
IK_F22
IK_F23
IK_F24
IK_F3
IK_F4
IK_F5
IK_F6
IK_F7
IK_F8
IK_F9
IK_HELP
IK_HOME
IK_INSERT
IK_KANA
IK_LAUNCH_APP1
IK_LAUNCH_APP2
IK_LAUNCH_MAIL
IK_LAUNCH_MEDIA_SELECT
IK_LCONTROL
IK_LEFT
IK_LMENU
IK_LSHIFT
IK_LWIN
IK_MEDIA_NEXT_TRACK
IK_MEDIA_PLAY_PAUSE
IK_MEDIA_PREV_TRACK
IK_MEDIA_STOP
IK_MENU
IK_MODECHANGE
IK_MULTIPLY
IK_NEXT
IK_NUMLOCK
IK_NUMPAD0
IK_NUMPAD1
IK_NUMPAD2
IK_NUMPAD3
IK_NUMPAD4
IK_NUMPAD5
IK_NUMPAD6
IK_NUMPAD7
IK_NUMPAD8
IK_NUMPAD9
IK_OEM_1
IK_OEM_102
IK_OEM_2
IK_OEM_3
IK_OEM_4
IK_OEM_5
IK_OEM_6
IK_OEM_7
IK_OEM_CLEAR
IK_OEM_COMMA
IK_OEM_FJ_MASSHOU
IK_OEM_FJ_TOUROKU
IK_OEM_MINUS
IK_OEM_PERIOD
IK_OEM_PLUS
IK_PAUSE
IK_PLAY
IK_PRINT
IK_PRIOR
IK_RCONTROL
IK_RETURN
IK_RIGHT
IK_RMENU
IK_RSHIFT
IK_RWIN
IK_SCROLL
IK_SELECT
IK_SEPARATOR
IK_SHIFT
IK_SLEEP
IK_SNAPSHOT
IK_SPACE
IK_SUBTRACT
IK_TAB
IK_UP
IK_VOLUME_DOWN
IK_VOLUME_MUTE
IK_VOLUME_UP
IK_ZOOM
IWID_ADDRWATCH
IWID_ALL
IWID_BOOKMARKS
IWID_BPTS
IWID_CALLS
IWID_CALLS_CALLEES
IWID_CALLS_CALLERS
IWID_CALL_STACK
IWID_CHOOSER
IWID_CLI
IWID_CMDPALCSR
IWID_CMDPALWIN
IWID_CPUREGS
IWID_CUSTVIEW
IWID_CV_LINE_INFOS
IWID_DISASM
IWID_DISASMS
IWID_DISASM_ARROWS
IWID_DUMP
IWID_DUMPS
IWID_EXPORTS
IWID_FRAME
IWID_FUNCS
IWID_IMPORTS
IWID_LOCALS
IWID_LOCTYPS
IWID_MDVIEWCSR
IWID_MODULES
IWID_NAMES
IWID_NAVBAND
IWID_NOTEPAD
IWID_OUTPUT
IWID_PROBS
IWID_PSEUDOCODE
IWID_SCRIPTS_CSR
IWID_SEARCH
IWID_SEARCHS
IWID_SEGREGS
IWID_SEGS
IWID_SELS
IWID_SHORTCUTCSR
IWID_SHORTCUTWIN
IWID_SIGNS
IWID_SNIPPETS
IWID_SNIPPETS_CSR
IWID_SO_OFFSETS
IWID_SO_STRUCTS
IWID_SRCPTHMAP_CSR
IWID_SRCPTHUND_CSR
IWID_STACK
IWID_STKVIEW
IWID_STRINGS
IWID_THREADS
IWID_TILIST
IWID_TILS
IWID_TILVIEW
IWID_TRACE
IWID_UNDOHIST
IWID_WATCH
IWID_XREFS
LECVT_CANCELED
LECVT_ERROR
LECVT_OK
LECVT_WITHIN_LISTING
LROEF_CPS_RANGE
LROEF_FULL_LINE
LROEF_MASK
MAX_SPACES_ADDED
MFF_FAST
MFF_NOWAIT
MFF_READ
MFF_WRITE
PCF_EA_CAPABLE
PCF_MAKEPLACE_ALLOCATES
REG_HINTS_MARKER
REG_HINTS_MARKER_LEN
RENADDR_HR
RENADDR_IDA
S2EAOPT_NOCALC
SETMENU_APP
SETMENU_ENSURE_SEP
SETMENU_FIRST
SETMENU_IF_ENABLED
SETMENU_INS
SETMENU_POSMASK
SRCDBG_HINTS_MARKER
SRCDBG_HINTS_MARKER_LEN
SVF_COPY_LINES
SVF_LINES_BYPTR
TCCPT_IDAPLACE
TCCPT_INVALID
TCCPT_PLACE
TCCPT_SIMPLELINE_PLACE
TCCPT_TIPLACE
TCCRT_FLAT
TCCRT_GRAPH
TCCRT_INVALID
TCCRT_PROXIMITY
UIJMP_ACTIVATE
UIJMP_ANYVIEW
UIJMP_DONTPUSH
UIJMP_IDAVIEW
UIJMP_IDAVIEW_NEW
UIJMP_VIEWMASK
VES_ALT
VES_CTRL
VES_META
VES_MOUSE_LEFT
VES_MOUSE_MIDDLE
VES_MOUSE_RIGHT
VES_SHIFT
VME_LEFT_BUTTON
VME_MID_BUTTON
VME_RIGHT_BUTTON
VME_UNKNOWN
WCLS_CLOSE_LATER
WCLS_DELETE_LATER
WCLS_DONT_SAVE_SIZE
WCLS_NO_CONTEXT
WCLS_SAVE
WOPN_CLOSED_BY_ESC
WOPN_DP_BEFORE
WOPN_DP_BOTTOM
WOPN_DP_FLOATING
WOPN_DP_INSIDE
WOPN_DP_INSIDE_BEFORE
WOPN_DP_LEFT
WOPN_DP_MASK
WOPN_DP_RIGHT
WOPN_DP_SHIFT
WOPN_DP_SZHINT
WOPN_DP_TAB
WOPN_DP_TAB_BEFORE
WOPN_DP_TOP
WOPN_NOT_CLOSED_BY_ESC
WOPN_PERSIST
WOPN_RESTORE
beep_default
chtype_entry
chtype_enum
chtype_enum_by_value_and_size
chtype_func
chtype_generic
chtype_idasgn
chtype_idatil
chtype_name
chtype_segm
chtype_srcp
chtype_stkvar_xref
chtype_strpath
chtype_struct
chtype_xref
iek_key_press
iek_key_release
iek_mouse_button_press
iek_mouse_button_release
iek_mouse_wheel
iek_shortcut
iek_unknown
mbox_error
mbox_feedback
mbox_filestruct
mbox_hide
mbox_info
mbox_internal
mbox_nomem
mbox_readerror
mbox_replace
mbox_wait
mbox_warning
mbox_writeerror
msg_activated
msg_click
msg_closed
msg_dblclick
msg_deactivated
msg_keydown
nat_auto
nat_cod
nat_cur
nat_dat
nat_err
nat_ext
nat_fun
nat_gap
nat_hlo
nat_last
nat_lib
nat_lum
nat_und
view_activated
view_click
view_close
view_created
view_curpos
view_dblclick
view_deactivated
view_keydown
view_loc_changed
view_mouse_moved
view_mouse_over
view_switched
Functions
TWidget__from_ptrval__(ptrval: size_t) ‑> TWidget *
TWidget__from_ptrval__(ptrval) -> TWidget *
activate_widget(widget: TWidget *, take_focus: bool) ‑> void
activate_widget(widget, take_focus) Activate widget (only gui version) (ui_activate_widget).
add_hotkey(hotkey: char const *, pyfunc: PyObject *) ‑> PyObject *
add_hotkey(hotkey, pyfunc) -> PyCapsule Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed
add_idc_hotkey(hotkey: char const *, idcfunc: char const *) ‑> int
add_idc_hotkey(hotkey, idcfunc) -> int Add hotkey for IDC function (ui_add_idckey).
add_spaces(s: char const *, len: size_t) ‑> PyObject *
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'.
addon_count() ‑> int
addon_count() -> int Get number of installed addons.
analyzer_options() ‑> void
analyzer_options() Allow the user to set analyzer options. (show a dialog box) (ui_analyzer_options)
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).
ask_buttons(*args) ‑> int
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
ask_file(*args) ‑> char *
ask_file(for_saving, defval, format) -> char *
ask_for_feedback(*args) ‑> void
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}.
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
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.
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.
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.
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.
ask_str(defval: qstring *, hist: int, prompt: char const *) ‑> PyObject *
ask_str(defval, hist, prompt) -> str or None Asks for a long text
ask_text(max_size: size_t, defval: char const *, prompt: char const *) ‑> PyObject *
ask_text(max_size, defval, prompt) -> str Asks for a long text
ask_yn(*args) ‑> int
ask_yn(deflt, format) -> int Display a dialog box and get choice from "Yes", "No", "Cancel".
atoea(str: char const *) ‑> uint64 *
atoea(str) -> bool Convert a number in C notation to an address. decimal: 1234 octal: 0123 hexadecimal: 0xabcd binary: 0b00101010
attach_action_to_menu(menupath: char const *, name: char const *, flags: int = 0) ‑> bool
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).
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 name: (C++: const char *) the action name flags: (C++: int) a combination of Set menu flags, to determine menu item position return: success
attach_action_to_popup(widget: TWidget *, popup_handle: TPopupMenu *, name: char const *, popuppath: char const * = None, flags: int = 0) ‑> bool
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'.
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'.) name: (C++: const char *) action name popuppath: (C++: const char *) can be nullptr flags: (C++: int) a combination of SETMENU_ flags (see Set menu flags) return: success
attach_action_to_toolbar(toolbar_name: char const *, name: char const *) ‑> bool
attach_action_to_toolbar(toolbar_name, name) -> bool Attach an action to an existing toolbar (ui_attach_action_to_toolbar).
attach_dynamic_action_to_popup(unused: TWidget *, popup_handle: TPopupMenu *, desc: action_desc_t, popuppath: char const * = None, flags: int = 0) ‑> bool
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)
banner(wait: int) ‑> bool
banner(wait) -> bool Show a banner dialog box (ui_banner).
beep(beep_type: beep_t = 0) ‑> void
beep(beep_type=beep_default) Issue a beeping sound (ui_beep).
call_nav_colorizer(dict: PyObject *, ea: ea_t, nbytes: asize_t) ‑> uint32
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().
cancel_exec_request(req_id: int) ‑> bool
cancel_exec_request(req_id) -> bool Try to cancel an asynchronous exec request (ui_cancel_exec_request).
cancel_thread_exec_requests(tid: __qthread_t) ‑> int
cancel_thread_exec_requests(tid) -> int Try to cancel asynchronous exec requests created by the specified thread.
choose_activate(_self: PyObject *) ‑> void
choose_activate(_self)
choose_choose(_self: PyObject *) ‑> PyObject *
choose_choose(_self) -> PyObject *
choose_close(_self: PyObject *) ‑> void
choose_close(_self)
choose_create_embedded_chobj(_self: PyObject *) ‑> PyObject *
choose_create_embedded_chobj(_self) -> PyObject *
choose_entry(title: char const *) ‑> ea_t
choose_entry(title) -> ea_t Choose an entry point (ui_choose, chtype_entry).
choose_enum(out: tinfo_t, title: char const *, default_ord: uint32) ‑> bool
choose_enum(out, title, default_ord) -> bool Choose an enum (ui_choose, chtype_enum).
choose_enum_by_value(out: tinfo_t, title: char const *, default_ord: uint32, value: uint64, nbytes: int) ‑> uchar *
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.
choose_find(title: char const *) ‑> PyObject *
choose_find(title) -> MyChoose or None
choose_func(title: char const *, default_ea: ea_t) ‑> func_t *
choose_func(title, default_ea) -> func_t * Choose a function (ui_choose, chtype_func).
choose_get_widget(_self: PyObject *) ‑> TWidget *
choose_get_widget(_self) -> TWidget *
choose_idasgn() ‑> PyObject *
choose_idasgn() -> PyObject * Opens the signature chooser
choose_name(title: char const *) ‑> ea_t
choose_name(title) -> ea_t Choose a name (ui_choose, chtype_name).
choose_refresh(_self: PyObject *) ‑> void
choose_refresh(_self)
choose_segm(title: char const *, default_ea: ea_t) ‑> segment_t *
choose_segm(title, default_ea) -> segment_t * Choose a segment (ui_choose, chtype_segm).
choose_srcp(title: char const *) ‑> sreg_range_t *
choose_srcp(title) -> sreg_range_t * Choose a segment register change point (ui_choose, chtype_srcp).
choose_stkvar_xref(pfn: func_t *, srkvar_tid: tid_t) ‑> ea_t
choose_stkvar_xref(pfn, srkvar_tid) -> ea_t Choose an xref to a stack variable (ui_choose, chtype_name).
choose_struct(out: tinfo_t, title: char const *) ‑> bool
choose_struct(out, title) -> bool Choose a structure (ui_choose, chtype_struct).
choose_til() ‑> qstring *
choose_til() -> str Choose a type library (ui_choose, chtype_idatil).
choose_xref(to: ea_t) ‑> ea_t
choose_xref(to) -> ea_t Choose an xref to an address (ui_choose, chtype_xref).
clear_refresh_request(mask: uint64) ‑> void
clear_refresh_request(mask)
close_chooser(title: char const *) ‑> bool
close_chooser(title) -> bool Close a non-modal chooser (ui_close_chooser).
close_widget(widget: TWidget *, options: int) ‑> void
close_widget(widget, options) Close widget (ui_close_widget, only gui version).
clr_cancelled() ‑> void
clr_cancelled() Clear "Cancelled" flag (ui_clr_cancelled)
create_code_viewer(custview: TWidget *, flags: int = 0, parent: TWidget * = None) ‑> TWidget *
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.
create_empty_widget(title: char const *, icon: int = -1) ‑> TWidget *
create_empty_widget(title, icon=-1) -> TWidget Create an empty widget, serving as a container for custom user widgets
create_menu(name: char const *, label: char const *, menupath: char const * = None) ‑> bool
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.
create_toolbar(name: char const *, label: char const *, before: char const * = None, flags: int = 0) ‑> bool
create_toolbar(name, label, before=None, flags=0) -> bool Create a toolbar with the given name, label and optional position
custom_viewer_jump(v: TWidget *, loc: lochist_entry_t const &, flags: uint32 = 0) ‑> bool
custom_viewer_jump(v, loc, flags=0) -> bool Append 'loc' to the viewer's history, and cause the viewer to display it.
del_hotkey(pyctx: PyObject *) ‑> bool
del_hotkey(pyctx) -> bool Deletes a previously registered function hotkey
del_idc_hotkey(hotkey: char const *) ‑> bool
del_idc_hotkey(hotkey) -> bool
delete_menu(name: char const *) ‑> bool
delete_menu(name) -> bool Delete an existing menu
delete_toolbar(name: char const *) ‑> bool
delete_toolbar(name) -> bool Delete an existing toolbar
detach_action_from_menu(menupath: char const *, name: char const *) ‑> bool
detach_action_from_menu(menupath, name) -> bool Detach an action from the menu (ui_detach_action_from_menu).
detach_action_from_popup(widget: TWidget *, name: char const *) ‑> bool
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.
detach_action_from_toolbar(toolbar_name: char const *, name: char const *) ‑> bool
detach_action_from_toolbar(toolbar_name, name) -> bool Detach an action from the toolbar (ui_detach_action_from_toolbar).
display_copyright_warning() ‑> bool
display_copyright_warning() -> bool Display copyright warning (ui_copywarn).
display_widget(widget: TWidget *, options: uint32, dest_ctrl: char const * = None) ‑> void
display_widget(widget, options, dest_ctrl=None) Display a widget, dock it if not done before
ea2str(ea: ea_t) ‑> qstring *
ea2str(ea) -> str Convert linear address to UTF-8 string.
ea_viewer_history_push_and_jump(v: TWidget *, ea: ea_t, x: int, y: int, lnnum: int) ‑> bool
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.
enable_chooser_item_attrs(chooser_caption: char const *, enable: bool) ‑> 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.
error(*args) ‑> void
error(format) Display a fatal message in a message box and quit IDA
execute_sync(py_callable: PyObject *, reqf: int) ‑> ssize_t
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.
execute_ui_requests(py_list: PyObject *) ‑> bool
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.
find_widget(caption: char const *) ‑> TWidget *
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!
formchgcbfa_close(p_fa: size_t, close_normally: int) ‑> void
formchgcbfa_close(p_fa, close_normally)
formchgcbfa_enable_field(p_fa: size_t, fid: int, enable: bool) ‑> bool
formchgcbfa_enable_field(p_fa, fid, enable) -> bool
formchgcbfa_get_field_value(p_fa: size_t, fid: int, ft: int, sz: size_t) ‑> PyObject *
formchgcbfa_get_field_value(p_fa, fid, ft, sz) -> PyObject *
formchgcbfa_get_focused_field(p_fa: size_t) ‑> int
formchgcbfa_get_focused_field(p_fa) -> int
formchgcbfa_move_field(p_fa: size_t, fid: int, x: int, y: int, w: int, h: int) ‑> bool
formchgcbfa_move_field(p_fa, fid, x, y, w, h) -> bool
formchgcbfa_refresh_field(p_fa: size_t, fid: int) ‑> void
formchgcbfa_refresh_field(p_fa, fid)
formchgcbfa_set_field_value(p_fa: size_t, fid: int, ft: int, py_val: PyObject *) ‑> bool
formchgcbfa_set_field_value(p_fa, fid, ft, py_val) -> bool
formchgcbfa_set_focused_field(p_fa: size_t, fid: int) ‑> bool
formchgcbfa_set_focused_field(p_fa, fid) -> bool
formchgcbfa_show_field(p_fa: size_t, fid: int, show: bool) ‑> bool
formchgcbfa_show_field(p_fa, fid, show) -> bool
free_custom_icon(icon_id: int) ‑> void
free_custom_icon(icon_id) Frees an icon loaded with load_custom_icon()
gen_disasm_text(text: disasm_text_t, ea1: ea_t, ea2: ea_t, truncate_lines: bool) ‑> void
gen_disasm_text(text, ea1, ea2, truncate_lines) Generate disassembly text for a range.
get_action_checkable(name: char const *) ‑> bool *
get_action_checkable(name) -> bool Get an action's checkability (ui_get_action_attr).
get_action_checked(name: char const *) ‑> bool *
get_action_checked(name) -> bool Get an action's checked state (ui_get_action_attr).
get_action_icon(name: char const *) ‑> int *
get_action_icon(name) -> bool Get an action's icon (ui_get_action_attr).
get_action_label(name: char const *) ‑> qstring *
get_action_label(name) -> str Get an action's label (ui_get_action_attr).
get_action_shortcut(name: char const *) ‑> qstring *
get_action_shortcut(name) -> str Get an action's shortcut (ui_get_action_attr).
get_action_state(name: char const *) ‑> action_state_t *
get_action_state(name) -> bool Get an action's state (ui_get_action_attr).
get_action_tooltip(name: char const *) ‑> qstring *
get_action_tooltip(name) -> str Get an action's tooltip (ui_get_action_attr).
get_action_visibility(name: char const *) ‑> bool *
get_action_visibility(name) -> bool Get an action's visibility (ui_get_action_attr).
get_active_modal_widget() ‑> TWidget *
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.
get_addon_info(id: char const *, info: addon_info_t) ‑> bool
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
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
get_chooser_data(chooser_caption: char const *, n: int) ‑> PyObject *
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().
get_chooser_obj(chooser_caption: char const *) ‑> void *
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.
get_chooser_rows(out: chooser_row_info_vec_t, chooser_caption: char const *, what: size_t) ‑> bool
get_chooser_rows(out, chooser_caption, what) -> bool Get the chooser contents corresponding to the rows indicated by "what".
get_curline() ‑> char const *
get_curline() -> char const * Get current line from the disassemble window (ui_get_curline).
get_current_viewer() ‑> TWidget *
get_current_viewer() -> TWidget * Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer)
get_current_widget() ‑> TWidget *
get_current_widget() -> TWidget * Get a pointer to the current widget (ui_get_current_widget).
get_cursor() ‑> int *, int *
get_cursor() -> bool Get the cursor position on the screen (ui_get_cursor). note: coordinates are 0-based
get_custom_viewer_curline(custom_viewer: TWidget *, mouse: bool) ‑> char const *
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()
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).
get_custom_viewer_location(out, custom_viewer, flags=0) -> bool
get_custom_viewer_place(custom_viewer: TWidget *, mouse: bool) ‑> int *, int *
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()
get_custom_viewer_place_xcoord(custom_viewer: TWidget *, pline: place_t, pitem: place_t) ‑> int
get_custom_viewer_place_xcoord(custom_viewer, pline, pitem) -> int Get the X position of the item, in the line
-2 if 'pitem' points at the entire line
= 0 for the X coordinate within the pline, where pitem points
get_ea_viewer_history_info(nback: int *, nfwd: int *, v: TWidget *) ‑> bool
get_ea_viewer_history_info(nback, nfwd, v) -> bool Get information about what's in the history (ui_ea_viewer_history_info).
get_hexdump_ea(hexdump_num: int) ‑> ea_t
get_hexdump_ea(hexdump_num) -> ea_t Get the current address in a hex view.
get_highlight(v: TWidget *, in_flags: uint32 = 0) ‑> PyObject *
get_highlight(v, in_flags=0) -> PyObject Returns the currently highlighted identifier and flags
get_icon_id_by_name(icon_name: char const *) ‑> int
get_icon_id_by_name(icon_name) -> int Retrieve the id of the icon by name (ui_get_icon_id_by_name).
get_kernel_version() ‑> size_t
get_kernel_version() -> str Get IDA kernel version (in a string like "5.1").
get_key_code(keyname: char const *) ‑> ushort
get_key_code(keyname) -> ushort Get keyboard key code by its name (ui_get_key_code)
get_navband_ea(pixel: int) ‑> ea_t
get_navband_ea(pixel) -> ea_t Translate the pixel position on the navigation band, into an address.
get_navband_pixel(ea: ea_t) ‑> bool *
get_navband_pixel(ea) -> int Maps an address, onto a pixel coordinate within the navigation band
get_opnum() ‑> int
get_opnum() -> int Get current operand number, -1 means no operand (ui_get_opnum)
get_output_curline(mouse: bool) ‑> qstring *
get_output_curline(mouse) -> str Get current line of output window (ui_get_output_curline).
get_output_cursor() ‑> int *, int *
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
get_output_selected_text() ‑> qstring *
get_output_selected_text() -> str Returns selected text from output window (ui_get_output_selected_text).
get_place_class(out_flags: int *, out_sdk_version: int *, id: int) ‑> place_t const *
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().
get_place_class_id(name: char const *) ‑> int
get_place_class_id(name) -> int Get the place class ID for the place that has been registered as 'name'.
get_place_class_template(id: int) ‑> place_t const *
get_place_class_template(id) -> place_t See get_place_class()
get_registered_actions() ‑> PyObject *
get_registered_actions() -> [str, ...] Get a list of all currently-registered actions
get_screen_ea() ‑> ea_t
get_screen_ea() -> ea_t Get the address at the screen cursor (ui_screenea)
get_synced_group(w: TWidget const *) ‑> synced_group_t const *
get_synced_group(w) -> synced_group_t Get the group of widgets/registers this view is synchronized with
get_tab_size(path: char const *) ‑> int
get_tab_size(path) -> int Get the size of a tab in spaces (ui_get_tab_size).
if nullptr, the default size is returned.
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)
get_user_strlist_options(out: strwinsetup_t *) ‑> void
get_user_strlist_options(out)
get_view_renderer_type(v: TWidget *) ‑> tcc_renderer_type_t
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)
get_viewer_place_type(viewer: TWidget *) ‑> tcc_place_type_t
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).
get_viewer_user_data(viewer: TWidget *) ‑> void *
get_viewer_user_data(viewer) -> void * Get the user data from a custom viewer (ui_get_viewer_user_data)
get_widget_title(widget: TWidget *) ‑> qstring *
get_widget_title(widget) -> str Get the TWidget's title (ui_get_widget_title).
get_widget_type(widget: TWidget *) ‑> twidget_type_t
get_widget_type(widget) -> twidget_type_t Get the type of the TWidget * (ui_get_widget_type).
get_window_id(name: char const * = None) ‑> void *
get_window_id(name=None) Get the system-specific window ID (GUI version only)
hide_wait_box() ‑> void
hide_wait_box() Hide the "Please wait dialog box".
info(*args) ‑> void
info(format)
install_command_interpreter(py_obj: PyObject *) ‑> int
install_command_interpreter(py_obj) -> int Install command line interpreter (ui_install_cli)
internal_register_place_class(tmplate: place_t, flags: int, owner: plugin_t const *, sdk_version: int) ‑> int
internal_register_place_class(tmplate, flags, owner, sdk_version) -> int
is_action_enabled(s: action_state_t) ‑> bool
is_action_enabled(s) -> bool Check if the given action state is one of AST_ENABLE*.
is_chooser_widget(t: twidget_type_t) ‑> bool
is_chooser_widget(t) -> bool Does the given widget type specify a chooser widget?
is_ida_library(path: char *, pathsize: size_t, handle: void **) ‑> bool
is_ida_library(path, pathsize, handle) -> bool
is_idaq() ‑> bool
is_idaq() -> bool Returns True or False depending if IDAPython is hosted by IDAQ
is_idaview(v: TWidget *) ‑> bool
is_idaview(v) -> bool Is the given custom view an idaview? (ui_is_idaview)
is_msg_inited() ‑> bool
is_msg_inited() -> bool Can we use msg() functions?
is_place_class_ea_capable(id: int) ‑> bool
is_place_class_ea_capable(id) -> bool See get_place_class()
is_refresh_requested(mask: uint64) ‑> bool
is_refresh_requested(mask) -> bool Get a refresh request state
is_tif_cursor_footer(c: tif_cursor_t) ‑> bool
is_tif_cursor_footer(c) -> bool
is_tif_cursor_header(c: tif_cursor_t) ‑> bool
is_tif_cursor_header(c) -> bool
is_tif_cursor_index(c: tif_cursor_t) ‑> bool
is_tif_cursor_index(c) -> bool
jumpto(*args) ‑> bool
jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool Set cursor position in custom ida viewer.
jumpto(custom_viewer, place, x, y) -> bool
l_compare2(t1: place_t, t2: place_t, ud: void *) ‑> int
l_compare2(t1, t2, ud) -> int
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).
load_dbg_dbginfo(*args) ‑> bool
load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool Load debugging information from a file.
lookup_key_code(key: int, shift: int, is_qt: bool) ‑> ushort
lookup_key_code(key, shift, is_qt) -> ushort Get shortcut code previously created by ui_get_key_code.
msg(o: PyObject *) ‑> PyObject *
msg(o) -> 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.
This function can be used to debug IDAPython scripts
msg_clear() ‑> void
msg_clear() Clear the "Output" window.
msg_get_lines(count: int = -1) ‑> PyObject *
msg_get_lines(count=-1) -> PyObject Retrieve the last 'count' lines from the output window, in reverse order (from most recent, to least recent)
msg_save(path: qstring &) ‑> bool
msg_save(path) -> bool Save the "Output" window contents into a file
nomem(*args) ‑> void
nomem(format)
open_bookmarks_window(w: TWidget *) ‑> TWidget *
open_bookmarks_window(w) -> TWidget * Open the bookmarks window (ui_open_builtin).
open_bpts_window(ea: ea_t) ‑> TWidget *
open_bpts_window(ea) -> TWidget * Open the breakpoints window (ui_open_builtin).
open_calls_window(ea: ea_t) ‑> TWidget *
open_calls_window(ea) -> TWidget * Open the function calls window (ui_open_builtin).
open_disasm_window(window_title: char const *, ranges: rangevec_t = None) ‑> TWidget *
open_disasm_window(window_title, ranges=None) -> TWidget Open a disassembly view (ui_open_builtin).
open_exports_window(ea: ea_t) ‑> TWidget *
open_exports_window(ea) -> TWidget * Open the exports window (ui_open_builtin).
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().
open_frame_window(pfn: func_t *, offset: uval_t) ‑> TWidget *
open_frame_window(pfn, offset) -> TWidget * Open the frame window for the given function (ui_open_builtin).
nullptr otherwise
open_funcs_window(ea: ea_t) ‑> TWidget *
open_funcs_window(ea) -> TWidget * Open the 'Functions' window (ui_open_builtin).
open_hexdump_window(window_title: char const *) ‑> TWidget *
open_hexdump_window(window_title) -> TWidget * Open a hexdump view (ui_open_builtin).
open_imports_window(ea: ea_t) ‑> TWidget *
open_imports_window(ea) -> TWidget * Open the exports window (ui_open_builtin).
open_loctypes_window(ordinal: int, cursor: tif_cursor_t const * = None) ‑> TWidget *
open_loctypes_window(ordinal, cursor=None) -> TWidget Open the local types window (ui_open_builtin).
open_modules_window() ‑> TWidget *
open_modules_window() -> TWidget * Open the modules window (ui_open_builtin).
open_names_window(ea: ea_t) ‑> TWidget *
open_names_window(ea) -> TWidget * Open the names window (ui_open_builtin).
open_navband_window(ea: ea_t, zoom: int) ‑> TWidget *
open_navband_window(ea, zoom) -> TWidget * Open the navigation band window (ui_open_builtin).
open_notepad_window() ‑> TWidget *
open_notepad_window() -> TWidget * Open the notepad window (ui_open_builtin).
open_problems_window(ea: ea_t) ‑> TWidget *
open_problems_window(ea) -> TWidget * Open the problems window (ui_open_builtin).
open_segments_window(ea: ea_t) ‑> TWidget *
open_segments_window(ea) -> TWidget * Open the segments window (ui_open_builtin).
open_segregs_window(ea: ea_t) ‑> TWidget *
open_segregs_window(ea) -> TWidget * Open the segment registers window (ui_open_builtin).
open_selectors_window() ‑> TWidget *
open_selectors_window() -> TWidget * Open the selectors window (ui_open_builtin).
open_signatures_window() ‑> TWidget *
open_signatures_window() -> TWidget * Open the signatures window (ui_open_builtin).
open_stack_window() ‑> TWidget *
open_stack_window() -> TWidget * Open the call stack window (ui_open_builtin).
open_strings_window(*args) ‑> TWidget *
open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget Open the 'Strings' window (ui_open_builtin).
open_threads_window() ‑> TWidget *
open_threads_window() -> TWidget * Open the threads window (ui_open_builtin).
open_tils_window() ‑> TWidget *
open_tils_window() -> TWidget * Open the type libraries window (ui_open_builtin).
open_trace_window() ‑> TWidget *
open_trace_window() -> TWidget * Open the tracing window (ui_open_builtin).
open_url(url: char const *) ‑> void
open_url(url) Open the given url (ui_open_url)
open_xrefs_window(ea: ea_t) ‑> TWidget *
open_xrefs_window(ea) -> TWidget * Open the cross references window (ui_open_builtin).
place_t_as_idaplace_t(p: place_t) ‑> idaplace_t *
as_idaplace_t(p) -> idaplace_t
place_t_as_simpleline_place_t(p: place_t) ‑> simpleline_place_t *
as_simpleline_place_t(p) -> simpleline_place_t
place_t_as_tiplace_t(p: place_t) ‑> tiplace_t *
as_tiplace_t(p) -> tiplace_t
plgform_close(py_link: PyObject *, options: int) ‑> void
plgform_close(py_link, options)
plgform_get_widget(py_link: PyObject *) ‑> TWidget *
plgform_get_widget(py_link) -> TWidget *
plgform_new() ‑> PyObject *
plgform_new() -> PyObject *
plgform_show(*args) ‑> bool
plgform_show(py_link, py_obj, caption, options=(0x0040 << 16)|0x00000004u) -> bool
process_ui_action(name: char const *, flags: int = 0) ‑> bool
process_ui_action(name, flags=0) -> bool Invokes an IDA UI action by name
py_chooser_base_t_get_row(chobj: chooser_base_t, n: size_t) ‑> PyObject *
py_chooser_base_t_get_row(chobj, n) -> PyObject *
py_get_ask_form() ‑> size_t
py_get_ask_form() -> size_t
py_get_open_form() ‑> size_t
py_get_open_form() -> size_t
py_load_custom_icon_data(data: PyObject *, format: char const *) ‑> int
py_load_custom_icon_data(data, format) -> int
py_load_custom_icon_fn(filename: char const *) ‑> int
py_load_custom_icon_fn(filename) -> int
py_register_compiled_form(py_form: PyObject *) ‑> void
py_register_compiled_form(py_form)
py_unregister_compiled_form(py_form: PyObject *) ‑> void
py_unregister_compiled_form(py_form)
pyidag_bind(_self: PyObject *) ‑> bool
pyidag_bind(_self) -> bool
pyidag_unbind(_self: PyObject *) ‑> bool
pyidag_unbind(_self) -> bool
pyscv_add_line(py_this: PyObject *, py_sl: PyObject *) ‑> bool
pyscv_add_line(py_this, py_sl) -> bool
pyscv_clear_lines(py_this: PyObject *) ‑> PyObject *
pyscv_clear_lines(py_this) -> PyObject *
pyscv_close(py_this: PyObject *) ‑> void
pyscv_close(py_this)
pyscv_count(py_this: PyObject *) ‑> size_t
pyscv_count(py_this) -> size_t
pyscv_del_line(py_this: PyObject *, nline: size_t) ‑> bool
pyscv_del_line(py_this, nline) -> bool
pyscv_edit_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *) ‑> bool
pyscv_edit_line(py_this, nline, py_sl) -> bool
pyscv_get_current_line(py_this: PyObject *, mouse: bool, notags: bool) ‑> PyObject *
pyscv_get_current_line(py_this, mouse, notags) -> PyObject *
pyscv_get_current_word(py_this: PyObject *, mouse: bool) ‑> PyObject *
pyscv_get_current_word(py_this, mouse) -> PyObject *
pyscv_get_line(py_this: PyObject *, nline: size_t) ‑> PyObject *
pyscv_get_line(py_this, nline) -> PyObject *
pyscv_get_pos(py_this: PyObject *, mouse: bool) ‑> PyObject *
pyscv_get_pos(py_this, mouse) -> PyObject *
pyscv_get_selection(py_this: PyObject *) ‑> PyObject *
pyscv_get_selection(py_this) -> PyObject *
pyscv_get_widget(py_this: PyObject *) ‑> TWidget *
pyscv_get_widget(py_this) -> TWidget *
pyscv_init(py_link: PyObject *, title: char const *) ‑> PyObject *
pyscv_init(py_link, title) -> PyObject *
pyscv_insert_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *) ‑> bool
pyscv_insert_line(py_this, nline, py_sl) -> bool
pyscv_is_focused(py_this: PyObject *) ‑> bool
pyscv_is_focused(py_this) -> bool
pyscv_jumpto(py_this: PyObject *, ln: size_t, x: int, y: int) ‑> bool
pyscv_jumpto(py_this, ln, x, y) -> bool
pyscv_patch_line(py_this: PyObject *, nline: size_t, offs: size_t, value: int) ‑> bool
pyscv_patch_line(py_this, nline, offs, value) -> bool
pyscv_refresh(py_this: PyObject *) ‑> bool
pyscv_refresh(py_this) -> bool
pyscv_show(py_this: PyObject *) ‑> bool
pyscv_show(py_this) -> bool
qcleanline(*args) ‑> qstring *
qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> ssize_t Performs some cleanup operations to a line.
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 flags: (C++: uint32) a combination of line cleanup flags. defaults to CLNL_TRIM return: length of line
read_range_selection(v: TWidget *) ‑> ea_t *, ea_t *
read_range_selection(v) -> bool Get the address range for the selected range boundaries, this is the convenient function for read_selection()
read_selection(v: TWidget *, p1: twinpos_t, p2: twinpos_t) ‑> bool
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, ...)
refresh_chooser(title: char const *) ‑> bool
refresh_chooser(title) -> bool Mark a non-modal custom chooser for a refresh (ui_refresh_chooser).
refresh_choosers() ‑> void
refresh_choosers()
refresh_custom_viewer(custom_viewer: TWidget *) ‑> void
refresh_custom_viewer(custom_viewer) Refresh custom ida viewer (ui_refresh_custom_viewer)
refresh_idaview() ‑> void
refresh_idaview() Refresh marked windows (ui_refreshmarked)
refresh_idaview_anyway() ‑> void
refresh_idaview_anyway() Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please consider request_refresh() instead
refresh_navband(force: bool) ‑> void
refresh_navband(force) Refresh navigation band if changed (ui_refresh_navband).
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.
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
register_and_attach_to_menu(menupath: char const *, name: char const *, label: char const *, shortcut: char const *, flags: int, handler: action_handler_t *, owner: void *, action_desc_t_flags: int) ‑> bool
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.
register_timer(interval: int, py_callback: PyObject *) ‑> PyObject *
register_timer(interval, py_callback) -> PyCapsule Register a timer
remove_command_interpreter(cli_idx: int) ‑> void
remove_command_interpreter(cli_idx) Remove command line interpreter (ui_install_cli)
repaint_custom_viewer(custom_viewer: TWidget *) ‑> void
repaint_custom_viewer(custom_viewer) Repaint the given widget immediately (ui_repaint_qwidget)
replace_wait_box(*args) ‑> void
replace_wait_box(format) Replace the label of "Please wait dialog box".
request_refresh(mask: uint64, cnd: bool = True) ‑> void
request_refresh(mask, cnd=True) Request a refresh of a builtin window.
restore_database_snapshot(ss: snapshot_t const *, pyfunc_or_none: PyObject *, pytuple_or_none: PyObject *) ‑> 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.
If the returned value is True then check if the operation succeeded from the callback.
set_cancelled() ‑> void
set_cancelled() Set "Cancelled" flag (ui_set_cancelled)
set_code_viewer_handler(code_viewer: TWidget *, handler_id: custom_viewer_handler_id_t, handler_or_data: void *) ‑> 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).
set_code_viewer_is_source(code_viewer: TWidget *) ‑> bool
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).
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 *) ‑> void
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
set_code_viewer_lines_alignment(code_viewer: TWidget *, align: int) ‑> bool
set_code_viewer_lines_alignment(code_viewer, align) -> bool Set alignment for lines in a code viewer (ui_set_custom_viewer_handler).
set_code_viewer_lines_icon_margin(code_viewer: TWidget *, margin: int) ‑> bool
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).
set_code_viewer_lines_radix(code_viewer: TWidget *, radix: int) ‑> bool
set_code_viewer_lines_radix(code_viewer, radix) -> bool Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler).
set_code_viewer_user_data(code_viewer: TWidget *, ud: void *) ‑> bool
set_code_viewer_user_data(code_viewer, ud) -> bool Set the user data on a code viewer (ui_set_custom_viewer_handler).
set_custom_viewer_qt_aware(custom_viewer: TWidget *) ‑> bool
set_custom_viewer_qt_aware(custom_viewer) -> bool Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler)
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) ‑> bool
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.
Example: set_dock_pos('Structures', 'Enums', DP_RIGHT) <- docks the Structures window to the right of Enums window
set_highlight(viewer: TWidget *, str: char const *, flags: int) ‑> bool
set_highlight(viewer, str, flags) -> bool Set the highlighted identifier in the viewer (ui_set_highlight).
set_nav_colorizer(new_py_colorizer: PyObject *) ‑> PyObject *
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)
set_view_renderer_type(v: TWidget *, rt: tcc_renderer_type_t) ‑> void
set_view_renderer_type(v, rt) Set the type of renderer to use in a view (ui_set_renderer_type)
show_wait_box(message: char const *) ‑> void
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
push the currently-displayed text on a stack
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.
str2ea(*args) ‑> uint64 *
str2ea(str, screen_ea=BADADDR) -> bool Convert string to linear address. Tries to interpret the string as:
"current IP" keyword if supported by assembler (e.g. "$" in x86)
segment:offset expression, where "segment" may be a name or a fixed segment register (e.g. cs, ds)
just segment name/register (translated to segment's start address)
a name in the database (or debug name during debugging)
hexadecimal value without prefix or suffix
+delta or -delta, where numerical 'delta' is added to or subtracted from 'screen_ea'
register name (only during debugging)
if all else fails, try to evaluate 'str' as an IDC expression
str2ea_ex(*args) ‑> uint64 *
str2ea_ex(str, screen_ea=BADADDR, flags=0) -> bool Same as str2ea() but possibly with some steps skipped.
strarray(array: strarray_t, array_size: size_t, code: int) ‑> char const *
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 "".
sync_sources(what: sync_source_t, _with: sync_source_t, sync: bool) ‑> bool
sync_sources(what, _with, sync) -> bool [Un]synchronize sources
take_database_snapshot(ss: snapshot_t *) ‑> PyObject *
take_database_snapshot(ss) -> (bool, NoneType) Take a database snapshot (ui_take_database_snapshot).
in: description, flags
out: filename, id return: success
textctrl_info_t_assign(_self: PyObject *, other: PyObject *) ‑> bool
textctrl_info_t_assign(_self, other) -> bool
textctrl_info_t_create() ‑> PyObject *
textctrl_info_t_create() -> PyObject *
textctrl_info_t_destroy(py_obj: PyObject *) ‑> bool
textctrl_info_t_destroy(py_obj) -> bool
textctrl_info_t_get_clink(_self: PyObject *) ‑> textctrl_info_t *
textctrl_info_t_get_clink(_self) -> textctrl_info_t *
textctrl_info_t_get_clink_ptr(_self: PyObject *) ‑> PyObject *
textctrl_info_t_get_clink_ptr(_self) -> PyObject *
textctrl_info_t_get_flags(_self: PyObject *) ‑> unsigned int
textctrl_info_t_get_flags(_self) -> unsigned int
textctrl_info_t_get_tabsize(_self: PyObject *) ‑> unsigned int
textctrl_info_t_get_tabsize(_self) -> unsigned int
textctrl_info_t_get_text(_self: PyObject *) ‑> char const *
textctrl_info_t_get_text(_self) -> char const *
textctrl_info_t_set_flags(_self: PyObject *, flags: unsigned int) ‑> bool
textctrl_info_t_set_flags(_self, flags) -> bool
textctrl_info_t_set_tabsize(_self: PyObject *, tabsize: unsigned int) ‑> bool
textctrl_info_t_set_tabsize(_self, tabsize) -> bool
textctrl_info_t_set_text(_self: PyObject *, s: char const *) ‑> bool
textctrl_info_t_set_text(_self, s) -> bool
ui_load_new_file(temp_file: qstring *, filename: qstring *, pli: linput_t **, neflags: ushort, ploaders: load_info_t **) ‑> bool
ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool Display a load file dialog and load file (ui_load_file).
ui_run_debugger(dbgopts: char const *, exename: char const *, argc: int, argv: char const *const *) ‑> bool
ui_run_debugger(dbgopts, exename, argc, argv) -> bool Load a debugger plugin and run the specified program (ui_run_dbg).
unmark_selection() ‑> void
unmark_selection() Unmark selection (ui_unmarksel)
unregister_action(name: char const *) ‑> bool
unregister_action(name) -> bool Delete a previously-registered action (ui_unregister_action).
unregister_timer(py_timerctx: PyObject *) ‑> bool
unregister_timer(py_timerctx) -> bool Unregister a timer
update_action_checkable(name: char const *, checkable: bool) ‑> bool
update_action_checkable(name, checkable) -> bool Update an action's checkability (ui_update_action_attr).
update_action_checked(name: char const *, checked: bool) ‑> bool
update_action_checked(name, checked) -> bool Update an action's checked state (ui_update_action_attr).
update_action_icon(name: char const *, icon: int) ‑> bool
update_action_icon(name, icon) -> bool Update an action's icon (ui_update_action_attr).
update_action_label(name: char const *, label: char const *) ‑> bool
update_action_label(name, label) -> bool Update an action's label (ui_update_action_attr).
update_action_shortcut(name: char const *, shortcut: char const *) ‑> bool
update_action_shortcut(name, shortcut) -> bool Update an action's shortcut (ui_update_action_attr).
update_action_state(name: char const *, state: action_state_t) ‑> bool
update_action_state(name, state) -> bool Update an action's state (ui_update_action_attr).
update_action_tooltip(name: char const *, tooltip: char const *) ‑> bool
update_action_tooltip(name, tooltip) -> bool Update an action's tooltip (ui_update_action_attr).
update_action_visibility(name: char const *, visible: bool) ‑> bool
update_action_visibility(name, visible) -> bool Update an action's visibility (ui_update_action_attr).
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
warning(*args) ‑> void
warning(format) Display a message in a message box
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
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.
Class variables
ALL_CHANGED
ALREADY_EXISTS
CHCOL_DEC
CHCOL_DEFHIDDEN
CHCOL_DRAGHINT
CHCOL_EA
CHCOL_FNAME
CHCOL_FORMAT
CHCOL_HEX
CHCOL_INODENAME
CHCOL_PATH
CHCOL_PLAIN
CH_ATTRS
CH_BUILTIN_MASK
CH_BUILTIN_SHIFT
CH_CAN_DEL
CH_CAN_EDIT
CH_CAN_INS
CH_CAN_REFRESH
CH_FORCE_DEFAULT
CH_HAS_DIFF
CH_HAS_DIRTREE
CH_MODAL
CH_MULTI
CH_NOBTNS
CH_NOIDB
CH_NO_STATUS_BAR
CH_QFLT
CH_QFTYP_DEFAULT
CH_QFTYP_FUZZY
CH_QFTYP_MASK
CH_QFTYP_NORMAL
CH_QFTYP_REGEX
CH_QFTYP_SHIFT
CH_QFTYP_WHOLE_WORDS
CH_RENAME_IS_EDIT
CH_RESTORE
EMPTY_CHOOSER
NOTHING_CHANGED
NO_ATTR
NO_SELECTION
SELECTION_CHANGED
UI_Hooks_Trampoline
Proxy of C++ UI_Hooks class.
Methods
Activate(self) Activates a visible chooser
AddCommand(self, caption, flags=4, menu_index=-1, icon=-1, emb=None, shortcut=None)
Close(self) Closes the chooser
Embedded(self, create_chobj=False) Creates an embedded chooser (as opposed to Show()) return: Returns 0 on success or NO_ATTR
GetEmbSelection(self) Deprecated. For embedded choosers, the selection is available through 'Form.EmbeddedChooserControl.selection'
GetWidget(self) Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
OnClose(self) The chooser window is closed.
OnDeleteLine(self, sel) User deleted an element
sel: the current selection return: a tuple (changed, selection)
OnEditLine(self, sel) User asked to edit an element.
sel: the current selection return: a tuple (changed, selection)
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
OnGetEA(self, n) Get the address of an element
When this function returns valid addresses:
If any column has the
CHCOL_FNAME
flag, 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()) n: element number (0-based) return: the effective address, ida_idaapi.BADADDR if the element has no address
OnGetIcon(self, n) Get an icon to associate with the first cell of an element
n: index of the element return: an icon ID
OnGetLine(self, n) Get data for an element
This callback is mandatory
n: the index to fetch data for return: a list of strings
OnGetLineAttr(self, n) Get attributes for an element
n: index of the element return: a tuple (color, flags)
OnGetSize(self) Get the number of elements in the chooser.
This callback is mandatory
return: the number of elements
OnIndexToDiffpos(self, n) Map an element index to a diffpos_t
This callback is mandatory if CH_HAS_DIFF is specified
n: index of the element return: the diffpos
OnIndexToInode(self, n) Map an element index to a dirtree_t inode
This callback is mandatory if CH_HAS_DIRTREE is specified
n: index of the element return: the inode number
OnInit(self) Initialize the chooser and populate it.
This callback is optional
OnInsertLine(self, sel) User asked to insert an element
sel: the current selection return: a tuple (changed, selection)
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.
path: an absolute dirtree path to the directory that is being expanded return: success
OnPopup(self, widget, popup_handle)
OnRefresh(self, sel) The chooser needs to be refreshed. It returns the new positions of the selected items.
sel: the current selection return: a tuple (changed, selection)
OnSelectLine(self, sel) User pressed the enter key, or double-clicked a selection
sel: the current selection return: a tuple (changed, selection)
OnSelectionChange(self, sel) Selection changed
sel: the new selection
Refresh(self) Causes the refresh callback to trigger
Show(self, modal=False) Activates or creates a chooser window 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;
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) line: number of the remaining select item return: list of selected lines numbers (one element or empty)
CustomIDAMemo()
: Proxy of C++ View_Hooks class.
Ancestors (in MRO)
Descendants
Methods
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 }
groups_infos: A list of objects that describe those groups. return: A [, , ...] list of group nodes, or None (failure).
DelNodesInfos(self, *nodes) Delete the properties for the given node(s).
nodes: A list of node IDs
DeleteGroups(self, groups, new_current=-1) Send a request to delete the specified groups in the graph, and perform an animation.
groups: A list of group node numbers. new_current: A node to focus on after the groups have been deleted return: True on success, False otherwise.
GetCurrentRendererType(self)
GetNodeInfo(self, *args) Get the properties for the given node.
ni: A node_info_t instance node: The index of the node. return: success
GetWidget(self) Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
GetWidgetAsGraphViewer(self) Return the graph_viewer_t underlying this view.
return: The graph_viewer_t underlying this view, or None.
Refresh(self) Refreshes the view. This causes the OnRefresh() to be called
SetCurrentRendererType(self, rtype) Set the current view's renderer.
rtype: The renderer type. Should be one of the idaapi.TCCRT_* values.
SetGroupsVisibility(self, groups, expand, new_current=-1) Send a request to expand/collapse the specified groups in the graph, and perform an animation.
groups: A list of group node numbers. expand: True to expand the group, False otherwise. new_current: A node to focus on after the groups have been expanded/collapsed. return: True on success, False otherwise.
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)
node_index: The node index. node_info: An idaapi.node_info_t instance. flags: An OR'ed value of NIF_* values.
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})
values: A dictionary of 'int -> node_info_t' objects.
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).
Class variables
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)
ChkGroupControl
Checkbox group control class. It holds a set of checkbox controls
ChkGroupItemControl
Checkbox group item control
ColorInput
Color button input control
Control
DirInput
Directory browsing control
DropdownListControl
Dropdown control This control allows manipulating a dropdown control
EmbeddedChooserControl
Embedded chooser control. This control links to a Chooser2 control created with the 'embedded=True'
FT_ADDR
FT_ASCII
FT_BIN
FT_BUTTON
FT_CHAR
FT_CHKGRP
FT_CHKGRP2
FT_COLOR
FT_DEC
FT_DIR
FT_DROPDOWN_LIST
FT_ECHOOSER
FT_FILE
FT_FORMCHG
FT_HEX
FT_HTML_LABEL
FT_IDENT
FT_INT64
FT_MULTI_LINE_TEXT
FT_OCT
FT_RADGRP
FT_RADGRP2
FT_RAWHEX
FT_SEG
FT_SHEX
FT_TYPE
FT_UINT64
FileInput
File Open/Save input control
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)`
GroupControl
Base class for group controls
GroupItemControl
Base class for group control items
InputControl
Generic form input control. It could be numeric control, string control, directory/file browsing, etc...
LabelControl
Base class for static label control
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
NumericArgument
Argument representing various integer arguments (ushort, uint32, uint64, etc...) tp: One of Form.FT_XXX
NumericInput
A composite class serving as a base numeric input control class
NumericLabel
Numeric label control
RadGroupControl
Radiobox group control class. It holds a set of radiobox controls
RadGroupItemControl
Radiobox group item control
StringArgument
Argument representing a character buffer
StringInput
Base string input control class. This class also constructs a StringArgument
StringLabel
String label control
Static methods
ControlToFieldTypeIdAndSize(ctrl) Converts a control object to a tuple containing the field id and the associated buffer size
create_string_buffer(value, size=None)
fieldtype_to_ctype(tp, i64=False) Factory method returning a ctype class corresponding to the field type string
Methods
Add(self, name, ctrl, mkattr=True) Low level function. Prefer AddControls() to this function. This function adds one control to the form.
name: Control name ctrl: Control object mkattr: Create control name / control object as a form attribute
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 controls: The control dictionary
Close(self, close_normally) Close the form 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
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
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.)
form: Compiles the form and returns the arguments needed to be passed to ask_form()
Compiled(self) Checks if the form has already been compiled
return: Boolean
EnableField(self, ctrl, enable) Enable or disable an input field return: False - no such control
Execute(self) Displays a modal dialog containing the compiled form. return: 1 - ok ; 0 - cancel
FindControlById(self, id) Finds a control instance given its id
Free(self) Frees all resources associated with a compiled form. Make sure you call this function when you finish using the form.
GetControlValue(self, ctrl) Returns the control's value depending on its type 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
GetFocusedField(self) Get currently focused input field. return: None if no field is selected otherwise the control ID
MoveField(self, ctrl, x, y, w, h) Move/resize an input field
return: False - no such fiel
Open(self) Opens a widget containing the compiled form.
RefreshField(self, ctrl) Refresh a field return: False - no such control
SetControlValue(self, ctrl, value) Set the control's value depending on its type ctrl: Form control instance 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
SetFocusedField(self, ctrl) Set currently focused input field return: False - no such control
ShowField(self, ctrl, show) Show or hide an input field return: False - no such control
IDAViewWrapper(title)
: Deprecated. Use View_Hooks instead.
Ancestors (in MRO)
Methods
Bind(self)
Unbind(self)
PluginForm()
: PluginForm class.
Class variables
VALID_CAPSULE_NAME
WCLS_CLOSE_LATER
WCLS_DELETE_LATER
WCLS_DONT_SAVE_SIZE
WCLS_NO_CONTEXT
WCLS_SAVE
WOPN_CENTERED
WOPN_CREATE_ONLY
WOPN_DP_BEFORE
WOPN_DP_BOTTOM
WOPN_DP_FLOATING
WOPN_DP_INSIDE
WOPN_DP_INSIDE_BEFORE
WOPN_DP_LEFT
WOPN_DP_RIGHT
WOPN_DP_SZHINT
WOPN_DP_TAB
WOPN_DP_TAB_BEFORE
WOPN_DP_TOP
WOPN_MDI
WOPN_MENU
WOPN_ONTOP
WOPN_PERSIST
WOPN_RESTORE
WOPN_TAB
Static methods
FormToPyQtWidget(tw, ctx=<module 'main' (built-in)>) Convert a TWidget* to a QWidget to be used by PyQt
ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
FormToPySideWidget(tw, ctx=<module 'main' (built-in)>) Use this method to convert a TWidget* to a QWidget to be used by PySide
ctx: Context. Reference to a module that already imported QtWidgets module
QtWidgetToTWidget(w, ctx=<module 'main' (built-in)>) Convert a QWidget to a TWidget* to be used by IDA
ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
TWidgetToPyQtWidget(tw, ctx=<module 'main' (built-in)>) Convert a TWidget* to a QWidget to be used by PyQt
ctx: Context. Reference to a module that already imported SIP and QtWidgets modules
TWidgetToPySideWidget(tw, ctx=<module 'main' (built-in)>) Use this method to convert a TWidget* to a QWidget to be used by PySide
ctx: Context. Reference to a module that already imported QtWidgets module
Methods
Close(self, options) Closes the form.
options: Close options (WCLS_SAVE, WCLS_NO_CONTEXT, ...)
return: None
GetWidget(self) Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
OnClose(self, form) Called when the plugin form is closed
return: None
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
Show(self, caption, options=0) Creates the form if not was not created or brings to front if it was already created
caption: The form caption options: One of PluginForm.WOPN_ constants
UI_Hooks()
: Proxy of C++ UI_Hooks class.
Descendants
Methods
create_desktop_widget(self, title: char const *, cfg: jobj_wrapper_t) ‑> PyObject * create_desktop_widget(self, title, cfg) -> PyObject * create a widget, to be placed in the widget tree (at desktop-creation time.)
title: (const char *) cfg: (const jobj_t *) return: TWidget * the created widget, or null
current_widget_changed(self, widget: TWidget *, prev_widget: TWidget *) ‑> void current_widget_changed(self, widget, prev_widget) The currently-active TWidget changed.
widget: (TWidget *) prev_widget: (TWidget *)
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().
database_inited(self, is_new_database: int, idc_script: char const *) ‑> void database_inited(self, is_new_database, idc_script) database initialization has completed. the kernel is about to run idc scripts
is_new_database: (int) 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: bool) ‑> void debugger_menu_change(self, enable) debugger menu modification detected
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")
desktop_applied(self, name: char const *, from_idb: bool, type: int) ‑> void desktop_applied(self, name, from_idb, type) a desktop has been applied
name: (const char *) the desktop name from_idb: (bool) the desktop was stored in the IDB (false if it comes from the registry) type: (int) the desktop type (1-disassembly, 2-debugger, 3-merge)
destroying_plugmod(self, plugmod: plugmod_t, entry: plugin_t const *) ‑> void destroying_plugmod(self, plugmod, entry) The plugin object is about to be destroyed
plugmod: (const plugmod_t *) entry: (const plugin_t *)
destroying_procmod(self, procmod: procmod_t) ‑> void destroying_procmod(self, procmod) The processor module is about to be destroyed
procmod: (const procmod_t *)
finish_populating_widget_popup(self, widget: TWidget *, popup_handle: TPopupMenu *, ctx: action_ctx_base_t = None) ‑> void 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().
widget: (TWidget *) popup_handle: (TPopupMenu *) ctx: (const action_activation_ctx_t *)
get_chooser_item_attrs(self, chooser: chooser_base_t, n: size_t, attrs: chooser_item_attrs_t) ‑> void get_chooser_item_attrs(self, chooser, n, attrs) get item-specific attributes for a chooser. This callback is generated only after enable_chooser_attrs()
chooser: (const chooser_base_t *) n: (::size_t) attrs: (chooser_item_attrs_t *)
get_custom_viewer_hint(self, viewer: TWidget *, place: place_t) ‑> PyObject * 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
viewer: (TWidget*) viewer place: (place_t *) current position in the viewer retval 0: continue collecting hints with other subscribers retval 1: stop collecting hints
get_ea_hint(self, ea: ea_t) ‑> PyObject * 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
ea: (::ea_t) return: true if generated a hint
get_item_hint(self, ea: ea_t, max_lines: int) ‑> PyObject * 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
ea: (ea_t) or item id like a structure or enum member max_lines: (int) maximal number of lines return: true if generated a hint
get_lines_rendering_info(self, out: lines_rendering_output_t, widget: TWidget const *, info: lines_rendering_input_t) ‑> void get_lines_rendering_info(self, out, widget, info) get lines rendering information
out: (lines_rendering_output_t *) widget: (const TWidget *) info: (const lines_rendering_input_t *)
get_widget_config(self, widget: TWidget const *, cfg: jobj_t *) ‑> PyObject * 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)
widget: (const TWidget *) cfg: (jobj_t *)
hook(self) ‑> bool hook(self) -> bool
idcstart(self) ‑> void idcstart(self) Start of IDC engine work.
idcstop(self) ‑> void idcstop(self) Stop of IDC engine work.
initing_database(self) ‑> void initing_database(self) database initialization has started.
return: void See also ui_database_inited. This event is called for both new and old databases.
plugin_loaded(self, plugin_info: plugin_info_t const *) ‑> void plugin_loaded(self, plugin_info) The plugin was loaded in memory.
plugin_info: (const plugin_info_t *)
plugin_unloading(self, plugin_info: plugin_info_t const *) ‑> void plugin_unloading(self, plugin_info) The plugin is about to be unloaded
plugin_info: (const plugin_info_t *)
populating_widget_popup(self, widget: TWidget *, popup_handle: TPopupMenu *, ctx: action_ctx_base_t = None) ‑> void 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.)
widget: (TWidget *) popup_handle: (TPopupMenu *) ctx: (const action_activation_ctx_t *)
postprocess_action(self) ‑> void postprocess_action(self) an ida ui action has been handled
preprocess_action(self, name: char const *) ‑> int preprocess_action(self, name) -> int ida ui is about to handle a user action.
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
range(self) ‑> void 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
ready_to_run(self) ‑> void ready_to_run(self) all UI elements have been initialized. Automatic plugins may hook to this event to perform their tasks.
resume(self) ‑> void resume(self) Resume the suspended graphical interface. Only the text version. Interface should respond to it
saved(self, path: char const *) ‑> void 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.
path: (const char *) the database path
saving(self) ‑> void saving(self) The kernel is flushing its buffers to the disk. The user interface should save its state. Parameters: none Returns: none
screen_ea_changed(self, ea: ea_t, prev_ea: ea_t) ‑> void screen_ea_changed(self, ea, prev_ea) The "current address" changed
ea: (ea_t) prev_ea: (ea_t)
set_widget_config(self, widget: TWidget const *, cfg: jobj_wrapper_t) ‑> void set_widget_config(self, widget, cfg) set the widget configuration
widget: (const TWidget *) cfg: (const jobj_t *)
suspend(self) ‑> void suspend(self) Suspend graphical interface. Only the text version. Interface should respond to it.
unhook(self) ‑> bool unhook(self) -> bool
updated_actions(self) ‑> void updated_actions(self) IDA is done updating actions.
updating_actions(self, ctx: action_ctx_base_t) ‑> void 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.
ctx: (action_update_ctx_t *)
widget_closing(self, widget: TWidget *) ‑> void 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
widget: (TWidget *)
widget_invisible(self, widget: TWidget *) ‑> void widget_invisible(self, widget) TWidget is being closed. Use this event to destroy the window controls
widget: (TWidget *)
widget_visible(self, widget: TWidget *) ‑> void widget_visible(self, widget) TWidget is displayed on the screen. Use this event to populate the window with controls
widget: (TWidget *)
View_Hooks()
: Proxy of C++ View_Hooks class.
Descendants
Methods
hook(self) ‑> bool hook(self) -> bool
unhook(self) ‑> bool unhook(self) -> bool
view_activated(self, view: TWidget *) ‑> void view_activated(self, view) A view is activated
view: (TWidget *)
view_click(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_click(self, view, event) Click event
view: (TWidget *) event: (const view_mouse_event_t *)
view_close(self, view: TWidget *) ‑> void view_close(self, view) View closed
view: (TWidget *)
view_created(self, view: TWidget *) ‑> void view_created(self, view) A view is being created.
view: (TWidget *)
view_curpos(self, view: TWidget *) ‑> void view_curpos(self, view) Cursor position changed
view: (TWidget *)
view_dblclick(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_dblclick(self, view, event) Double click event
view: (TWidget *) event: (const view_mouse_event_t *)
view_deactivated(self, view: TWidget *) ‑> void view_deactivated(self, view) A view is deactivated
view: (TWidget *)
view_keydown(self, view: TWidget *, key: int, state: view_event_state_t) ‑> void view_keydown(self, view, key, state) Key down event
view: (TWidget *) key: (int) state: (::view_event_state_t)
view_loc_changed(self, view: TWidget *, now: lochist_entry_t const *, was: lochist_entry_t const *) ‑> void 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.)
view: (TWidget *) now: (const lochist_entry_t *) was: (const lochist_entry_t *)
view_mouse_moved(self, view: TWidget *, event: view_mouse_event_t) ‑> void view_mouse_moved(self, view, event) The mouse moved on the view
view: (TWidget *) event: (const view_mouse_event_t *)
view_mouse_over(self, view: TWidget *, event: view_mouse_event_t) ‑> void 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.
view: (TWidget *) event: (const view_mouse_event_t *)
view_switched(self, view: TWidget *, rt: tcc_renderer_type_t) ‑> void view_switched(self, view, rt) A view's renderer has changed.
view: (TWidget *) rt: (tcc_renderer_type_t)
action_ctx_base_cur_sel_t()
: Proxy of C++ action_ctx_base_cur_sel_t class.
Instance variables
to: ida_kernwin.twinpos_t
to
Methods
reset(self) ‑> void reset(self)
action_ctx_base_source_t()
: Proxy of C++ action_ctx_base_source_t class.
Instance variables
chooser: chooser_base_t *
chooser
Methods
reset(self) ‑> void reset(self)
action_ctx_base_t()
: Proxy of C++ action_ctx_base_t class.
Instance variables
action: char const *
action
chooser_selection: sizevec_t
chooser_selection
cur_ea: ea_t
cur_ea
cur_extracted_ea
cur_value
cur_fchunk: func_t *
cur_fchunk
cur_flags: uint32
cur_flags
cur_func: func_t *
cur_func
cur_seg: segment_t *
cur_seg
cur_sel: action_ctx_base_cur_sel_t
cur_sel
cur_strmem: member_t *
cur_strmem
cur_struc: struc_t *
cur_struc
cur_value: uval_t
cur_value
dirtree_selection: dirtree_selection_t *
dirtree_selection
focus: TWidget *
focus
form
form_title
form_type
graph_selection: screen_graph_selection_t *
graph_selection
regname: char const *
regname
source: action_ctx_base_source_t
source
type_ref: til_type_ref_t *
type_ref
widget: TWidget *
widget
widget_title: qstring
widget_title
widget_type: twidget_type_t
widget_type
Methods
has_flag(self, flag: uint32) ‑> bool has_flag(self, flag) -> bool Check if the given flag is set.
flag: (C++: uint32)
reset(self) ‑> void reset(self) Invalidate all context info.
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.
Instance variables
cb: int
cb
flags: int
flags
icon: int
icon
label: char const *
label
name: char const *
name
owner: void const *
owner
shortcut: char const *
shortcut
tooltip: char const *
tooltip
action_handler_t()
:
Descendants
Methods
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
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.
addon_info_t()
: Proxy of C++ addon_info_t class.
Instance variables
cb: size_t
cb
custom_data: void const *
custom_data
custom_size: size_t
custom_size
freeform: char const *
freeform
id: char const *
id
name: char const *
name
producer: char const *
producer
url: char const *
url
version: char const *
version
chooser_base_t(*args, **kwargs)
: Proxy of C++ chooser_base_t class.
Class variables
NSTDPOPUPS
POPUP_DEL
POPUP_EDIT
POPUP_INS
POPUP_REFRESH
Instance variables
columns: int
columns
deflt_col: int
deflt_col
header: char const *const *
header
height: int
height
icon: int
icon
popup_names: qstring [chooser_base_t::NSTDPOPUPS]
popup_names
title: char const *
title
width: int
width
widths: int const *
widths
x0: int
x0
x1: int
x1
y0: int
y0
y1: int
y1
Methods
ask_item_attrs(self) ‑> bool ask_item_attrs(self) -> bool should chooser generate ui_get_chooser_item_attrs events?
can_del(self) ‑> bool can_del(self) -> bool
can_edit(self) ‑> bool can_edit(self) -> bool
can_filter(self) ‑> bool can_filter(self) -> bool
can_ins(self) ‑> bool can_ins(self) -> bool is an operation allowed?
can_refresh(self) ‑> bool can_refresh(self) -> bool
can_sort(self) ‑> bool can_sort(self) -> bool
get_builtin_number(self) ‑> uint get_builtin_number(self) -> uint get number of the built-in chooser
get_count(self) ‑> size_t get_count(self) -> size_t get the number of elements in the chooser
get_ea(self, arg2: size_t) ‑> ea_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_FNAME
flag, 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())arg2: size_t return: the effective address, BADADDR if the element has no address
get_quick_filter_initial_mode(self) ‑> int get_quick_filter_initial_mode(self) -> int
get_row(self, n: size_t) ‑> PyObject * get_row(self, n) -> ([str, ...], int, chooser_item_attrs_t) get a description of an element.
n: (C++: size_t) element number (0..get_count()-1)
has_diff_capability(self) ‑> bool has_diff_capability(self) -> bool
has_dirtree(self) ‑> bool has_dirtree(self) -> bool
has_inode_to_index(self) ‑> bool has_inode_to_index(self) -> bool
has_widget_lifecycle(self) ‑> bool has_widget_lifecycle(self) -> bool should chooser object be deleted when the widget gets destroyed?
is_dirtree_persisted(self) ‑> bool is_dirtree_persisted(self) -> bool
is_force_default(self) ‑> bool is_force_default(self) -> bool should selection of the already opened non-modal chooser be changed?
is_lazy_loaded(self) ‑> bool is_lazy_loaded(self) -> bool
is_modal(self) ‑> bool is_modal(self) -> bool is choose modal?
is_multi(self) ‑> bool is_multi(self) -> bool is multi-selection allowed?
is_quick_filter_visible_initially(self) ‑> bool is_quick_filter_visible_initially(self) -> bool
is_same(self, other: chooser_base_t) ‑> bool is_same(self, other) -> bool do the current and the given objects hold the same data?
other: (C++: const chooser_base_t *) chooser_base_t const *
is_status_bar_hidden(self) ‑> bool is_status_bar_hidden(self) -> bool
popup_allowed(self, stdact_idx: int) ‑> bool popup_allowed(self, stdact_idx) -> bool is a standard action allowed?
stdact_idx: (C++: int)
should_rename_trigger_edit(self) ‑> bool should_rename_trigger_edit(self) -> bool
should_restore_geometry(self) ‑> bool should_restore_geometry(self) -> bool
chooser_item_attrs_t()
: Proxy of C++ chooser_item_attrs_t class.
Instance variables
color: bgcolor_t
color
flags: int
flags
Methods
reset(self) ‑> void reset(self)
chooser_row_info_t()
: Proxy of C++ chooser_row_info_t class.
Instance variables
attrs: chooser_item_attrs_t
attrs
icon: int
icon
texts: qstrvec_t
texts
chooser_row_info_vec_t(*args)
: Proxy of C++ qvector< chooser_row_info_t > class.
Methods
add_unique(self, x: chooser_row_info_t) ‑> bool add_unique(self, x) -> bool
x: chooser_row_info_t const &
at(self, _idx: size_t) ‑> chooser_row_info_t const & at(self, _idx) -> chooser_row_info_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< chooser_row_info_t >::const_iterator begin(self) -> chooser_row_info_t
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< chooser_row_info_t >::const_iterator end(self) -> chooser_row_info_t
erase(self, *args) ‑> qvector< chooser_row_info_t >::iterator erase(self, it) -> chooser_row_info_t
it: qvector< chooser_row_info_t >::iterator
erase(self, first, last) -> chooser_row_info_t
first: qvector< chooser_row_info_t >::iterator last: qvector< chooser_row_info_t >::iterator
extract(self) ‑> chooser_row_info_t * extract(self) -> chooser_row_info_t
find(self, *args) ‑> qvector< chooser_row_info_t >::const_iterator find(self, x) -> chooser_row_info_t
x: chooser_row_info_t const &
front(self)
grow(self, *args) ‑> void grow(self, x=chooser_row_info_t())
x: chooser_row_info_t const &
has(self, x: chooser_row_info_t) ‑> bool has(self, x) -> bool
x: chooser_row_info_t const &
inject(self, s: chooser_row_info_t, len: size_t) ‑> void inject(self, s, len)
s: chooser_row_info_t * len: size_t
insert(self, it: chooser_row_info_t, x: chooser_row_info_t) ‑> qvector< chooser_row_info_t >::iterator insert(self, it, x) -> chooser_row_info_t
it: qvector< chooser_row_info_t >::iterator x: chooser_row_info_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> chooser_row_info_t & push_back(self, x)
x: chooser_row_info_t const &
push_back(self) -> chooser_row_info_t
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: chooser_row_info_t const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: chooser_row_info_vec_t) ‑> void swap(self, r)
r: qvector< chooser_row_info_t > &
truncate(self) ‑> void truncate(self)
chooser_stdact_desc_t()
: Proxy of C++ chooser_stdact_desc_t class.
Instance variables
icon: int
icon
label: char const *
label
tooltip: char const *
tooltip
version: int
version
Methods
ucb(self, arg0: action_ctx_base_t) ‑> action_state_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.
arg0: action_update_ctx_t *
cli_t()
: cli_t wrapper class.
Ancestors (in MRO)
Methods
OnCompleteLine(self, prefix, n, line, prefix_start) The user pressed Tab. Find a completion number N for prefix PREFIX
This callback is optional.
prefix: Line prefix at prefix_start (string) n: completion number (int) line: the current line (string) prefix_start: the index where PREFIX starts in LINE (int)
return: None if no completion could be generated otherwise a String with the completion suggestion
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.
line: typed line(s) return: Boolean: True-executed line, False-ask for more lines
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.
line: current input line x: current x coordinate of the cursor sellen: current selection length (usually 0) vkey: virtual key code. if the key has been handled, it should be returned as zero 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)
register(self, flags=0, sname=None, lname=None, hint=None) Registers the CLI.
flags: Feature bits. No bits are defined yet, must be 0 sname: Short name (displayed on the button) lname: Long name (displayed in the menu) hint: Hint for the input line
return: Boolean: True-Success, False-Failed
unregister(self) Unregisters the CLI (if it was registered)
disabled_script_timeout_t()
:
disasm_line_t(*args)
: Proxy of C++ disasm_line_t class.
Instance variables
at: place_t *
at
bg_color: bgcolor_t
bg_color
is_default: bool
is_default
line: qstring
line
prefix_color: color_t
prefix_color
disasm_text_t(*args)
: Proxy of C++ qvector< disasm_line_t > class.
Methods
at(self, _idx: size_t) ‑> disasm_line_t const & at(self, _idx) -> disasm_line_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< disasm_line_t >::const_iterator begin(self) -> disasm_line_t
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< disasm_line_t >::const_iterator end(self) -> disasm_line_t
erase(self, *args) ‑> qvector< disasm_line_t >::iterator erase(self, it) -> disasm_line_t
it: qvector< disasm_line_t >::iterator
erase(self, first, last) -> disasm_line_t
first: qvector< disasm_line_t >::iterator last: qvector< disasm_line_t >::iterator
extract(self) ‑> disasm_line_t * extract(self) -> disasm_line_t
front(self)
grow(self, *args) ‑> void grow(self, x=disasm_line_t())
x: disasm_line_t const &
inject(self, s: disasm_line_t, len: size_t) ‑> void inject(self, s, len)
s: disasm_line_t * len: size_t
insert(self, it: disasm_line_t, x: disasm_line_t) ‑> qvector< disasm_line_t >::iterator insert(self, it, x) -> disasm_line_t
it: qvector< disasm_line_t >::iterator x: disasm_line_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> disasm_line_t & push_back(self, x)
x: disasm_line_t const &
push_back(self) -> disasm_line_t
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: disasm_line_t const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: disasm_text_t) ‑> void swap(self, r)
r: qvector< disasm_line_t > &
truncate(self) ‑> void truncate(self)
idaplace_t(*args, **kwargs)
: Proxy of C++ idaplace_t class.
Ancestors (in MRO)
Instance variables
ea: ea_t
ea
input_event_keyboard_data_t()
: Proxy of C++ input_event_t::input_event_keyboard_data_t class.
Instance variables
key: int
key
text: char [8]
text
input_event_mouse_data_t()
: Proxy of C++ input_event_t::input_event_mouse_data_t class.
Instance variables
button: vme_button_t
button
x: int
x
y: int
y
input_event_shortcut_data_t()
: Proxy of C++ input_event_t::input_event_shortcut_data_t class.
Instance variables
action_name: char const *
action_name
input_event_t()
: Proxy of C++ input_event_t class.
Instance variables
cb: int
cb
keyboard: input_event_t::input_event_keyboard_data_t
keyboard
kind: input_event_kind_t
kind
modifiers: input_event_modifiers_t
modifiers
mouse: input_event_t::input_event_mouse_data_t
mouse
shortcut: input_event_t::input_event_shortcut_data_t
shortcut
source: void *
source
target: TWidget *
target
Methods
get_source_QEvent(self)
get_target_QWidget(self)
jobj_wrapper_t(*args, **kwargs)
: Proxy of C++ jobj_wrapper_t class.
Methods
get_dict(self) ‑> PyObject * get_dict(self) -> dict
line_rendering_output_entries_refs_t(*args)
: Proxy of C++ qvector< line_rendering_output_entry_t * > class.
Methods
add_unique(self, x: line_rendering_output_entry_t) ‑> bool add_unique(self, x) -> bool
x: line_rendering_output_entry_t *const &
at(self, _idx: size_t) ‑> line_rendering_output_entry_t *const & at(self, _idx) -> line_rendering_output_entry_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< line_rendering_output_entry_t * >::const_iterator begin(self) -> qvector< line_rendering_output_entry_t * >::iterator begin(self) -> qvector< line_rendering_output_entry_t * >::const_iterator
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< line_rendering_output_entry_t * >::const_iterator end(self) -> qvector< line_rendering_output_entry_t * >::iterator end(self) -> qvector< line_rendering_output_entry_t * >::const_iterator
erase(self, *args) ‑> qvector< line_rendering_output_entry_t * >::iterator erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator
it: qvector< line_rendering_output_entry_t * >::iterator
erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator
first: qvector< line_rendering_output_entry_t * >::iterator last: qvector< line_rendering_output_entry_t * >::iterator
extract(self) ‑> line_rendering_output_entry_t ** extract(self) -> line_rendering_output_entry_t **
find(self, *args) ‑> qvector< line_rendering_output_entry_t * >::const_iterator find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator
x: line_rendering_output_entry_t *const &
find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator
x: line_rendering_output_entry_t *const &
front(self)
has(self, x: line_rendering_output_entry_t) ‑> bool has(self, x) -> bool
x: line_rendering_output_entry_t *const &
inject(self, s: line_rendering_output_entry_t **, len: size_t) ‑> void inject(self, s, len)
s: line_rendering_output_entry_t ** len: size_t
insert(self, it: qvector< line_rendering_output_entry_t * >::iterator, x: line_rendering_output_entry_t) ‑> qvector< line_rendering_output_entry_t * >::iterator insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator
it: qvector< line_rendering_output_entry_t * >::iterator x: line_rendering_output_entry_t *const &
pop_back(self) ‑> void pop_back(self)
push_back(self, e)
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: line_rendering_output_entry_t *const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: line_rendering_output_entries_refs_t) ‑> void swap(self, r)
r: qvector< line_rendering_output_entry_t * > &
truncate(self) ‑> void truncate(self)
line_rendering_output_entry_t(*args)
: Proxy of C++ line_rendering_output_entry_t class.
Instance variables
bg_color: bgcolor_t
bg_color
cpx: int
cpx
flags: uint32
flags
line: twinline_t const *
line
nchars: int
nchars
Methods
is_bg_color_direct(self) ‑> bool is_bg_color_direct(self) -> bool
is_bg_color_empty(self) ‑> bool is_bg_color_empty(self) -> bool
is_bg_color_key(self) ‑> bool is_bg_color_key(self) -> bool
line_section_t()
: Proxy of C++ line_section_t class.
Descendants
Instance variables
length: cplen_t
length
start: cpidx_t
start
Methods
contains(self, x: cpidx_t) ‑> bool contains(self, x) -> bool
x: cpidx_t
is_closed(self) ‑> bool is_closed(self) -> bool
is_open(self) ‑> bool is_open(self) -> bool
valid(self) ‑> bool valid(self) -> bool
linearray_t(_ud: void *)
: Proxy of C++ linearray_t class.
Methods
beginning(self) ‑> bool beginning(self) -> bool Are we at the beginning?
down(self) ‑> qstring const * down(self) -> qstring const * Get a line from down direction. place is ok BEFORE
ending(self) ‑> bool ending(self) -> bool
get_bg_color(self) ‑> bgcolor_t get_bg_color(self) -> bgcolor_t Get current background color. (the same behavior as with get_place(): good before down() and after up())
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())
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())
get_pfx_color(self) ‑> bgcolor_t get_pfx_color(self) -> bgcolor_t Get current prefix color. (the same behavior as with get_place(): good before down() and after up())
get_place(self) ‑> place_t * 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().
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.
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.
set_userdata(self, userd: void *) ‑> void set_userdata(self, userd) Change the user data.
userd: (C++: void *)
up(self) ‑> qstring const * up(self) -> qstring const * Get a line from up direction. place is ok AFTER
userdata(self) ‑> void * userdata(self) -> void * Get pointer to user data.
lines_rendering_input_t()
: Proxy of C++ lines_rendering_input_t class.
Instance variables
cb: int
cb
sections_lines: sections_lines_refs_t
sections_lines
sync_group: synced_group_t const *
sync_group
lines_rendering_output_t()
: Proxy of C++ lines_rendering_output_t class.
Instance variables
entries: line_rendering_output_entries_refs_t
entries
flags: uint32
flags
Methods
clear(self) ‑> void clear(self)
swap(self, r: lines_rendering_output_t) ‑> void swap(self, r)
r: lines_rendering_output_t &
listing_location_t()
: Proxy of C++ listing_location_t class.
Instance variables
cb: int
cb
loc: lochist_entry_t const *
loc
tagged_sections: tagged_line_sections_t const *
tagged_sections
text: qstring const *
text
place_t(*args, **kwargs)
: Proxy of C++ place_t class.
Descendants
Static methods
as_idaplace_t(p: place_t) ‑> idaplace_t * as_idaplace_t(p) -> idaplace_t
p: place_t *
as_simpleline_place_t(p: place_t) ‑> simpleline_place_t * as_simpleline_place_t(p) -> simpleline_place_t
p: place_t *
as_tiplace_t(p: place_t) ‑> tiplace_t * as_tiplace_t(p) -> tiplace_t
p: place_t *
Instance variables
lnnum: int
lnnum
Methods
adjust(self, ud: void *) ‑> 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.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t
beginning(self, ud: void *) ‑> bool beginning(self, ud) -> bool Are we at the first displayable object?.
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
clone(self) ‑> place_t * clone(self) -> place_t Clone the location.
return: a pointer to a copy of the current location in dynamic memory
compare(self, t2: place_t) ‑> int compare(self, t2) -> int Deprecated. Please consider compare2(const place_t *, void *) instead.
t2: (C++: const place_t *) place_t const *
compare2(self, t2: place_t, arg3: void *) ‑> int 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.
t2: (C++: const place_t *) the place to compare this one to. arg3: void *
copyfrom(self, _from: place_t) ‑> void copyfrom(self, _from) Copy the specified location object to the current object.
from: (C++: const place_t *) place_t const *
deserialize(self, _in: bytevec_t const &) ‑> bool deserialize(self, _in) -> bool De-serialize into this instance. 'pptr' should be incremented by as many bytes as de-serialization consumed.
pptr: (C++: const uchar **) pointer to a serialized representation of a place_t of this type. return: whether de-serialization was successful
ending(self, ud: void *) ‑> bool ending(self, ud) -> bool Are we at the last displayable object?.
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
enter(self, arg2: uint32 *) ‑> place_t * 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()'.
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.
generate(self, ud: void *, maxsize: int) ‑> PyObject * generate(self, ud, maxsize) -> ([str, ...], int, int, int) Generate text lines for the current location.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t maxsize: (C++: int) the maximum number of lines to generate return: number of generated lines
id(self) ‑> int id(self) -> int Get the place's ID (i.e., the value returned by register_place_class())
return: the id
leave(self, arg2: uint32) ‑> void leave(self, arg2) Leave this place, possibly 'hiding' a section of text that was previously expanded (at enter()-time.)
arg2: uint32
makeplace(self, ud: void *, x: uval_t, lnnum: int) ‑> place_t * 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.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t x: (C++: uval_t) number to map lnnum: (C++: int) line number to initialize 'lnnum' return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES
name(self) ‑> char const * 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".
next(self, ud: void *) ‑> bool next(self, ud) -> bool Move to the next displayable location.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t return: success
prev(self, ud: void *) ‑> bool prev(self, ud) -> bool Move to the previous displayable location.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t return: success
rebase(self, arg2: segm_move_infos_t const &) ‑> bool rebase(self, arg2) -> bool Rebase the place instance
arg2: segm_move_infos_t const & return: true if place was rebased, false otherwise
serialize(self) ‑> void 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.
toea(self) ‑> ea_t toea(self) -> ea_t Map the location to an ea_t.
return: the corresponding ea_t, or BADADDR;
touval(self, ud: void *) ‑> uval_t touval(self, ud) -> uval_t Map the location to a number. This mapping is used to draw the vertical scrollbar.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t
quick_widget_commands_t(callback)
:
Methods
add(self, caption, flags, menu_index, icon, emb, shortcut)
populate_popup(self, widget, popup)
renderer_pos_info_t()
: Proxy of C++ renderer_pos_info_t class.
Instance variables
cx: short
cx
cy: short
cy
node: int
node
sx: short
sx
section_lines_refs_t(*args)
: Proxy of C++ qvector< twinline_t const * > class.
Methods
add_unique(self, x: twinline_t) ‑> bool add_unique(self, x) -> bool
x: twinline_t const *const &
at(self, _idx: size_t) ‑> twinline_t const *const & at(self, _idx) -> twinline_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< twinline_t const * >::const_iterator begin(self) -> qvector< twinline_t const * >::iterator begin(self) -> qvector< twinline_t const * >::const_iterator
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< twinline_t const * >::const_iterator end(self) -> qvector< twinline_t const * >::iterator end(self) -> qvector< twinline_t const * >::const_iterator
erase(self, *args) ‑> qvector< twinline_t const * >::iterator erase(self, it) -> qvector< twinline_t const * >::iterator
it: qvector< twinline_t const * >::iterator
erase(self, first, last) -> qvector< twinline_t const * >::iterator
first: qvector< twinline_t const * >::iterator last: qvector< twinline_t const * >::iterator
extract(self) ‑> twinline_t const ** extract(self) -> twinline_t const **
find(self, *args) ‑> qvector< twinline_t const * >::const_iterator find(self, x) -> qvector< twinline_t const * >::iterator
x: twinline_t const *const &
find(self, x) -> qvector< twinline_t const * >::const_iterator
x: twinline_t const *const &
front(self)
has(self, x: twinline_t) ‑> bool has(self, x) -> bool
x: twinline_t const *const &
inject(self, s: twinline_t const **, len: size_t) ‑> void inject(self, s, len)
s: twinline_t const ** len: size_t
insert(self, it: qvector< twinline_t const * >::iterator, x: twinline_t) ‑> qvector< twinline_t const * >::iterator insert(self, it, x) -> qvector< twinline_t const * >::iterator
it: qvector< twinline_t const * >::iterator x: twinline_t const *const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> twinline_t const *& push_back(self, x)
x: twinline_t const *const &
push_back(self) -> twinline_t const *&
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: twinline_t const *const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: section_lines_refs_t) ‑> void swap(self, r)
r: qvector< twinline_t const * > &
truncate(self) ‑> void truncate(self)
sections_lines_refs_t(*args)
: Proxy of C++ qvector< section_lines_refs_t > class.
Methods
add_unique(self, x: section_lines_refs_t) ‑> bool add_unique(self, x) -> bool
x: section_lines_refs_t const &
at(self, _idx: size_t) ‑> section_lines_refs_t const & at(self, _idx) -> section_lines_refs_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< section_lines_refs_t >::const_iterator begin(self) -> qvector< section_lines_refs_t >::iterator begin(self) -> qvector< section_lines_refs_t >::const_iterator
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< section_lines_refs_t >::const_iterator end(self) -> qvector< section_lines_refs_t >::iterator end(self) -> qvector< section_lines_refs_t >::const_iterator
erase(self, *args) ‑> qvector< section_lines_refs_t >::iterator erase(self, it) -> qvector< section_lines_refs_t >::iterator
it: qvector< section_lines_refs_t >::iterator
erase(self, first, last) -> qvector< section_lines_refs_t >::iterator
first: qvector< section_lines_refs_t >::iterator last: qvector< section_lines_refs_t >::iterator
extract(self) ‑> section_lines_refs_t * extract(self) -> section_lines_refs_t
find(self, *args) ‑> qvector< section_lines_refs_t >::const_iterator find(self, x) -> qvector< section_lines_refs_t >::iterator
x: section_lines_refs_t const &
find(self, x) -> qvector< section_lines_refs_t >::const_iterator
x: section_lines_refs_t const &
front(self)
grow(self, *args) ‑> void grow(self, x=section_lines_refs_t())
x: section_lines_refs_t const &
has(self, x: section_lines_refs_t) ‑> bool has(self, x) -> bool
x: section_lines_refs_t const &
inject(self, s: section_lines_refs_t, len: size_t) ‑> void inject(self, s, len)
s: section_lines_refs_t * len: size_t
insert(self, it: qvector< section_lines_refs_t >::iterator, x: section_lines_refs_t) ‑> qvector< section_lines_refs_t >::iterator insert(self, it, x) -> qvector< section_lines_refs_t >::iterator
it: qvector< section_lines_refs_t >::iterator x: section_lines_refs_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> section_lines_refs_t & push_back(self, x)
x: section_lines_refs_t const &
push_back(self) -> section_lines_refs_t
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: section_lines_refs_t const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: sections_lines_refs_t) ‑> void swap(self, r)
r: qvector< section_lines_refs_t > &
truncate(self) ‑> void truncate(self)
simplecustviewer_t()
: The base class for implementing simple custom viewers
Class variables
UI_Hooks_Trampoline
Proxy of C++ UI_Hooks class.
Methods
AddLine(self, line, fgcolor=None, bgcolor=None) Adds a colored line to the view return: Boolean
ClearLines(self) Clears all the lines
Close(self) Destroys the view. One has to call Create() afterwards. Show() can be called and it will call Create() internally. return: Boolean
Count(self) Returns the number of lines in the view
Create(self, title) Creates the custom view. This should be the first method called after instantiation
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
DelLine(self, lineno) Deletes an existing line return: Boolean
EditLine(self, lineno, line, fgcolor=None, bgcolor=None) Edits an existing line. return: Boolean
GetCurrentLine(self, mouse=0, notags=0) Returns the current line. mouse: Current line at mouse pos 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
GetCurrentWord(self, mouse=0) Returns the current word mouse: Use mouse position or cursor position return: None if failed or a String containing the current word at mouse or cursor
GetLine(self, lineno) Returns a line lineno: The line number return: Returns a tuple (colored_line, fgcolor, bgcolor) or None
GetLineNo(self, mouse=0) Calls GetPos() and returns the current line number or -1 on failure
GetPos(self, mouse=0) Returns the current cursor or mouse position. mouse: return mouse position return: Returns a tuple (lineno, x, y)
GetSelection(self) Returns the selected range or None return: - tuple(x1, y1, x2, y2) - None if no selection
GetWidget(self) Return the TWidget underlying this view.
return: The TWidget underlying this view, or None.
InsertLine(self, lineno, line, fgcolor=None, bgcolor=None) Inserts a line in the given position return: Boolean
IsFocused(self) Returns True if the current view is the focused view
Jump(self, lineno, x=0, y=0)
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
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
Refresh(self)
RefreshCurrent(self) Refreshes the current line only
Show(self) Shows an already created view. It the view was closed, then it will call Create() for you return: Boolean
simpleline_place_t(*args, **kwargs)
: Proxy of C++ simpleline_place_t class.
Ancestors (in MRO)
Instance variables
n: uint32
n
simpleline_t(*args)
: Proxy of C++ simpleline_t class.
Instance variables
bgcolor: bgcolor_t
bgcolor
color: color_t
color
line: qstring
line
strarray_t()
: Proxy of C++ strarray_t class.
Instance variables
code: int
code
text: char const *
text
sync_source_t(*args)
: Proxy of C++ sync_source_t class.
Methods
get_register(self) ‑> char const * get_register(self) -> char const *
get_widget(self) ‑> TWidget const * get_widget(self) -> TWidget const *
is_register(self) ‑> bool is_register(self) -> bool
is_widget(self) ‑> bool is_widget(self) -> bool
sync_source_vec_t(*args)
: Proxy of C++ qvector< sync_source_t > class.
Descendants
Methods
add_unique(self, x: sync_source_t) ‑> bool add_unique(self, x) -> bool
x: sync_source_t const &
at(self, _idx: size_t) ‑> sync_source_t const & at(self, _idx) -> sync_source_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< sync_source_t >::const_iterator begin(self) -> sync_source_t
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< sync_source_t >::const_iterator end(self) -> sync_source_t
erase(self, *args) ‑> qvector< sync_source_t >::iterator erase(self, it) -> sync_source_t
it: qvector< sync_source_t >::iterator
erase(self, first, last) -> sync_source_t
first: qvector< sync_source_t >::iterator last: qvector< sync_source_t >::iterator
extract(self) ‑> sync_source_t * extract(self) -> sync_source_t
find(self, *args) ‑> qvector< sync_source_t >::const_iterator find(self, x) -> sync_source_t
x: sync_source_t const &
front(self)
has(self, x: sync_source_t) ‑> bool has(self, x) -> bool
x: sync_source_t const &
inject(self, s: sync_source_t, len: size_t) ‑> void inject(self, s, len)
s: sync_source_t * len: size_t
insert(self, it: sync_source_t, x: sync_source_t) ‑> qvector< sync_source_t >::iterator insert(self, it, x) -> sync_source_t
it: qvector< sync_source_t >::iterator x: sync_source_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, x: sync_source_t) ‑> void push_back(self, x)
x: sync_source_t const &
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: sync_source_vec_t) ‑> void swap(self, r)
r: qvector< sync_source_t > &
truncate(self) ‑> void truncate(self)
synced_group_t()
: Proxy of C++ synced_group_t class.
Ancestors (in MRO)
Methods
has(self, ss: sync_source_t) ‑> bool has(self, ss) -> bool
ss: sync_source_t const &
has_register(self, r: char const *) ‑> bool has_register(self, r) -> bool
r: char const *
has_widget(self, v: TWidget const *) ‑> bool has_widget(self, v) -> bool
v: TWidget const *
tagged_line_section_t()
: Proxy of C++ tagged_line_section_t class.
Ancestors (in MRO)
Instance variables
tag: color_t
tag
Methods
substr(self, _in: qstring const &, end: tagged_line_section_t = None) ‑> bool substr(self, _in, end=None) -> bool
in: qstring const & end: tagged_line_section_t const *
valid_in(self, _in: qstring const &) ‑> bool valid_in(self, _in) -> bool
in: qstring const &
tagged_line_sections_t()
: Proxy of C++ tagged_line_sections_t class.
Methods
nearest_after(self, range: tagged_line_section_t, start: cpidx_t, tag: color_t = 0) ‑> tagged_line_section_t const * nearest_after(self, range, start, tag=0) -> tagged_line_section_t
range: tagged_line_section_t const & start: cpidx_t tag: color_t
nearest_at(self, x: cpidx_t, tag: color_t = 0) ‑> tagged_line_section_t const * nearest_at(self, x, tag=0) -> tagged_line_section_t
x: cpidx_t tag: color_t
nearest_before(self, range: tagged_line_section_t, start: cpidx_t, tag: color_t = 0) ‑> tagged_line_section_t const * nearest_before(self, range, start, tag=0) -> tagged_line_section_t
range: tagged_line_section_t const & start: cpidx_t tag: color_t
sections_at(self, out: tagged_line_sections_t, x: cpidx_t, tag: color_t = 0) ‑> void sections_at(self, out, x, tag=0)
out: tagged_line_sections_t * x: cpidx_t tag: color_t
text_t(*args)
: Proxy of C++ qvector< twinline_t > class.
Methods
at(self, _idx: size_t) ‑> twinline_t const & at(self, _idx) -> twinline_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< twinline_t >::const_iterator begin(self) -> twinline_t
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< twinline_t >::const_iterator end(self) -> twinline_t
erase(self, *args) ‑> qvector< twinline_t >::iterator erase(self, it) -> twinline_t
it: qvector< twinline_t >::iterator
erase(self, first, last) -> twinline_t
first: qvector< twinline_t >::iterator last: qvector< twinline_t >::iterator
extract(self) ‑> twinline_t * extract(self) -> twinline_t
front(self)
grow(self, *args) ‑> void grow(self, x=twinline_t())
x: twinline_t const &
inject(self, s: twinline_t, len: size_t) ‑> void inject(self, s, len)
s: twinline_t * len: size_t
insert(self, it: twinline_t, x: twinline_t) ‑> qvector< twinline_t >::iterator insert(self, it, x) -> twinline_t
it: qvector< twinline_t >::iterator x: twinline_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> twinline_t & push_back(self, x)
x: twinline_t const &
push_back(self) -> twinline_t
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: twinline_t const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: text_t) ‑> void swap(self, r)
r: qvector< twinline_t > &
truncate(self) ‑> void truncate(self)
textctrl_info_t(text='', flags=0, tabsize=0)
: Class representing textctrl_info_t
Ancestors (in MRO)
Descendants
Class variables
TXTF_ACCEPTTABS
TXTF_AUTOINDENT
TXTF_FIXEDFONT
TXTF_MODIFIED
TXTF_READONLY
TXTF_SELECTED
Instance variables
flags
Returns the flags value
tabsize
Returns the tabsize value
text
Sets the text value
value
Sets the text value
Methods
assign(self, other) Copies the contents of 'other' to 'self'
tiplace_t(*args, **kwargs)
: Proxy of C++ tiplace_t class.
Ancestors (in MRO)
Instance variables
cursor: tif_cursor_t
cursor
ordinal: uint32
ordinal
Methods
calc_udm_offset(self, ud: void const *, p_udmidx: ssize_t * = None, p_bitoff: int * = None) ‑> uint64 calc_udm_offset(self, ud, p_udmidx=None, p_bitoff=None) -> uint64 for structs: calculate the offset that corresponds to the tiplace.
ud: (C++: const void *) pointer to user-defined context data. Is supplied by linearray_t 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 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)
fill_type_ref(self, out: til_type_ref_t *, ud: void const *) ‑> bool fill_type_ref(self, out, ud) -> bool fill the type information for use in actions
out: (C++: til_type_ref_t *) pointer to storage ud: (C++: const void *) pointer to user-defined context data. Is supplied by linearray_t return: success
get_kind(self, ud: void const *) ‑> type_t get_kind(self, ud) -> type_t get the kind of type this place represents
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 is_footer(self) -> bool
is_header(self) ‑> bool is_header(self) -> bool
is_index(self) ‑> bool is_index(self) -> bool
reset(self) ‑> void reset(self)
set_footer(self) ‑> void set_footer(self)
set_header(self) ‑> void set_header(self)
set_index_by_offset(self, ud: void *, offset: uint64) ‑> void set_index_by_offset(self, ud, offset) for structs: calculate the index that corresponds to the offset and set it.
ud: (C++: void *) pointer to user-defined context data. Is supplied by linearray_t offset: (C++: uint64) offset of udt member
valid_ord(self) ‑> bool valid_ord(self) -> bool
twinline_t(*args)
: Proxy of C++ twinline_t class.
Instance variables
at: place_t *
at
bg_color: bgcolor_t
bg_color
is_default: bool
is_default
line: qstring
line
prefix_color: color_t
prefix_color
twinpos_t(*args)
: Proxy of C++ twinpos_t class.
Instance variables
at: place_t *
at
x: int
x
Methods
place(self, view)
place_as_idaplace_t(self)
place_as_simpleline_place_t(self)
place_as_tiplace_t(self)
ui_requests_t()
: Proxy of C++ ui_requests_t class.
view_mouse_event_location_t()
: Proxy of C++ view_mouse_event_location_t class.
Instance variables
ea: ea_t
ea
item: selection_item_t const *
item
view_mouse_event_t()
: Proxy of C++ view_mouse_event_t class.
Instance variables
button: vme_button_t
button
location: view_mouse_event_t::location_t
location
renderer_pos: renderer_pos_info_t
renderer_pos
rtype: tcc_renderer_type_t
rtype
state: view_event_state_t
state
x: uint32
x
y: uint32
y
Last updated