Defines the interface between the kernel and the UI. It contains: * the UI dispatcher notification codes (ui_notification_t) * convenience functions for UI services * structures which hold information about the lines (disassembly, structures, enums) generated by the kernel * functions to interact with the user (dialog boxes) * some string and conversion functions.
Installs into .claude/skills of the current project.
Are you the author of 1728 Ida Kernwin 8f55aae5?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-1728-ida-kernwin-8f55aae5)
# ida_kernwin
Defines the interface between the kernel and the UI.
It contains:
* the UI dispatcher notification codes (ui_notification_t)
* convenience functions for UI services
* structures which hold information about the lines (disassembly, structures, enums) generated by the kernel
* functions to interact with the user (dialog boxes)
* some string and conversion functions.
## Constants
- `MAX_SPACES_ADDED`
- `mbox_internal`: internal error
- `mbox_info`
- `mbox_warning`
- `mbox_error`
- `mbox_nomem`
- `mbox_feedback`
- `mbox_readerror`
- `mbox_writeerror`
- `mbox_filestruct`
- `mbox_wait`
- `mbox_hide`
- `mbox_replace`
- `chtype_generic`: the generic choose() function
- `chtype_idasgn`: see choose_idasgn()
- `chtype_entry`: see choose_entry()
- `chtype_name`: see choose_name()
- `chtype_stkvar_xref`: see choose_stkvar_xref()
- `chtype_xref`: see choose_xref()
- `chtype_func`: see choose_func()
- `chtype_segm`: see choose_segm()
- `chtype_strpath`: see choose_struc_path()
- `chtype_idatil`: see choose_til()
- `chtype_srcp`: see choose_srcp()
- `chtype_struct`: see choose_struct()
- `chtype_enum`: see choose_enum()
- `chtype_enum_by_value_and_size`: see choose_enum_by_value()
- `beep_default`
- `TCCRT_INVALID`: invalid
- `TCCRT_FLAT`: flat view
- `TCCRT_GRAPH`: graph view
- `TCCRT_PROXIMITY`: proximity view
- `TCCPT_INVALID`: invalid
- `TCCPT_PLACE`: place_t
- `TCCPT_SIMPLELINE_PLACE`: simpleline_place_t
- `TCCPT_IDAPLACE`: idaplace_t
- `TCCPT_TIPLACE`: tiplace_t
- `VME_UNKNOWN`: unknown mouse button
- `VME_LEFT_BUTTON`: left mouse button
- `VME_RIGHT_BUTTON`: right mouse button
- `VME_MID_BUTTON`: middle mouse button
- `SETMENU_POSMASK`
- `SETMENU_INS`: add menu item before the specified path (default)
- `SETMENU_APP`: add menu item after the specified path
- `SETMENU_FIRST`: add item to the beginning of menu
- `SETMENU_ENSURE_SEP`: make sure there is a separator before the action
- `CREATETB_ADV`: toolbar is for 'advanced mode' only
- `HIF_IDENTIFIER`: text is an identifier (i.e., when searching for the current highlight, SEARCH_IDENT will be used)
- `HIF_REGISTER`: text represents a register (aliases/subregisters will be highlit as well)
- `HIF_LOCKED`: locked; clicking/moving the cursor around doesn't change the highlight
- `HIF_NOCASE`: case insensitive
- `HIF_USE_SLOT`: use the given number, or just use the "floating" highlight
- `HIF_SLOT_SHIFT`: position of the 3 top bits specifying which highlight to use
- `HIF_SLOT_0`: operate on slot 0
- `HIF_SLOT_1`: operate on slot 1
- `HIF_SLOT_2`: operate on slot 2
- `HIF_SLOT_3`: operate on slot 3
- `HIF_SLOT_4`: operate on slot 4
- `HIF_SLOT_5`: operate on slot 5
- `HIF_SLOT_6`: operate on slot 6
- `HIF_SLOT_7`: operate on slot 7
- `REG_HINTS_MARKER`
- `REG_HINTS_MARKER_LEN`
- `SRCDBG_HINTS_MARKER`
- `SRCDBG_HINTS_MARKER_LEN`
- `CDVF_NOLINES`: don't show line numbers
- `CDVF_LINEICONS`: icons can be drawn over the line control
- `CDVF_STATUSBAR`: keep the status bar in the custom viewer
- `IDCHK_OK`: ok
- `IDCHK_ARG`: bad argument(s)
- `IDCHK_KEY`: bad hotkey name
- `IDCHK_MAX`: too many IDC hotkeys
- `WCLS_SAVE`: save state in desktop config
- `WCLS_NO_CONTEXT`: don't change the current context (useful for toolbars)
- `WCLS_DONT_SAVE_SIZE`: don't save size of the window
- `WCLS_DELETE_LATER`: assign the deletion of the widget to the UI loop ///<
- `WCLS_CLOSE_LATER`
- `DP_LEFT`: Dock src_form to the left of dest_form.
- `DP_TOP`: Dock src_form above dest_form.
- `DP_RIGHT`: Dock src_form to the right of dest_form.
- `DP_BOTTOM`: Dock src_form below dest_form.
- `DP_INSIDE`: Create a new tab bar with both src_form and dest_form.
- `DP_TAB`: Place src_form into a tab next to dest_form, if dest_form is in a tab bar (otherwise the same as DP_INSIDE)
- `DP_BEFORE`: Place src_form before dst_form in the tab bar instead of after; used with DP_INSIDE or DP_TAB.
- `DP_FLOATING`: Make src_form floating.
- `DP_SZHINT`: When floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
- `SVF_COPY_LINES`: keep a local copy of '*lines'
- `SVF_LINES_BYPTR`: remember the 'lines' ptr. do not make a copy of '*lines'
- `CVNF_LAZY`: try and move the cursor to a line displaying the place_t if possible. This might disregard the Y position in case of success
- `CVNF_JUMP`: push the current position in this viewer's lochist_t before going to the new location
- `CVNF_ACT`: activate (i.e., switch to) the viewer. Activation is performed before the new lochist_entry_t instance is actually copied to the viewer's lochist_t (otherwise, if the viewer was invisible its on_location_changed() handler wouldn't be called.)
- `WOPN_RESTORE`: if the widget was the only widget in a floating area the last time it was closed, it will be restored as floating, with the same position+size as before
- `WOPN_PERSIST`: widget will remain available when starting or stopping debugger sessions
- `WOPN_CLOSED_BY_ESC`: override idagui.cfg:CLOSED_BY_ESC: esc will close
- `WOPN_NOT_CLOSED_BY_ESC`: override idagui.cfg:CLOSED_BY_ESC: esc will not close
- `WOPN_DP_MASK`
- `WOPN_DP_SHIFT`
- `WOPN_DP_LEFT`: Dock widget to the left of dest_ctrl.
- `WOPN_DP_TOP`: Dock widget above dest_ctrl.
- `WOPN_DP_RIGHT`: Dock widget to the right of dest_ctrl.
- `WOPN_DP_BOTTOM`: Dock widget below dest_ctrl.
- `WOPN_DP_INSIDE`: Create a new tab bar with both widget and dest_ctrl.
- `WOPN_DP_TAB`: Place widget into a tab next to dest_ctrl, if dest_ctrl is in a tab bar (otherwise the same as WOPN_DP_INSIDE)
- `WOPN_DP_BEFORE`: Place widget before dst_form in the tab bar instead of after; used with WOPN_DP_INSIDE and WOPN_DP_TAB
- `WOPN_DP_FLOATING`: Make widget floating.
- `WOPN_DP_SZHINT`: when floating or in a splitter (i.e., not tabbed), use the widget's size hint to determine the best geometry (Qt only)
- `WOPN_DP_INSIDE_BEFORE`
- `WOPN_DP_TAB_BEFORE`
- `RENADDR_IDA`: dialog for "IDA View"
- `RENADDR_HR`: dialog for "Pseudocode"; additional flags:
- `CVLF_USE_MOUSE`: Fetch the location from the mouse, instead of caret in the listing.
- `cvar`
- `IDALIB_API_MAGIC`
- `DEFAULT_PLACE_LNNUM`
- `PCF_EA_CAPABLE`: toea() implementation returns meaningful data
- `PCF_MAKEPLACE_ALLOCATES`: makeplace() returns a freshly allocated (i.e., non-static) instance. All new code should pass that flag to register_place_class(), and the corresponding makeplace() class implementation should return new instances.
- `LECVT_CANCELED`
- `LECVT_ERROR`
- `LECVT_OK`
- `LECVT_WITHIN_LISTING`
- `CK_TRACE`: traced address
- `CK_TRACE_OVL`: overlay trace address
- `CK_EXTRA1`: extra background overlay #1
- `CK_EXTRA2`: extra background overlay #2
- `CK_EXTRA3`: extra background overlay #3
- `CK_EXTRA4`: extra background overlay #4
- `CK_EXTRA5`: extra background overlay #5
- `CK_EXTRA6`: extra background overlay #6
- `CK_EXTRA7`: extra background overlay #7
- `CK_EXTRA8`: extra background overlay #8
- `CK_EXTRA9`: extra background overlay #9
- `CK_EXTRA10`: extra background overlay #10
- `CK_EXTRA11`: extra background overlay #11
- `CK_EXTRA12`: extra background overlay #12
- `CK_EXTRA13`: extra background overlay #13
- `CK_EXTRA14`: extra background overlay #14
- `CK_EXTRA15`: extra background overlay #15
- `CK_EXTRA16`: extra background overlay #16
- `LROEF_MASK`
- `LROEF_FULL_LINE`: full line background
- `LROEF_CPS_RANGE`: background for range of chars
- `BWN_UNKNOWN`: unknown window
- `BWN_EXPORTS`: exports
- `BWN_IMPORTS`: imports
- `BWN_NAMES`: names
- `BWN_FUNCS`: functions
- `BWN_STRINGS`: strings
- `BWN_SEGS`: segments
- `BWN_SEGREGS`: segment registers
- `BWN_SELS`: selectors
- `BWN_SIGNS`: signatures
- `BWN_TILS`: type libraries
- `BWN_TICSR`: type library widget's (e.g., "Local types") chooser
- `BWN_CALLS`: function calls
- `BWN_PROBS`: problems
- `BWN_BPTS`: breakpoints
- `BWN_THREADS`: threads
- `BWN_MODULES`: modules
- `BWN_TRACE`: tracing view
- `BWN_CALL_STACK`: call stack
- `BWN_XREFS`: xrefs
- `BWN_SEARCH`: search results
- `BWN_FRAME`: function frame
- `BWN_NAVBAND`: navigation band
- `BWN_DISASM`: disassembly views
- `BWN_HEXVIEW`: hex view
- `BWN_NOTEPAD`: notepad
- `BWN_OUTPUT`: the text area, in the output window
- `BWN_CLI`: the command-line, in the output window
- `BWN_WATCH`: the 'watches' debugger window
- `BWN_LOCALS`: the 'locals' debugger window
- `BWN_STKVIEW`: the 'Stack view' debugger window
- `BWN_CHOOSER`: a non-builtin chooser
- `BWN_SHORTCUTCSR`: the shortcuts chooser (Qt version only)
- `BWN_SHORTCUTWIN`: the shortcuts window (Qt version only)
- `BWN_CPUREGS`: one of the 'General registers', 'FPU register', ... debugger windows
- `BWN_SO_STRUCTS`: the 'Structure offsets' dialog's 'Structures and Unions' panel
- `BWN_SO_OFFSETS`: the 'Structure offsets' dialog's offset panel
- `BWN_CMDPALCSR`: the command palette chooser (Qt version only)
- `BWN_CMDPALWIN`: the command palette window (Qt version only)
- `BWN_SNIPPETS`: the 'Execute script' window
- `BWN_CUSTVIEW`: custom viewers
- `BWN_ADDRWATCH`: the 'Watch List' window
- `BWN_PSEUDOCODE`: hexrays decompiler views
- `BWN_CALLS_CALLERS`: function calls, callers
- `BWN_CALLS_CALLEES`: function calls, callees
- `BWN_MDVIEWCSR`: lumina metadata view chooser
- `BWN_DISASM_ARROWS`: disassembly arrows widget
- `BWN_CV_LINE_INFOS`: custom viewers' lineinfo widget
- `BWN_SRCPTHMAP_CSR`: "Source paths..."'s path mappings chooser
- `BWN_SRCPTHUND_CSR`: "Source paths..."'s undesired paths chooser
- `BWN_UNDOHIST`: Undo history.
- `BWN_SNIPPETS_CSR`: the list of snippets in the 'Execute script' window
- `BWN_SCRIPTS_CSR`: the "Recent scripts" chooser
- `BWN_BOOKMARKS`: a persistent 'Bookmarks' widget
- `BWN_TILIST`: a type listing widget
- `BWN_TIL_VIEW`: a type library's toplevel widget
- `BWN_TYPE_EDITOR`: a type editor
- `BWN_MICROCODE`: microcode view (part of hexrays decompiler)
- `BWN_XREF_TREE`: xref tree widget
- `IWID_EXPORTS`: exports
- `IWID_IMPORTS`: imports
- `IWID_NAMES`: names
- `IWID_FUNCS`: functions
- `IWID_STRINGS`: strings
- `IWID_SEGS`: segments
- `IWID_SEGREGS`: segment registers
- `IWID_SELS`: selectors
- `IWID_SIGNS`: signatures
- `IWID_TILS`: type libraries
- `IWID_TICSR`: type library widget's (e.g., "Local types") chooser
- `IWID_CALLS`: function calls
- `IWID_PROBS`: problems
- `IWID_BPTS`: breakpoints
- `IWID_THREADS`: threads
- `IWID_MODULES`: modules
- `IWID_TRACE`: tracing view
- `IWID_CALL_STACK`: call stack
- `IWID_XREFS`: xrefs
- `IWID_SEARCH`: search results
- `IWID_FRAME`: function frame
- `IWID_NAVBAND`: navigation band
- `IWID_DISASM`: disassembly views
- `IWID_HEXVIEW`: hex views
- `IWID_NOTEPAD`: notepad
- `IWID_OUTPUT`: output
- `IWID_CLI`: input line
- `IWID_WATCH`: watches
- `IWID_LOCALS`: locals
- `IWID_STKVIEW`: stack view
- `IWID_CHOOSER`: chooser
- `IWID_SHORTCUTCSR`: shortcuts chooser
- `IWID_SHORTCUTWIN`: shortcuts window
- `IWID_CPUREGS`: registers
- `IWID_SO_STRUCTS`: stroff
- `IWID_SO_OFFSETS`: stroff
- `IWID_CMDPALCSR`: command palette
- `IWID_CMDPALWIN`: command palette
- `IWID_SNIPPETS`: snippets
- `IWID_CUSTVIEW`: custom viewers
- `IWID_ADDRWATCH`: address watches
- `IWID_PSEUDOCODE`: decompiler
- `IWID_CALLS_CALLERS`: funcalls, callers
- `IWID_CALLS_CALLEES`: funcalls, callees
- `IWID_MDVIEWCSR`: lumina md view
- `IWID_DISASM_ARROWS`: arrows widget
- `IWID_CV_LINE_INFOS`: lineinfo widget
- `IWID_SRCPTHMAP_CSR`: mappings chooser
- `IWID_SRCPTHUND_CSR`: undesired chooser
- `IWID_UNDOHIST`: Undo history.
- `IWID_SNIPPETS_CSR`: snippets chooser
- `IWID_SCRIPTS_CSR`: recent scripts
- `IWID_BOOKMARKS`: bookmarks list
- `IWID_TILIST`: type listing
- `IWID_TIL_VIEW`: type library's toplevel widget
- `IWID_TYPE_EDITOR`: a type editor
- `IWID_XREF_TREE`: xref tree widget
- `IWID_ANY_LISTING`: anything that uses a listing widget
- `IWID_EA_LISTING`: anything that can be used to represent data/code at an address
- `IWID_ALL`: mask
- `IDA_DEBUG_DREFS`: drefs
- `IDA_DEBUG_OFFSET`: offsets
- `IDA_DEBUG_FLIRT`: flirt
- `IDA_DEBUG_IDP`: idp module
- `IDA_DEBUG_LDR`: ldr module
- `IDA_DEBUG_PLUGIN`: plugin module
- `IDA_DEBUG_IDS`: ids files
- `IDA_DEBUG_CONFIG`: config file
- `IDA_DEBUG_CHECKMEM`: check heap consistency
- `IDA_DEBUG_LICENSE`: licensing
- `IDA_DEBUG_DEMANGLE`: demangler
- `IDA_DEBUG_QUEUE`: queue
- `IDA_DEBUG_ROLLBACK`: rollback
- `IDA_DEBUG_ALREADY`: already data or code
- `IDA_DEBUG_TIL`: type system
- `IDA_DEBUG_NOTIFY`: show all notifications
- `IDA_DEBUG_DEBUGGER`: debugger
- `IDA_DEBUG_APPCALL`: appcall
- `IDA_DEBUG_SRCDBG`: source debugging
- `IDA_DEBUG_ACCESSIBILITY`: accessibility
- `IDA_DEBUG_NETWORK`: network
- `IDA_DEBUG_INTERNET`: internet connection (for API backward compatibility)
- `IDA_DEBUG_SIMPLEX`: full stack analysis
- `IDA_DEBUG_DBGINFO`: handling of debug info (e.g. pdb, dwarf)
- `IDA_DEBUG_LUMINA`: lumina related
- `IDA_DEBUG_THEMES`: themes
- `IDA_DEBUG_REGEX`: regular expression
- `IDA_DEBUG_SUBPROC`: sub process
- `IDA_DEBUG_RANGECB`: range-based entities like segments, functions and so on
- `IDA_DEBUG_ALWAYS`: everything
- `AST_ENABLE_ALWAYS`: enable action and do not call action_handler_t::update() anymore
- `AST_ENABLE_FOR_IDB`: enable action for the current idb. call action_handler_t::update() when a database is opened/closed
- `AST_ENABLE_FOR_WIDGET`: enable action for the current widget. call action_handler_t::update() when a widget gets/loses focus
- `AST_ENABLE`: enable action - call action_handler_t::update() when anything changes
- `AST_DISABLE_ALWAYS`: disable action and do not call action_handler_t::action() anymore
- `AST_DISABLE_FOR_IDB`: analog of AST_ENABLE_FOR_IDB
- `AST_DISABLE_FOR_WIDGET`: analog of AST_ENABLE_FOR_WIDGET
- `AST_DISABLE`: analog of AST_ENABLE
- `CH_MODAL`: Modal chooser.
- `CH_KEEP`: The chooser instance's lifecycle is not tied to the lifecycle of the widget showing its contents. Closing the widget will not destroy the chooser structure. This allows for, e.g., static global chooser instances that don't need to be allocated on the heap. Also stack-allocated chooser instances must set this bit.
- `CH_MULTI`: The chooser will allow multi-selection (only for GUI choosers). This bit is set when using the chooser_multi_t structure.
- `CH_MULTI_EDIT`: Obsolete.
- `CH_NOBTNS`: do not display ok/cancel/help/search buttons. Meaningful only for gui modal windows because non-modal windows do not have any buttons anyway. Text mode does not have them neither.
- `CH_ATTRS`: generate ui_get_chooser_item_attrs (gui only)
- `CH_UNUSED`
- `CH_FORCE_DEFAULT`: if a non-modal chooser was already open, change selection to the default one
- `CH_CAN_INS`: allow to insert new items
- `CH_CAN_DEL`: allow to delete existing item(s)
- `CH_CAN_EDIT`: allow to edit existing item(s)
- `CH_CAN_REFRESH`: allow to refresh chooser
- `CH_QFLT`: open with quick filter enabled and focused
- `CH_QFTYP_SHIFT`
- `CH_QFTYP_DEFAULT`: set quick filtering type to the possible existing default for this chooser
- `CH_QFTYP_NORMAL`: normal (i.e., lexicographical) quick filter type
- `CH_QFTYP_WHOLE_WORDS`: whole words quick filter type
- `CH_QFTYP_REGEX`: regex quick filter type
- `CH_QFTYP_FUZZY`: fuzzy search quick filter type
- `CH_QFTYP_MASK`
- `CH_NO_STATUS_BAR`: don't show a status bar
- `CH_RESTORE`: restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only)
- `CH_RENAME_IS_EDIT`: triggering a 'edit/rename' (i.e., F2 shortcut) on a cell, should call the edit() callback for the corresponding row.
- `CH_BUILTIN_SHIFT`
- `CH_BUILTIN_MASK`: Mask for builtin chooser numbers. Plugins should not use them.
- `CH_HAS_DIRTREE`: The chooser can provide a dirtree_t, meaning a tree-like structure can be provided to the user (instead of a flat table)
- `CH_TM_NO_TREE`: chooser will show in no-tree mode
- `CH_TM_FOLDERS_ONLY`: chooser will show in folders-only mode
- `CH_TM_FULL_TREE`: chooser will show in full-tree mode
- `CH_TM_SHIFT`
- `CH_TM_MASK`
- `CH_HAS_DIFF`: The chooser can be used in a diffing/merging workflow.
- `CH_NO_SORT`: The chooser will not have sorting abilities.
- `CH_NO_FILTER`: The chooser will not have filtering abilities.
- `CH_NON_PERSISTED_TREE`: the chooser tree is not persisted (it is not loaded on startup and is not saved on exit)
- `CH2_LAZY_LOADED`: The chooser is lazy-loaded; it receives the callback do_lazy_load_dir() (only meaningful when CH_HAS_DIRTREE is set)
- `CH2_HAS_INODE2INDEX`
- `CHCOL_PLAIN`: plain string
- `CHCOL_PATH`: file path. TUI IDA will truncate excessive cell lengths starting at their beginning, and prepending the resulting text with "..." order to leave the filename visible
- `CHCOL_HEX`: hexadecimal number
- `CHCOL_DEC`: decimal number
- `CHCOL_EA`: address
- `CHCOL_FNAME`: function name. If a chooser column has this flag set and implements chooser_base_t::get_ea(), rows background colors will be automatically set to match the navigator's "Library function", "Lumina function" and "External symbol" colors
- `CHCOL_FORMAT`: column format mask
- `CHCOL_DEFHIDDEN`: column should be hidden by default
- `CHCOL_DRAGHINT`: the column number that will be used to build hints for the dragging undo label. This should be provided for at most one column for any given chooser.
- `CHCOL_INODENAME`: if CH_HAS_DIRTREE has been specified, this instructs the chooser that this column shows the inode name. This should be provided for at most one column for any given chooser.
- `CHITEM_BOLD`: display the item in bold
- `CHITEM_ITALIC`: display the item in italic
- `CHITEM_UNDER`: underline the item
- `CHITEM_STRIKE`: strikeout the item
- `CHITEM_GRAY`: gray out the item
- `CHOOSER_NOMAINMENU`: do not display main menu
- `CHOOSER_NOSTATUSBAR`: do not display status bar (obsolete. Use CH_NO_STATUS_BAR instead)
- `GCRF_HIGH_BIT`
- `GCRF_HEADER`: Return header texts.
- `GCRF_SELECTION`: Return selected rows.
- `GCRF_CURRENT`: Return the current row.
- `GCRF_ALL`: Return all rows.
- `nat_lib`
- `nat_fun`
- `nat_cod`
- `nat_dat`
- `nat_und`
- `nat_ext`
- `nat_err`
- `nat_gap`
- `nat_cur`
- `nat_auto`
- `nat_lum`
- `nat_hlo`
- `nat_last`
- `CVH_USERDATA`
- `CVH_KEYDOWN`: see custom_viewer_keydown_t
- `CVH_POPUP`: see custom_viewer_popup_t
- `CVH_DBLCLICK`: see custom_viewer_dblclick_t
- `CVH_CURPOS`: see custom_viewer_curpos_t
- `CVH_CLOSE`: see custom_viewer_close_t
- `CVH_CLICK`: see custom_viewer_click_t
- `CVH_QT_AWARE`: see set_custom_viewer_qt_aware()
- `CVH_HELP`: see custom_viewer_help_t
- `CVH_MOUSEMOVE`: see custom_viewer_mouse_moved_t
- `CDVH_USERDATA`: see set_code_viewer_user_data()
- `CDVH_SRCVIEW`: see set_code_viewer_is_source()
- `CDVH_LINES_CLICK`: see code_viewer_lines_click_t
- `CDVH_LINES_DBLCLICK`: see code_viewer_lines_click_t
- `CDVH_LINES_POPUP`: see code_viewer_lines_click_t
- `CDVH_LINES_DRAWICON`: see code_viewer_lines_icon_t
- `CDVH_LINES_LINENUM`: see code_viewer_lines_linenum_t
- `CDVH_LINES_ICONMARGIN`: see set_code_viewer_lines_icon_margin()
- `CDVH_LINES_RADIX`: see set_code_viewer_lines_radix()
- `CDVH_LINES_ALIGNMENT`: see set_code_viewer_lines_alignment()
- `VES_SHIFT`: state & 1 => Shift is pressed
- `VES_ALT`
- `VES_CTRL`
- `VES_MOUSE_LEFT`
- `VES_MOUSE_RIGHT`
- `VES_MOUSE_MIDDLE`
- `VES_META`
- `msg_activated`: The message window is activated.
- `msg_deactivated`: The message window is deactivated.
- `msg_click`: Click event.
- `msg_dblclick`: Double click event.
- `msg_closed`: View closed.
- `msg_keydown`: Key down event.
- `view_activated`: A view is activated
- `view_deactivated`: A view is deactivated
- `view_keydown`: Key down event
- `view_click`: Click event
- `view_dblclick`: Double click event
- `view_curpos`: Cursor position changed
- `view_created`: A view is being created.
- `view_close`: View closed
- `view_switched`: A view's renderer has changed.
- `view_mouse_over`: The user moved the mouse over (or out of) a node or an edge. This is only relevant in a graph view.
- `view_loc_changed`: The location for the view has changed (can be either the place_t, the renderer_info_t, or both.)
- `view_mouse_moved`: The mouse moved on the view
- `iek_unknown`
- `iek_shortcut`
- `iek_key_press`
- `iek_key_release`
- `iek_mouse_button_press`
- `iek_mouse_button_release`
- `iek_mouse_wheel`
- `MFF_FAST`: Execute code as soon as possible. this mode is ok for calling ui related functions that do not query the database.
- `MFF_READ`: Execute code only when ida is idle and it is safe to query the database. This mode is recommended only for code that does not modify the database. (nb: ida may be in the middle of executing another user request, for example it may be waiting for him to enter values into a modal dialog box)
- `MFF_WRITE`: Execute code only when ida is idle and it is safe to modify the database. in particular, this flag will suspend execution if there is a modal dialog box on the screen. this mode can be used to call any ida api function. MFF_WRITE implies MFF_READ
- `MFF_NOWAIT`: Do not wait for the request to be executed. the caller should ensure that the request is not destroyed until the execution completes. if not, the request will be ignored. the request must be created using the 'new' operator to use it with this flag. it can be used in cancel_exec_request(). This flag can be used to delay the code execution until the next UI loop run even from the main thread.
- `UIJMP_ACTIVATE`: activate the new window
- `UIJMP_DONTPUSH`: do not remember the current address in the navigation history
- `UIJMP_VIEWMASK`
- `UIJMP_ANYVIEW`: jump in any ea_t-capable view
- `UIJMP_IDAVIEW`: jump in idaview
- `UIJMP_IDAVIEW_NEW`: jump in new idaview
- `ACF_HAS_SELECTION`: there is currently a valid selection
- `ACF_XTRN_EA`: cur_ea is in 'externs' segment
- `ACF_HAS_FIELD_DIRTREE_SELECTION`: 'dirtree_selection' field is present
- `ACF_HAS_SOURCE`: 'source' field is present
- `ACF_HAS_TYPE_REF`: 'type_ref' field is present
- `AHF_VERSION`: action handler version (used by action_handler_t::flags)
- `AHF_VERSION_MASK`: mask for action_handler_t::flags
- `ADF_OWN_HANDLER`: handler is owned by the action; it'll be destroyed when the action is unregistered. Use DYNACTION_DESC_LITERAL to set this bit.
- `ADF_NO_UNDO`: the action does not create an undo point. useful for actions that do not modify the database.
- `ADF_OT_MASK`: Owner type mask.
- `ADF_OT_PLUGIN`: Owner is a plugin_t.
- `ADF_OT_PLUGMOD`: Owner is a plugmod_t.
- `ADF_OT_PROCMOD`: Owner is a procmod_t.
- `ADF_GLOBAL`: Register the action globally, so that it's available even if no IDB is present
- `ADF_NO_HIGHLIGHT`: After activating, do not update the highlight according to what's under the cursor (listings only.)
- `ADF_CHECKABLE`: action is checkable
- `ADF_CHECKED`: starts in a checked state (requires ADF_CHECKABLE)
- `AA_NONE`: no effect
- `AA_LABEL`: see update_action_label()
- `AA_SHORTCUT`: see update_action_shortcut()
- `AA_TOOLTIP`: see update_action_tooltip()
- `AA_ICON`: see update_action_icon()
- `AA_STATE`: see update_action_state()
- `AA_CHECKABLE`: see update_action_checkable()
- `AA_CHECKED`: see update_action_checked()
- `AA_VISIBILITY`: see update_action_visibility()
- `ASKBTN_YES`: Yes button.
- `ASKBTN_NO`: No button.
- `ASKBTN_CANCEL`: Cancel button.
- `ASKBTN_BTN1`: First (Yes) button.
- `ASKBTN_BTN2`: Second (No) button.
- `ASKBTN_BTN3`: Third (Cancel) button.
- `HIST_SEG`: segment names
- `HIST_CMT`: comments
- `HIST_SRCH`: search substrings
- `HIST_IDENT`: identifiers. usually CPU register names are forbidden
- `HIST_FILE`: file names
- `HIST_TYPE`: type declarations
- `HIST_CMD`: commands
- `HIST_DIR`: directory names (text version only)
- `HIST_IDENT2`: identifiers, including CPU register names
- `CLNL_RTRIM`: Remove trailing space characters.
- `CLNL_LTRIM`: Remove leading space characters.
- `CLNL_FINDCMT`: Search for the comment symbol everywhere in the line, not only at the beginning.
- `CLNL_TRIM`
- `S2EAOPT_NOCALC`: don't try to interpret string as IDC (or current extlang) expression
- `IK_CANCEL`
- `IK_BACK`
- `IK_TAB`
- `IK_CLEAR`
- `IK_RETURN`
- `IK_SHIFT`
- `IK_CONTROL`
- `IK_MENU`
- `IK_PAUSE`
- `IK_CAPITAL`
- `IK_KANA`
- `IK_ESCAPE`
- `IK_MODECHANGE`
- `IK_SPACE`
- `IK_PRIOR`
- `IK_NEXT`
- `IK_END`
- `IK_HOME`
- `IK_LEFT`
- `IK_UP`
- `IK_RIGHT`
- `IK_DOWN`
- `IK_SELECT`
- `IK_PRINT`
- `IK_EXECUTE`
- `IK_SNAPSHOT`
- `IK_INSERT`
- `IK_DELETE`
- `IK_HELP`
- `IK_LWIN`
- `IK_RWIN`
- `IK_APPS`
- `IK_SLEEP`
- `IK_NUMPAD0`
- `IK_NUMPAD1`
- `IK_NUMPAD2`
- `IK_NUMPAD3`
- `IK_NUMPAD4`
- `IK_NUMPAD5`
- `IK_NUMPAD6`
- `IK_NUMPAD7`
- `IK_NUMPAD8`
- `IK_NUMPAD9`
- `IK_MULTIPLY`
- `IK_ADD`
- `IK_SEPARATOR`
- `IK_SUBTRACT`
- `IK_DECIMAL`
- `IK_DIVIDE`
- `IK_F1`
- `IK_F2`
- `IK_F3`
- `IK_F4`
- `IK_F5`
- `IK_F6`
- `IK_F7`
- `IK_F8`
- `IK_F9`
- `IK_F10`
- `IK_F11`
- `IK_F12`
- `IK_F13`
- `IK_F14`
- `IK_F15`
- `IK_F16`
- `IK_F17`
- `IK_F18`
- `IK_F19`
- `IK_F20`
- `IK_F21`
- `IK_F22`
- `IK_F23`
- `IK_F24`
- `IK_NUMLOCK`
- `IK_SCROLL`
- `IK_OEM_FJ_MASSHOU`
- `IK_OEM_FJ_TOUROKU`
- `IK_LSHIFT`
- `IK_RSHIFT`
- `IK_LCONTROL`
- `IK_RCONTROL`
- `IK_LMENU`
- `IK_RMENU`
- `IK_BROWSER_BACK`
- `IK_BROWSER_FORWARD`
- `IK_BROWSER_REFRESH`
- `IK_BROWSER_STOP`
- `IK_BROWSER_SEARCH`
- `IK_BROWSER_FAVORITES`
- `IK_BROWSER_HOME`
- `IK_VOLUME_MUTE`
- `IK_VOLUME_DOWN`
- `IK_VOLUME_UP`
- `IK_MEDIA_NEXT_TRACK`
- `IK_MEDIA_PREV_TRACK`
- `IK_MEDIA_STOP`
- `IK_MEDIA_PLAY_PAUSE`
- `IK_LAUNCH_MAIL`
- `IK_LAUNCH_MEDIA_SELECT`
- `IK_LAUNCH_APP1`
- `IK_LAUNCH_APP2`
- `IK_OEM_1`
- `IK_OEM_PLUS`
- `IK_OEM_COMMA`
- `IK_OEM_MINUS`
- `IK_OEM_PERIOD`
- `IK_OEM_2`
- `IK_OEM_3`
- `IK_OEM_4`
- `IK_OEM_5`
- `IK_OEM_6`
- `IK_OEM_7`
- `IK_OEM_102`
- `IK_PLAY`
- `IK_ZOOM`
- `IK_OEM_CLEAR`
- `CB_INIT`
- `CB_YES`
- `CB_CLOSE`
- `CB_INVISIBLE`
- `CB_DESTROYING`
- `CB_NO`
- `CB_CANCEL`
- `SETMENU_IF_ENABLED`
- `CH_NOIDB`
- `BWN_TILVIEW`
- `IWID_TILVIEW`
- `BWN_LOCTYPS`
- `IWID_LOCTYPS`
- `BWN_DISASMS`
- `IWID_DISASMS`
- `CHOOSER_NO_SELECTION`
- `CHOOSER_MULTI_SELECTION`
- `CHOOSER_POPUP_MENU`
- `CHOOSER_MENU_EDIT`
- `CHOOSER_MENU_JUMP`
- `CHOOSER_MENU_SEARCH`
- `CH_NOIDB`
- `place_t_as_idaplace_t`
- `place_t_as_simpleline_place_t`
- `place_t_as_tiplace_t`
## Classes Overview
- `chooser_row_info_vec_t`
- `tagged_line_section_vec_t`
- `jobj_wrapper_t`
- `UI_Hooks`
- `disasm_line_t`
- `line_rendering_output_entries_refs_t`
- `section_lines_refs_t`
- `sections_lines_refs_t`
- `text_t`
- `sync_source_vec_t`
- `place_t`
- `simpleline_t`
- `simpleline_place_t`
- `idaplace_t`
- `tiplace_t`
- `sync_source_t`
- `synced_group_t`
- `twinpos_t`
- `twinline_t`
- `linearray_t`
- `lines_rendering_input_t`
- `line_rendering_output_entry_t`
- `lines_rendering_output_t`
- `line_section_t`
- `tagged_line_section_t`
- `tagged_line_sections_t`
- `listing_location_t`
- `chooser_item_attrs_t`
- `chooser_row_info_t`
- `chooser_stdact_desc_t`
- `chooser_base_t`
- `renderer_pos_info_t`
- `view_mouse_event_location_t`
- `view_mouse_event_t`
- `input_event_t`
- `input_event_shortcut_data_t`
- `input_event_keyboard_data_t`
- `input_event_mouse_data_t`
- `ui_requests_t`
- `action_ctx_base_cur_sel_t`
- `action_ctx_base_t`
- `action_desc_t`
- `addon_info_t`
- `strarray_t`
- `disasm_text_t`
- `action_handler_t`
- `quick_widget_commands_t`
- `disabled_script_timeout_t`
- `Choose`: Chooser wrapper class.
- `textctrl_info_t`: Class representing textctrl_info_t
- `Form`
- `cli_t`: cli_t wrapper class.
- `View_Hooks`
- `CustomIDAMemo`
- `IDAViewWrapper`: Deprecated. Use View_Hooks instead.
- `simplecustviewer_t`: The base class for implementing simple custom viewers
- `PluginForm`: PluginForm class.
## Functions Overview
- `refresh_choosers() -> None`
- `textctrl_info_t_create() -> PyObject *`
- `textctrl_info_t_destroy(py_obj: PyObject *) -> bool`
- `textctrl_info_t_get_clink(_self: PyObject *) -> textctrl_info_t *`
- `textctrl_info_t_get_clink_ptr(_self: PyObject *) -> PyObject *`
- `register_timer(interval, callback)`: Register a timer
- `unregister_timer(timer_obj)`: Unregister a timer
- `choose_idasgn()`: Opens the signature chooser
- `get_highlight(v, flags=0)`: Returns the currently highlighted identifier and flags
- `py_load_custom_icon_fn(filename: str) -> int`
- `py_load_custom_icon_data(data: PyObject *, format: str) -> int`
- `msg(message)`: Display a message in the message window
- `warning(message)`: Display a message in a warning message box
- `error(message)`: Display a fatal message in a message box and quit IDA
- `ask_text(max_size: int, defval: str, prompt: str) -> str | None`: Asks for a long text
- `ask_str(defval, hist, prompt)`: Asks for a long text
- `process_ui_action(name: str, flags: int = 0)`: Invokes an IDA UI action by name
- `del_hotkey(ctx)`: Deletes a previously registered function hotkey
- `add_hotkey(hotkey, callable)`: Associates a function call with a hotkey.
- `take_database_snapshot(snapshot) -> Tuple[bool, str]`: Take a database snapshot.
- `restore_database_snapshot(snapshot, callback, userdata) -> bool`: Restore a database snapshot.
- `execute_sync(callable, reqf)`: Executes a function in the context of the main thread.
- `execute_ui_requests(callable_list)`: Inserts a list of callables into the UI message processing queue.
- `register_action(desc: action_desc_t) -> 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()).
- `get_registered_actions() -> List[str]`: Get a list with the names of all currently-registered actions.
- `attach_dynamic_action_to_popup(unused, popup_handle, desc, popuppath=None, flags=0)`: Create & insert an action into the widget's popup menu
- `py_chooser_base_t_get_row(chobj: chooser_base_t, n: size_t) -> PyObject *`
- `gen_disasm_text(text: disasm_text_t, ea1: ida_idaapi.ea_t, ea2: ida_idaapi.ea_t, truncate_lines: bool) -> None`: Generate disassembly text for a range.
- `set_nav_colorizer(callback)`: Set a new colorizer for the navigation band.
- `call_nav_colorizer(colorizer, ea: ida_idaapi.ea_t, nbytes: int)`: To be used with the IDA-provided colorizer, that is
- `msg_get_lines(count: int = -1) -> PyObject *`: Retrieve the last 'count' lines from the output window, in reverse order (from most recent, to least recent)
- `TWidget__from_ptrval__(ptrval: size_t) -> TWidget *`
- `add_spaces(s: str, len: size_t) -> 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'.
- `show_wait_box(message: str) -> None`: Display a dialog box with "Please wait...". The behavior of the dialog box can be configured with well-known
- `hide_wait_box() -> None`: Hide the "Please wait dialog box".
- `get_kernel_version() -> str`: Get IDA kernel version (in a string like "5.1").
- `is_ida_library(path: char * = None, pathsize: size_t = 0, handle: void ** = None) -> bool`
- `l_compare2(t1: place_t, t2: place_t, ud: void *) -> int`
- `l_equals(t1: place_t, t2: place_t, ud: void *) -> bool`
- `is_tif_cursor_header(c: tif_cursor_t) -> bool`
- `is_tif_cursor_footer(c: tif_cursor_t) -> bool`
- `is_tif_cursor_index(c: tif_cursor_t) -> bool`
- `internal_register_place_class(tmplate: place_t, flags: int, owner: plugin_t const *, sdk_version: int) -> int`
- `get_place_class(out_flags: int *, out_sdk_version: int *, id: int) -> place_t const *`: Get information about a previously-registered place_t class. See also register_place_class().
- `get_place_class_template(id: int) -> place_t const *`: See get_place_class()
- `is_place_class_ea_capable(id: int) -> bool`: See get_place_class()
- `get_place_class_id(name: str) -> int`: Get the place class ID for the place that has been registered as 'name'.
- `request_refresh(mask: uint64, cnd: bool = True) -> None`: Request a refresh of a builtin window.
- `clear_refresh_request(mask: uint64) -> None`
- `is_refresh_requested(mask: uint64) -> bool`: Get a refresh request state
- `is_chooser_widget(t: twidget_type_t) -> bool`: Does the given widget type specify a chooser widget?
- `is_action_enabled(s: action_state_t) -> bool`: Check if the given action state is one of AST_ENABLE*.
- `cancel_exec_request(req_id: int) -> bool`: Try to cancel an asynchronous exec request (::ui_cancel_exec_request).
- `cancel_thread_exec_requests(tid: __qthread_t) -> int`: Try to cancel asynchronous exec requests created by the specified thread.
- `set_execute_sync_availability(tid: __qthread_t, availability: execute_sync_availability_t) -> execute_sync_availability_t`: Set the availability of the execute_sync functionality for the given thread
- `get_synced_group(w: TWidget const *) -> synced_group_t const *`: Get the group of widgets/registers this view is synchronized with
- `banner(wait: int) -> bool`: Show a banner dialog box (ui_banner).
- `is_msg_inited() -> bool`: Can we use msg() functions?
- `refresh_idaview() -> None`: Refresh marked windows (ui_refreshmarked)
- `refresh_idaview_anyway() -> None`: Refresh all disassembly views (ui_refresh), forces an immediate refresh. Please consider request_refresh() instead
- `analyzer_options() -> None`: Allow the user to set analyzer options. (show a dialog box) (ui_analyzer_options)
- `get_screen_ea() -> ida_idaapi.ea_t`: Get the address at the screen cursor (ui_screenea)
- `get_opnum() -> int`: Get current operand number, -1 means no operand (ui_get_opnum)
- `get_cursor() -> int *, int *`: Get the cursor position on the screen (ui_get_cursor).
- `get_output_cursor() -> int *, int *`: Get coordinates of the output window's cursor (ui_get_output_cursor).
- `get_curline() -> str`: Get current line from the disassemble window (ui_get_curline).
- `open_url(url: str) -> None`: Open the given url (ui_open_url)
- `get_hexdump_ea(hexdump_num: int) -> ida_idaapi.ea_t`: Get the current address in a hex view.
- `get_key_code(keyname: str) -> ushort`: Get keyboard key code by its name (ui_get_key_code)
- `lookup_key_code(key: int, shift: int, is_qt: bool) -> ushort`: Get shortcut code previously created by ui_get_key_code.
- `refresh_navband(force: bool) -> None`: Refresh navigation band if changed (ui_refresh_navband).
- `refresh_chooser(title: str) -> bool`: Mark a non-modal custom chooser for a refresh (ui_refresh_chooser).
- `close_chooser(title: str) -> bool`: Close a non-modal chooser (ui_close_chooser).
- `set_dock_pos(src_ctrl, dest_ctrl, orient, left=0, top=0, right=0, bottom=0)`: Sets the dock orientation of a window relatively to another window.
- `get_icon_id_by_name(icon_name: str) -> int`: Retrieve the id of the icon by name (ui_get_icon_id_by_name).
- `free_custom_icon(icon_id)`: Frees an icon loaded with load_custom_icon()
- `unregister_action(name: str) -> bool`: Delete a previously-registered action (ui_unregister_action).
- `create_toolbar(name: str, label: str, before: str = None, flags: int = 0) -> bool`: Create a toolbar with the given name, label and optional position
- `delete_toolbar(name: str) -> bool`: Delete an existing toolbar
- `create_menu(name: str, label: str, menupath: str = 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:
- `delete_menu(name: str) -> bool`: Delete an existing menu
- `attach_action_to_menu(menupath: str, name: str, flags: int = 0) -> bool`: Attach a previously-registered action to the menu (ui_attach_action_to_menu).
- `detach_action_from_menu(menupath: str, name: str) -> bool`: Detach an action from the menu (ui_detach_action_from_menu).
- `attach_action_to_toolbar(toolbar_name: str, name: str) -> bool`: Attach an action to an existing toolbar (ui_attach_action_to_toolbar).
- `detach_action_from_toolbar(toolbar_name: str, name: str) -> bool`: Detach an action from the toolbar (ui_detach_action_from_toolbar).
- `register_and_attach_to_menu(menupath: str, name: str, label: str, shortcut: str, flags: int, handler: action_handler_t *, owner: void *, action_desc_t_flags: int) -> bool`: Helper.
- `display_widget(widget: TWidget *, options: int, dest_ctrl: str = None) -> None`: Display a widget, dock it if not done before
- `close_widget(widget: TWidget *, options: int) -> None`: Close widget (ui_close_widget, only gui version).
- `activate_widget(widget: TWidget *, take_focus: bool) -> None`: Activate widget (only gui version) (ui_activate_widget).
- `find_widget(caption: str) -> TWidget *`: Find widget with the specified caption (only gui version) (ui_find_widget). NB: this callback works only with the tabbed widgets!
- `get_current_widget() -> TWidget *`: Get a pointer to the current widget (ui_get_current_widget).
- `get_widget_type(widget: TWidget *) -> twidget_type_t`: Get the type of the TWidget * (ui_get_widget_type).
- `get_widget_title(widget: TWidget *) -> str`: Get the TWidget's title (ui_get_widget_title).
- `custom_viewer_jump(v: TWidget *, loc: lochist_entry_t const &, flags: int = 0) -> bool`: Append 'loc' to the viewer's history, and cause the viewer to display it.
- `ea_viewer_history_push_and_jump(v: TWidget *, ea: ida_idaapi.ea_t, x: int, y: int, lnnum: int) -> 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.
- `get_ea_viewer_history_info(nback: int *, nfwd: int *, v: TWidget *) -> bool`: Get information about what's in the history (ui_ea_viewer_history_info).
- `refresh_custom_viewer(custom_viewer: TWidget *) -> None`: Refresh custom ida viewer (ui_refresh_custom_viewer)
- `repaint_custom_viewer(custom_viewer: TWidget *) -> None`: Repaint the given widget immediately (ui_repaint_qwidget)
- `jumpto(*args) -> bool`: This function has the following signatures:
- `get_custom_viewer_place(custom_viewer: TWidget *, mouse: bool) -> int *, int *`: Get current place in a custom viewer (ui_get_curplace).
- `get_custom_viewer_location(*args) -> bool`: Get information about the current location in a listing
- `is_idaq()`: Returns True or False depending if IDAPython is hosted by IDAQ
- `attach_action_to_popup(widget: TWidget *, popup_handle: TPopupMenu *, name: str, popuppath: str = None, flags: int = 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'.
- `detach_action_from_popup(widget: TWidget *, name: str) -> 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.
- `update_action_label(name: str, label: str) -> bool`: Update an action's label (ui_update_action_attr).
- `update_action_shortcut(name: str, shortcut: str) -> bool`: Update an action's shortcut (ui_update_action_attr).
- `update_action_tooltip(name: str, tooltip: str) -> bool`: Update an action's tooltip (ui_update_action_attr).
- `update_action_icon(name: str, icon: int) -> bool`: Update an action's icon (ui_update_action_attr).
- `update_action_state(name: str, state: action_state_t) -> bool`: Update an action's state (ui_update_action_attr).
- `update_action_checkable(name: str, checkable: bool) -> bool`: Update an action's checkability (ui_update_action_attr).
- `update_action_checked(name: str, checked: bool) -> bool`: Update an action's checked state (ui_update_action_attr).
- `update_action_visibility(name: str, visible: bool) -> bool`: Update an action's visibility (ui_update_action_attr).
- `get_action_label(name: str) -> str`: Get an action's label (ui_get_action_attr).
- `get_action_shortcut(name: str) -> str`: Get an action's shortcut (ui_get_action_attr).
- `get_action_tooltip(name: str) -> str`: Get an action's tooltip (ui_get_action_attr).
- `get_action_icon(name: str) -> int *`: Get an action's icon (ui_get_action_attr).
- `get_action_state(name: str) -> action_state_t *`: Get an action's state (ui_get_action_attr).
- `get_action_checkable(name: str) -> bool *`: Get an action's checkability (ui_get_action_attr).
- `get_action_checked(name: str) -> bool *`: Get an action's checked state (ui_get_action_attr).
- `get_action_visibility(name: str) -> bool *`: Get an action's visibility (ui_get_action_attr).
- `set_custom_viewer_qt_aware(custom_viewer: TWidget *) -> bool`: Allow the given viewer to interpret Qt events (ui_set_custom_viewer_handler)
- `get_custom_viewer_curline(custom_viewer: TWidget *, mouse: bool) -> str`: Get current line of custom viewer (ui_get_custom_viewer_curline). The returned line contains color codes
- `get_custom_viewer_place_xcoord(custom_viewer: TWidget *, pline: place_t, pitem: place_t) -> int`: Get the X position of the item, in the line
- `get_user_input_event(out: input_event_t) -> 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_output_curline(mouse: bool) -> str`: Get current line of output window (ui_get_output_curline).
- `get_output_selected_text() -> str`: Returns selected text from output window (ui_get_output_selected_text).
- `get_current_viewer() -> TWidget *`: Get current ida viewer (idaview or custom viewer) (ui_get_current_viewer)
- `get_last_widget(*args) -> TWidget *`: Get last ida viewer (idaview or custom viewer) (ui_get_last_widget)
- `prompt_function_prototype(out_tif: tinfo_t, pfn: func_t *, tif: tinfo_t, name: str) -> str`: Open function prototype editor to edit function type and create new type. Allows to change the function prototype either in the "old" one-liner mode or in the new multi-line editor, which supports shortcuts, etc. Note: changes will not apply! It is the caller's job to apply the resulting out_tif. Parameters:
- `parse_tagged_line_sections(out: tagged_line_sections_t, line: str) -> bool`: Collect tagged sections in a color-tagged line (produced by place_t::generate)
- `get_view_renderer_type(v: TWidget *) -> tcc_renderer_type_t`: Get the type of renderer currently in use in the given view (ui_get_renderer_type)
- `set_view_renderer_type(v: TWidget *, rt: tcc_renderer_type_t) -> None`: Set the type of renderer to use in a view (ui_set_renderer_type)
- `create_empty_widget(title: str, icon: int = -1) -> TWidget *`: Create an empty widget, serving as a container for custom user widgets
- `msg_clear() -> None`: Clear the "Output" window.
- `msg_save(path: str) -> bool`: Save the "Output" window contents into a file
- `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_navband_pixel(ea)`: Maps an address, onto a pixel coordinate within the navigation band
- `get_navband_ea(pixel: int) -> ida_idaapi.ea_t`: Translate the pixel position on the navigation band, into an address.
- `get_window_id(name: str = None) -> void *`: Get the system-specific window ID (GUI version only)
- `is_idaview(v: TWidget *) -> bool`: Is the given custom view an idaview? (ui_is_idaview)
- `read_selection(v, p1, p2)`: Read the user selection, and store its information in p1 (from) and p2 (to).
- `read_range_selection(v: TWidget *) -> ea_t *, ea_t *`: Get the address range for the selected range boundaries, this is the convenient function for read_selection()
- `unmark_selection() -> None`: Unmark selection (ui_unmarksel)
- `create_code_viewer(custview: TWidget *, flags: int = 0, parent: TWidget * = 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.
- `set_code_viewer_handler(code_viewer: TWidget *, handler_id: custom_viewer_handler_id_t, handler_or_data: void *) -> void *`: Set a handler for a code viewer event (ui_set_custom_viewer_handler).
- `set_code_viewer_user_data(code_viewer: TWidget *, ud: void *) -> bool`: Set the user data on a code viewer (ui_set_custom_viewer_handler).
- `get_viewer_user_data(viewer: TWidget *) -> void *`: Get the user data from a custom viewer (ui_get_viewer_user_data)
- `get_viewer_place_type(viewer: TWidget *) -> tcc_place_type_t`: Get the type of place_t instances a viewer uses & creates (ui_get_viewer_place_type).
- `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 *) -> None`: Set handlers for code viewer line events. Any of these handlers may be nullptr
- `set_code_viewer_lines_icon_margin(code_viewer: TWidget *, margin: int) -> bool`: Set space allowed for icons in the margin of a code viewer (ui_set_custom_viewer_handler).
- `set_code_viewer_lines_alignment(code_viewer: TWidget *, align: int) -> bool`: Set alignment for lines in a code viewer (ui_set_custom_viewer_handler).
- `set_code_viewer_lines_radix(code_viewer: TWidget *, radix: int) -> bool`: Set radix for values displayed in a code viewer (ui_set_custom_viewer_handler).
- `set_code_viewer_is_source(code_viewer: TWidget *) -> bool`: Specify that the given code viewer is used to display source code (ui_set_custom_viewer_handler).
- `get_tab_size(path: str) -> int`: Get the size of a tab in spaces (ui_get_tab_size).
- `clr_cancelled() -> None`: Clear "Cancelled" flag (ui_clr_cancelled)
- `set_cancelled() -> None`: Set "Cancelled" flag (ui_set_cancelled)
- `user_cancelled() -> bool`: Test the cancellation flag (ui_test_cancelled).
- `ui_load_new_file(temp_file: str, filename: str, pli: linput_t **, neflags: ushort, ploaders: load_info_t **) -> bool`: Display a load file dialog and load file (ui_load_file).
- `ui_run_debugger(dbgopts: str, exename: str, argc: int, argv: char const *const *) -> bool`: Load a debugger plugin and run the specified program (ui_run_dbg).
- `load_dbg_dbginfo(*args) -> bool`: Load debugging information from a file.
- `add_idc_hotkey(hotkey: str, idcfunc: str) -> int`: Add hotkey for IDC function (ui_add_idckey).
- `set_highlight(viewer: TWidget *, str: set_highlight.str, flags: int) -> bool`: Set the highlighted identifier in the viewer (ui_set_highlight).
- `open_exports_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the exports window (ui_open_builtin).
- `open_imports_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the exports window (ui_open_builtin).
- `open_names_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the names window (ui_open_builtin).
- `open_funcs_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the 'Functions' window (ui_open_builtin).
- `open_strings_window(*args) -> TWidget *`: Open the 'Strings' window (ui_open_builtin).
- `open_segments_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the segments window (ui_open_builtin).
- `open_segregs_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the segment registers window (ui_open_builtin).
- `open_selectors_window() -> TWidget *`: Open the selectors window (ui_open_builtin).
- `open_signatures_window() -> TWidget *`: Open the signatures window (ui_open_builtin).
- `open_tils_window() -> TWidget *`: Open the type libraries window (ui_open_builtin).
- `open_loctypes_window(ordinal: int, cursor: tif_cursor_t const * = None) -> TWidget *`: Open the local types window (ui_open_builtin2).
- `open_til_view_window(tif: tinfo_t, cursor: tif_cursor_t const * = None) -> TWidget *`: Open the sub-til window (ui_open_builtin2).
- `open_calls_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the function calls window (ui_open_builtin).
- `open_problems_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the problems window (ui_open_builtin).
- `open_bpts_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the breakpoints window (ui_open_builtin).
- `open_threads_window() -> TWidget *`: Open the threads window (ui_open_builtin).
- `open_modules_window() -> TWidget *`: Open the modules window (ui_open_builtin).
- `open_trace_window() -> TWidget *`: Open the tracing window (ui_open_builtin).
- `open_stack_window() -> TWidget *`: Open the call stack window (ui_open_builtin).
- `open_xrefs_window(ea: ida_idaapi.ea_t) -> TWidget *`: Open the cross references window (ui_open_builtin).
- `open_frame_window(pfn: func_t *, offset: int) -> TWidget *`: Open the frame window for the given function (ui_open_builtin).
- `open_navband_window(ea: ida_idaapi.ea_t, zoom: int) -> TWidget *`: Open the navigation band window (ui_open_builtin).
- `open_disasm_window(window_title: str, ranges: rangevec_t = None) -> TWidget *`: Open a disassembly view (ui_open_builtin).
- `open_hexdump_window(window_title: str) -> TWidget *`: Open a hexdump view (ui_open_builtin).
- `open_notepad_window() -> TWidget *`: Open the notepad window (ui_open_builtin).
- `open_bookmarks_window(w: TWidget *) -> TWidget *`: Open the bookmarks window (ui_open_builtin).
- `sync_sources(what: sync_source_t, _with: sync_source_t, sync: bool) -> bool`: [Un]synchronize sources
- `choose_til() -> str`: Choose a type library (ui_choose, chtype_idatil).
- `choose_entry(title: str) -> ida_idaapi.ea_t`: Choose an entry point (ui_choose, chtype_entry).
- `choose_name(title: str) -> ida_idaapi.ea_t`: Choose a name (ui_choose, chtype_name).
- `choose_stkvar_xref(pfn: func_t *, srkvar_tid: tid_t) -> ida_idaapi.ea_t`: Choose an xref to a stack variable (ui_choose, chtype_name).
- `choose_xref(to: ida_idaapi.ea_t) -> ida_idaapi.ea_t`: Choose an xref to an address (ui_choose, chtype_xref).
- `choose_enum(out: tinfo_t, title: str, default_ord: int) -> bool`: Choose an enum (ui_choose, chtype_enum).
- `choose_enum_by_value(out: tinfo_t, title: str, default_ord: int, value: uint64, nbytes: int) -> uchar *`: 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_func(title: str, default_ea: ida_idaapi.ea_t) -> func_t *`: Choose a function (ui_choose, chtype_func).
- `choose_segm(title: str, default_ea: ida_idaapi.ea_t) -> segment_t *`: Choose a segment (ui_choose, chtype_segm).
- `choose_struct(out: tinfo_t, title: str) -> bool`: Choose a structure (ui_choose, chtype_struct).
- `choose_srcp(title: str) -> sreg_range_t *`: Choose a segment register change point (ui_choose, chtype_srcp).
- `get_chooser_obj(chooser_caption: str) -> void *`: Get the underlying object of the specified chooser (ui_get_chooser_obj).
- `get_chooser_rows(out: chooser_row_info_vec_t, chooser_caption: str, what: size_t) -> bool`: Get the chooser contents corresponding to the rows indicated by "what".
- `enable_chooser_item_attrs(chooser_caption: str, enable: bool) -> bool`: Enable item-specific attributes for chooser items (ui_enable_chooser_item_attrs). For example: color list items differently depending on a criterium.
- `replace_wait_box(*args) -> None`: Replace the label of "Please wait dialog box".
- `beep(beep_type: beep_t = beep_default) -> None`: Issue a beeping sound (ui_beep).
- `display_copyright_warning() -> bool`: Display copyright warning (ui_copywarn).
- `ask_for_feedback(*args) -> None`: Show a message box asking to send the input file to [support@hex-rays.com](mailto:support@hex-rays.com).
- `info(*args) -> ssize_t`
- `nomem(*args) -> None`
- `ask_yn(*args) -> int`: Display a dialog box and get choice from "Yes", "No", "Cancel".
- `ask_buttons(*args) -> int`: Display a dialog box and get choice from maximum three possibilities (ui_ask_buttons).
- `ask_ident2(*args) -> 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_file(*args) -> char *`
- `register_addon(info: addon_info_t) -> 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
- `addon_count() -> int`: Get number of installed addons.
- `get_addon_info(id: str, info: addon_info_t) -> 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 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
- `qcleanline(*args) -> str`: Performs some cleanup operations to a line.
- `strarray(array: strarray_t, array_size: size_t, code: int) -> str`: 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.
- `ea2str(ea: ida_idaapi.ea_t) -> str`: Convert linear address to UTF-8 string.
- `str2ea(*args) -> uint64 *`: Convert string to linear address. Tries to interpret the string as:
- `str2ea_ex(*args) -> uint64 *`: Same as str2ea() but possibly with some steps skipped.
- `atoea(str: atoea.str) -> uint64 *`: Convert a number in C notation to an address. decimal: 1234
- `get_user_strlist_options(out: strwinsetup_t *) -> None`
- `del_idc_hotkey(hotkey: str) -> bool`
- `load_custom_icon(file_name=None, data=None, format=None)`: Load an icon from a file (ui_load_custom_icon_file). Also see load_custom_icon(const void *, unsigned int, const char *)
- `ask_long(defval: int, prompt: str) -> int | None`: Display a dialog box and wait for the user to input a number
- `ask_addr(defval: ida_idaapi.ea_t, prompt: str) -> ida_idaapi.ea_t | None`: Display a dialog box and wait for the user to input an address
- `ask_seg(defval: int, prompt: str) -> int | None`: Display a dialog box and wait for the user to input an segment name.
- `ask_ident(defval: str, prompt: str) -> 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 usually forbidden.
- `choose_find(title: str) -> object | None`: Retrieve the chooser object by title
- `choose_refresh(_self: PyObject *) -> None`
- `choose_close(_self: PyObject *) -> None`
- `choose_get_widget(_self: PyObject *) -> TWidget *`
- `choose_choose(_self: PyObject *) -> PyObject *`
- `choose_activate(_self: PyObject *) -> None`
- `choose_create_embedded_chobj(_self: PyObject *) -> PyObject *`
- `get_chooser_data(title: str, n: int) -> List[str]`: Get the text corresponding to the index N in the chooser data.
- `textctrl_info_t_assign(_self: PyObject *, other: PyObject *) -> bool`
- `textctrl_info_t_set_text(_self: PyObject *, s: str) -> bool`
- `textctrl_info_t_get_text(_self: PyObject *) -> str`
- `textctrl_info_t_set_flags(_self: PyObject *, flags: unsigned int) -> bool`
- `textctrl_info_t_get_flags(_self: PyObject *) -> unsigned int`
- `textctrl_info_t_set_tabsize(_self: PyObject *, tabsize: unsigned int) -> bool`
- `textctrl_info_t_get_tabsize(_self: PyObject *) -> unsigned int`
- `formchgcbfa_enable_field(p_fa: size_t, fid: int, enable: bool) -> bool`
- `formchgcbfa_show_field(p_fa: size_t, fid: int, show: bool) -> bool`
- `formchgcbfa_move_field(p_fa: size_t, fid: int, x: int, y: int, w: int, h: int) -> bool`
- `formchgcbfa_get_focused_field(p_fa: size_t) -> int`
- `formchgcbfa_set_focused_field(p_fa: size_t, fid: int) -> bool`
- `formchgcbfa_refresh_field(p_fa: size_t, fid: int) -> None`
- `formchgcbfa_close(p_fa: size_t, close_normally: int) -> None`
- `formchgcbfa_get_field_value(p_fa: size_t, fid: int, ft: int, sz: size_t) -> PyObject *`
- `formchgcbfa_set_field_value(p_fa: size_t, fid: int, ft: int, py_val: PyObject *) -> bool`
- `py_get_ask_form() -> size_t`
- `py_get_open_form() -> size_t`
- `py_register_compiled_form(py_form: PyObject *) -> None`
- `py_unregister_compiled_form(py_form: PyObject *) -> None`
- `ask_form(*args)`: Display a dialog box and wait for the user. If the form contains the "BUTTON NO <title>" keyword, then the return values are the same as in the ask_yn() function (Button IDs)
- `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:
- `install_command_interpreter(py_obj: PyObject *) -> int`: Install command line interpreter (ui_install_cli)
- `remove_command_interpreter(cli_idx: int) -> None`: Remove command line interpreter (ui_install_cli)
- `pyidag_bind(_self: PyObject *) -> bool`
- `pyidag_unbind(_self: PyObject *) -> bool`
- `pyscv_init(py_link: PyObject *, title: str) -> PyObject *`
- `pyscv_refresh(py_this: PyObject *) -> bool`
- `pyscv_get_current_line(py_this: PyObject *, mouse: bool, notags: bool) -> PyObject *`
- `pyscv_is_focused(py_this: PyObject *) -> bool`
- `pyscv_count(py_this: PyObject *) -> size_t`
- `pyscv_show(py_this: PyObject *) -> bool`
- `pyscv_close(py_this: PyObject *) -> None`
- `pyscv_jumpto(py_this: PyObject *, ln: size_t, x: int, y: int) -> bool`
- `pyscv_get_line(py_this: PyObject *, nline: size_t) -> PyObject *`
- `pyscv_get_pos(py_this: PyObject *, mouse: bool) -> PyObject *`
- `pyscv_clear_lines(py_this: PyObject *) -> PyObject *`
- `pyscv_add_line(py_this: PyObject *, py_sl: PyObject *) -> bool`
- `pyscv_insert_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *) -> bool`
- `pyscv_patch_line(py_this: PyObject *, nline: size_t, offs: size_t, value: int) -> bool`
- `pyscv_del_line(py_this: PyObject *, nline: size_t) -> bool`
- `pyscv_get_selection(py_this: PyObject *) -> PyObject *`
- `pyscv_get_current_word(py_this: PyObject *, mouse: bool) -> PyObject *`
- `pyscv_edit_line(py_this: PyObject *, nline: size_t, py_sl: PyObject *) -> bool`
- `pyscv_get_widget(py_this: PyObject *) -> TWidget *`
- `plgform_new() -> PyObject *`
- `plgform_show(*args) -> bool`
- `plgform_close(py_link: PyObject *, options: int) -> None`
- `plgform_get_widget(py_link: PyObject *) -> TWidget *`