Blender V5.0
WM_keymap.hh File Reference
#include <optional>
#include <string>
#include "DNA_windowmanager_types.h"
#include "WM_types.hh"

Go to the source code of this file.

Classes

struct  KeyMapItem_Params

Macros

#define KMI_PARAMS_MOD_TO_ANY(mod)
#define KMI_PARAMS_MOD_FROM_ANY(mod)

Functions

void WM_keyconfig_init (bContext *C)
void WM_keyconfig_reload (bContext *C)
wmKeyConfigWM_keyconfig_new (wmWindowManager *wm, const char *idname, bool user_defined)
wmKeyConfigWM_keyconfig_ensure (wmWindowManager *wm, const char *idname, bool user_defined)
void WM_keyconfig_remove (wmWindowManager *wm, wmKeyConfig *keyconf)
void WM_keyconfig_clear (wmKeyConfig *keyconf)
void WM_keyconfig_free (wmKeyConfig *keyconf)
void WM_keyconfig_set_active (wmWindowManager *wm, const char *idname)
void WM_keyconfig_update_ex (wmWindowManager *wm, bool keep_properties)
void WM_keyconfig_update (wmWindowManager *wm)
void WM_keyconfig_update_on_startup (wmWindowManager *wm)
void WM_keyconfig_update_tag (wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_keyconfig_update_operatortype_tag ()
void WM_keyconfig_update_suppress_begin ()
void WM_keyconfig_update_suppress_end ()
void WM_keyconfig_update_postpone_begin ()
void WM_keyconfig_update_postpone_end ()
void WM_keymap_clear (wmKeyMap *keymap)
wmKeyMapItemWM_keymap_add_item (wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyMapItemWM_keymap_add_item_copy (wmKeyMap *keymap, wmKeyMapItem *kmi_src)
void WM_keymap_remove_item (wmKeyMap *keymap, wmKeyMapItem *kmi)
std::optional< std::string > WM_keymap_item_to_string (const wmKeyMapItem *kmi, bool compact)
wmKeyMapWM_keymap_list_find (ListBase *lb, const char *idname, int spaceid, int regionid)
wmKeyMapWM_keymap_list_find_spaceid_or_empty (ListBase *lb, const char *idname, int spaceid, int regionid)
wmKeyMapWM_keymap_ensure (wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
wmKeyMapWM_keymap_find_all (wmWindowManager *wm, const char *idname, int spaceid, int regionid)
wmKeyMapWM_keymap_find_all_spaceid_or_empty (wmWindowManager *wm, const char *idname, int spaceid, int regionid)
wmKeyMapWM_keymap_active (const wmWindowManager *wm, wmKeyMap *keymap)
void WM_keymap_remove (wmKeyConfig *keyconf, wmKeyMap *keymap)
bool WM_keymap_poll (bContext *C, wmKeyMap *keymap)
wmKeyMapItemWM_keymap_item_find_id (wmKeyMap *keymap, int id)
bool WM_keymap_item_compare (const wmKeyMapItem *k1, const wmKeyMapItem *k2)
wmKeyMapItemWM_keymap_item_find_match (wmKeyMap *km_base, wmKeyMap *km_match, wmKeyMapItem *kmi_match, ReportList *reports)
wmKeyMapItemWM_keymap_add_menu (wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyMapItemWM_keymap_add_menu_pie (wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyMapItemWM_keymap_add_panel (wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyMapItemWM_keymap_add_tool (wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyMapWM_keymap_guess_from_context (const bContext *C)
wmKeyMapWM_keymap_guess_opname (const bContext *C, const char *opname)
bool WM_keymap_uses_event_modifier (const wmKeyMap *keymap, int event_modifier)
void WM_keymap_fix_linking ()
std::optional< std::string > WM_modalkeymap_items_to_string (const wmKeyMap *km, int propvalue, bool compact)
std::optional< std::string > WM_modalkeymap_operator_items_to_string (wmOperatorType *ot, int propvalue, bool compact)
wmKeyMapWM_modalkeymap_ensure (wmKeyConfig *keyconf, const char *idname, const EnumPropertyItem *items)
wmKeyMapWM_modalkeymap_find (wmKeyConfig *keyconf, const char *idname)
wmKeyMapItemWM_modalkeymap_add_item (wmKeyMap *km, const KeyMapItem_Params *params, int value)
wmKeyMapItemWM_modalkeymap_add_item_str (wmKeyMap *km, const KeyMapItem_Params *params, const char *value)
const wmKeyMapItemWM_modalkeymap_find_propvalue (const wmKeyMap *km, int propvalue)
void WM_modalkeymap_assign (wmKeyMap *km, const char *opname)
void WM_keymap_restore_to_default (wmKeyMap *keymap, wmWindowManager *wm)
void WM_keymap_item_properties_reset (wmKeyMapItem *kmi, IDProperty *properties)
void WM_keymap_item_restore_to_default (wmWindowManager *wm, wmKeyMap *keymap, wmKeyMapItem *kmi)
int WM_keymap_item_map_type_get (const wmKeyMapItem *kmi)
const char * WM_key_event_string (short type, bool compact)
std::optional< std::string > WM_keymap_item_raw_to_string (int8_t shift, int8_t ctrl, int8_t alt, int8_t oskey, int8_t hyper, short keymodifier, short val, short type, bool compact)
wmKeyMapItemWM_key_event_operator (const bContext *C, const char *opname, blender::wm::OpCallContext opcontext, IDProperty *properties, short include_mask, short exclude_mask, wmKeyMap **r_keymap)
std::optional< std::string > WM_key_event_operator_string (const bContext *C, const char *opname, blender::wm::OpCallContext opcontext, IDProperty *properties, bool is_strict)
wmKeyMapItemWM_key_event_operator_from_keymap (wmKeyMap *keymap, const char *opname, IDProperty *properties, short include_mask, short exclude_mask)
const char * WM_bool_as_string (bool test)

Macro Definition Documentation

◆ KMI_PARAMS_MOD_FROM_ANY

#define KMI_PARAMS_MOD_FROM_ANY ( mod)
Value:
((mod) >> 8)
VecBase< float, D > constexpr mod(VecOp< float, D >, VecOp< float, D >) RET

Use to read modifiers from KeyMapItem_Params::modifier which can have any state (held or released).

Definition at line 89 of file WM_keymap.hh.

Referenced by keymap_event_set().

◆ KMI_PARAMS_MOD_TO_ANY

#define KMI_PARAMS_MOD_TO_ANY ( mod)
Value:
((mod) << 8)

Use to assign modifiers to KeyMapItem_Params::modifier which can have any state (held or released).

Definition at line 84 of file WM_keymap.hh.

Function Documentation

◆ WM_bool_as_string()

const char * WM_bool_as_string ( bool test)

Definition at line 2133 of file wm_keymap.cc.

References IFACE_.

Referenced by blender::ed::transform::Bend().

◆ WM_key_event_operator()

wmKeyMapItem * WM_key_event_operator ( const bContext * C,
const char * opname,
blender::wm::OpCallContext opcontext,
IDProperty * properties,
short include_mask,
short exclude_mask,
wmKeyMap ** r_keymap )
Parameters
include_mask,exclude_maskEvent types to include/exclude when looking up keys (eEventType_Mask).

Definition at line 1673 of file wm_keymap.cc.

References C, EVT_TYPE_MASK_ALL, kmi_filter_is_visible(), kmi_filter_is_visible_type_mask(), params, and wm_keymap_item_find().

Referenced by menu_change_shortcut(), remove_shortcut_func(), and ui_popup_context_menu_for_button().

◆ WM_key_event_operator_from_keymap()

wmKeyMapItem * WM_key_event_operator_from_keymap ( wmKeyMap * keymap,
const char * opname,
IDProperty * properties,
short include_mask,
short exclude_mask )

◆ WM_key_event_operator_string()

◆ WM_key_event_string()

◆ WM_keyconfig_clear()

void WM_keyconfig_clear ( wmKeyConfig * keyconf)

◆ WM_keyconfig_ensure()

wmKeyConfig * WM_keyconfig_ensure ( wmWindowManager * wm,
const char * idname,
bool user_defined )

◆ WM_keyconfig_free()

void WM_keyconfig_free ( wmKeyConfig * keyconf)

◆ WM_keyconfig_init()

◆ WM_keyconfig_new()

wmKeyConfig * WM_keyconfig_new ( wmWindowManager * wm,
const char * idname,
bool user_defined )

◆ WM_keyconfig_reload()

void WM_keyconfig_reload ( bContext * C)

Definition at line 406 of file wm.cc.

References BPY_run_string_eval(), C, CTX_py_init_get(), and G.

Referenced by WM_keyconfig_init(), and wm_userpref_update_when_changed().

◆ WM_keyconfig_remove()

◆ WM_keyconfig_set_active()

void WM_keyconfig_set_active ( wmWindowManager * wm,
const char * idname )

◆ WM_keyconfig_update()

◆ WM_keyconfig_update_ex()

◆ WM_keyconfig_update_on_startup()

void WM_keyconfig_update_on_startup ( wmWindowManager * wm)

Definition at line 1868 of file wm_keymap.cc.

References WM_keyconfig_update_ex(), wm_keymap_update_flag, and WM_KEYMAP_UPDATE_OPERATORTYPE.

Referenced by WM_init().

◆ WM_keyconfig_update_operatortype_tag()

void WM_keyconfig_update_operatortype_tag ( )

◆ WM_keyconfig_update_postpone_begin()

void WM_keyconfig_update_postpone_begin ( )

Definition at line 1833 of file wm_keymap.cc.

References wm_keymap_update_flag, and WM_KEYMAP_UPDATE_POSTPONE.

Referenced by WM_init().

◆ WM_keyconfig_update_postpone_end()

void WM_keyconfig_update_postpone_end ( )

Definition at line 1838 of file wm_keymap.cc.

References wm_keymap_update_flag, and WM_KEYMAP_UPDATE_POSTPONE.

Referenced by WM_init().

◆ WM_keyconfig_update_suppress_begin()

◆ WM_keyconfig_update_suppress_end()

◆ WM_keyconfig_update_tag()

◆ WM_keymap_active()

◆ WM_keymap_add_item()

◆ WM_keymap_add_item_copy()

wmKeyMapItem * WM_keymap_add_item_copy ( wmKeyMap * keymap,
wmKeyMapItem * kmi_src )

◆ WM_keymap_add_menu()

wmKeyMapItem * WM_keymap_add_menu ( wmKeyMap * keymap,
const char * idname,
const KeyMapItem_Params * params )

Menu wrapper for WM_keymap_add_item.

Definition at line 33 of file wm_keymap_utils.cc.

References params, wmKeyMapItem::ptr, RNA_string_set(), and WM_keymap_add_item().

◆ WM_keymap_add_menu_pie()

wmKeyMapItem * WM_keymap_add_menu_pie ( wmKeyMap * keymap,
const char * idname,
const KeyMapItem_Params * params )

Pie-menu wrapper for WM_keymap_add_item.

Definition at line 42 of file wm_keymap_utils.cc.

References params, wmKeyMapItem::ptr, RNA_string_set(), and WM_keymap_add_item().

◆ WM_keymap_add_panel()

wmKeyMapItem * WM_keymap_add_panel ( wmKeyMap * keymap,
const char * idname,
const KeyMapItem_Params * params )

Panel (popover) wrapper for WM_keymap_add_item.

Definition at line 51 of file wm_keymap_utils.cc.

References params, wmKeyMapItem::ptr, RNA_boolean_set(), RNA_string_set(), and WM_keymap_add_item().

◆ WM_keymap_add_tool()

wmKeyMapItem * WM_keymap_add_tool ( wmKeyMap * keymap,
const char * idname,
const KeyMapItem_Params * params )

Tool wrapper for WM_keymap_add_item.

Definition at line 62 of file wm_keymap_utils.cc.

References params, wmKeyMapItem::ptr, RNA_string_set(), and WM_keymap_add_item().

◆ WM_keymap_clear()

◆ WM_keymap_ensure()

wmKeyMap * WM_keymap_ensure ( wmKeyConfig * keyconf,
const char * idname,
int spaceid,
int regionid )

Definition at line 895 of file wm_keymap.cc.

References BLI_addtail(), wmKeyConfig::keymaps, WM_keyconfig_update_tag(), WM_keymap_list_find(), and wm_keymap_new().

Referenced by action_buttons_area_init(), action_channel_region_init(), action_keymap(), action_main_region_init(), buttons_keymap(), buttons_main_region_init(), clip_channels_region_init(), clip_keymap(), clip_main_region_init(), clip_preview_region_init(), clip_properties_region_init(), clip_tools_region_init(), console_keymap(), console_main_region_init(), ed_default_handlers(), ED_keymap_anim(), ED_keymap_animchannels(), ED_keymap_armature(), ED_keymap_curve(), ED_keymap_gpencil_legacy(), ED_keymap_lattice(), ED_keymap_marker(), ED_keymap_mask(), ED_keymap_mesh(), ED_keymap_metaball(), ED_keymap_paint(), ED_keymap_screen(), ED_keymap_ui(), ED_keymap_uvedit(), ED_keymap_view2d(), ED_region_panels_init(), file_execution_region_init(), file_header_region_init(), file_keymap(), file_main_region_init(), file_tools_region_init(), file_ui_region_init(), graph_buttons_region_init(), graph_channel_region_init(), graph_main_region_init(), graphedit_keymap(), image_asset_shelf_region_init(), image_buttons_region_init(), image_keymap(), image_main_region_init(), image_tools_region_init(), info_keymap(), info_main_region_init(), blender::ed::curves::keymap_curves(), blender::ed::greasepencil::keymap_grease_pencil_brush_stroke(), blender::ed::greasepencil::keymap_grease_pencil_edit_mode(), blender::ed::greasepencil::keymap_grease_pencil_fill_tool(), blender::ed::greasepencil::keymap_grease_pencil_paint_mode(), blender::ed::greasepencil::keymap_grease_pencil_sculpt_mode(), blender::ed::greasepencil::keymap_grease_pencil_selection(), blender::ed::greasepencil::keymap_grease_pencil_vertex_paint_mode(), blender::ed::greasepencil::keymap_grease_pencil_weight_paint_mode(), blender::ed::object::keymap_object(), keymap_particle(), blender::ed::pointcloud::keymap_pointcloud(), nla_buttons_region_init(), nla_keymap(), nla_main_region_init(), nla_track_region_init(), blender::ed::space_node::node_asset_shelf_region_init(), blender::ed::space_node::node_buttons_region_init(), blender::ed::space_node::node_keymap(), blender::ed::space_node::node_main_region_init(), blender::ed::space_node::node_toolbar_region_init(), blender::ed::outliner::outliner_keymap(), blender::ed::outliner::outliner_main_region_init(), blender::ed::asset::shelf::region_init(), script_main_region_init(), blender::ed::vse::sequencer_buttons_region_init(), blender::ed::vse::sequencer_channel_region_init(), blender::ed::vse::sequencer_keymap(), blender::ed::vse::sequencer_main_region_init(), blender::ed::vse::sequencer_preview_region_init(), blender::ed::vse::sequencer_tools_region_init(), blender::ed::spreadsheet::spreadsheet_keymap(), blender::ed::spreadsheet::spreadsheet_main_region_init(), blender::ed::spreadsheet::spreadsheet_sidebar_init(), text_keymap(), text_main_region_init(), text_properties_region_init(), tool_generic_create_gizmo(), topbar_main_region_init(), view3d_asset_shelf_region_init(), view3d_buttons_region_init(), view3d_header_region_init(), view3d_keymap(), view3d_main_region_init(), view3d_tools_region_init(), WM_gizmo_keymap_generic_drag_with_keyconfig(), WM_gizmo_keymap_generic_maybe_drag_with_keyconfig(), WM_gizmo_keymap_generic_press_drag_with_keyconfig(), WM_gizmo_keymap_generic_select_with_keyconfig(), WM_gizmo_keymap_generic_with_keyconfig(), WM_gizmogroup_keymap_template_select_ex(), WM_modalkeymap_ensure(), wm_window_ghostwindow_ensure(), and wm_window_keymap().

◆ WM_keymap_find_all()

wmKeyMap * WM_keymap_find_all ( wmWindowManager * wm,
const char * idname,
int spaceid,
int regionid )

◆ WM_keymap_find_all_spaceid_or_empty()

wmKeyMap * WM_keymap_find_all_spaceid_or_empty ( wmWindowManager * wm,
const char * idname,
int spaceid,
int regionid )

◆ WM_keymap_fix_linking()

void WM_keymap_fix_linking ( )

Definition at line 584 of file wm_keymap_utils.cc.

Referenced by wm_window_keymap().

◆ WM_keymap_guess_from_context()

◆ WM_keymap_guess_opname()

◆ WM_keymap_item_compare()

◆ WM_keymap_item_find_id()

wmKeyMapItem * WM_keymap_item_find_id ( wmKeyMap * keymap,
int id )

◆ WM_keymap_item_find_match()

wmKeyMapItem * WM_keymap_item_find_match ( wmKeyMap * km_base,
wmKeyMap * km_match,
wmKeyMapItem * kmi_match,
ReportList * reports )

Return the user key-map item from km_base based on km_match & kmi_match, currently the supported use case is looking up "User" key-map items from "Add-on" key-maps. Other lookups may be supported.

Definition at line 2155 of file wm_keymap.cc.

References BKE_report(), BKE_reportf(), BLI_findindex(), wmKeyMap::flag, G_MAIN, wmKeyMapItem::id, wmKeyMap::idname, wmKeyMap::items, KEYMAP_USER, wmKeyConfig::keymaps, wmKeyMap::kmi_id, wmKeyMap::regionid, RPT_ERROR, RPT_WARNING, wmWindowManager::runtime, wmKeyMap::spaceid, WM_keyconfig_active(), wm_keymap_is_match(), WM_keymap_item_find_id(), WM_keymap_list_find(), wm_keymap_preset(), and wm_keymap_update_flag.

◆ WM_keymap_item_map_type_get()

◆ WM_keymap_item_properties_reset()

void WM_keymap_item_properties_reset ( wmKeyMapItem * kmi,
IDProperty * properties )

◆ WM_keymap_item_raw_to_string()

◆ WM_keymap_item_restore_to_default()

◆ WM_keymap_item_to_string()

◆ WM_keymap_list_find()

◆ WM_keymap_list_find_spaceid_or_empty()

wmKeyMap * WM_keymap_list_find_spaceid_or_empty ( ListBase * lb,
const char * idname,
int spaceid,
int regionid )

◆ WM_keymap_poll()

◆ WM_keymap_remove()

void WM_keymap_remove ( wmKeyConfig * keyconf,
wmKeyMap * keymap )

◆ WM_keymap_remove_item()

◆ WM_keymap_restore_to_default()

◆ WM_keymap_uses_event_modifier()

bool WM_keymap_uses_event_modifier ( const wmKeyMap * keymap,
int event_modifier )

◆ WM_modalkeymap_add_item()

◆ WM_modalkeymap_add_item_str()

wmKeyMapItem * WM_modalkeymap_add_item_str ( wmKeyMap * km,
const KeyMapItem_Params * params,
const char * value )

◆ WM_modalkeymap_assign()

◆ WM_modalkeymap_ensure()

◆ WM_modalkeymap_find()

◆ WM_modalkeymap_find_propvalue()

const wmKeyMapItem * WM_modalkeymap_find_propvalue ( const wmKeyMap * km,
int propvalue )

◆ WM_modalkeymap_items_to_string()

std::optional< std::string > WM_modalkeymap_items_to_string ( const wmKeyMap * km,
int propvalue,
bool compact )

◆ WM_modalkeymap_operator_items_to_string()

std::optional< std::string > WM_modalkeymap_operator_items_to_string ( wmOperatorType * ot,
int propvalue,
bool compact )