Blender V4.3
WM_keymap.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2007 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11#include <optional>
12#include <string>
13
14#include "BLI_utildefines.h"
16#include "WM_types.hh"
17
18struct EnumPropertyItem;
19
20/* Key Configuration. */
21
24
25wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined);
26wmKeyConfig *WM_keyconfig_ensure(wmWindowManager *wm, const char *idname, bool user_defined);
28void WM_keyconfig_clear(wmKeyConfig *keyconf);
29void WM_keyconfig_free(wmKeyConfig *keyconf);
30
31void WM_keyconfig_set_active(wmWindowManager *wm, const char *idname);
32
38void WM_keyconfig_update_ex(wmWindowManager *wm, bool keep_properties);
42
45
48
64
65void WM_keymap_clear(wmKeyMap *keymap);
66
71 const char *idname,
74
76std::optional<std::string> WM_keymap_item_to_string(const wmKeyMapItem *kmi, bool compact);
77
78wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid);
80 const char *idname,
81 int spaceid,
82 int regionid);
83wmKeyMap *WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid);
84wmKeyMap *WM_keymap_find_all(wmWindowManager *wm, const char *idname, int spaceid, int regionid);
86 const char *idname,
87 int spaceid,
88 int regionid);
90void WM_keymap_remove(wmKeyConfig *keyconf, wmKeyMap *keymap);
91bool WM_keymap_poll(bContext *C, wmKeyMap *keymap);
92
94bool WM_keymap_item_compare(const wmKeyMapItem *k1, const wmKeyMapItem *k2);
95
96/* `wm_keymap_utils.cc`. */
97
98/* Wrappers for #WM_keymap_add_item. */
99
104 const char *idname,
110 const char *idname,
116 const char *idname,
122 const char *idname,
124
126
132wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname);
133
134bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, int event_modifier);
135
137
138/* Modal Keymap. */
139
140std::optional<std::string> WM_modalkeymap_items_to_string(const wmKeyMap *km,
141 int propvalue,
142 bool compact);
144 int propvalue,
145 bool compact);
146
148 const char *idname,
149 const EnumPropertyItem *items);
150wmKeyMap *WM_modalkeymap_find(wmKeyConfig *keyconf, const char *idname);
154 const char *value);
155const wmKeyMapItem *WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue);
156void WM_modalkeymap_assign(wmKeyMap *km, const char *opname);
157
158/* Keymap Editor. */
159
167
168/* Key Event. */
169
170const char *WM_key_event_string(short type, bool compact);
171std::optional<std::string> WM_keymap_item_raw_to_string(short shift,
172 short ctrl,
173 short alt,
174 short oskey,
175 short keymodifier,
176 short val,
177 short type,
178 bool compact);
184 const char *opname,
185 wmOperatorCallContext opcontext,
186 IDProperty *properties,
187 short include_mask,
188 short exclude_mask,
189 wmKeyMap **r_keymap);
190std::optional<std::string> WM_key_event_operator_string(const bContext *C,
191 const char *opname,
192 wmOperatorCallContext opcontext,
193 IDProperty *properties,
194 bool is_strict);
195
197 const char *opname,
198 IDProperty *properties,
199 short include_mask,
200 short exclude_mask);
201
202const char *WM_bool_as_string(bool test);
std::optional< std::string > WM_keymap_item_raw_to_string(short shift, short ctrl, short alt, short oskey, short keymodifier, short val, short type, bool compact)
void WM_keyconfig_clear(wmKeyConfig *keyconf)
Definition wm_keymap.cc:350
wmKeyMapItem * WM_keymap_add_panel(wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyConfig * WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined)
Definition wm_keymap.cc:289
std::optional< std::string > WM_modalkeymap_operator_items_to_string(wmOperatorType *ot, int propvalue, bool compact)
wmKeyMap * WM_keymap_guess_from_context(const bContext *C)
void WM_keymap_item_restore_to_default(wmWindowManager *wm, wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_keymap_restore_to_default(wmKeyMap *keymap, wmWindowManager *wm)
wmKeyMapItem * WM_keymap_add_item_copy(wmKeyMap *keymap, wmKeyMapItem *kmi_src)
Definition wm_keymap.cc:566
wmKeyMap * WM_keymap_find_all_spaceid_or_empty(wmWindowManager *wm, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:916
wmKeyMap * WM_modalkeymap_ensure(wmKeyConfig *keyconf, const char *idname, const EnumPropertyItem *items)
Definition wm_keymap.cc:933
wmKeyMap * WM_keymap_list_find_spaceid_or_empty(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:881
void WM_keyconfig_update(wmWindowManager *wm)
wmKeyMapItem * WM_keymap_add_menu(wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
wmKeyMapItem * WM_keymap_item_find_id(wmKeyMap *keymap, int id)
wmKeyMapItem * WM_modalkeymap_add_item(wmKeyMap *km, const KeyMapItem_Params *params, int value)
Definition wm_keymap.cc:973
void WM_keymap_item_properties_reset(wmKeyMapItem *kmi, IDProperty *properties)
Definition wm_keymap.cc:204
wmKeyMapItem * WM_keymap_add_menu_pie(wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
void WM_keyconfig_update_ex(wmWindowManager *wm, bool keep_properties)
void WM_modalkeymap_assign(wmKeyMap *km, const char *opname)
void WM_keymap_clear(wmKeyMap *keymap)
Definition wm_keymap.cc:445
bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, int event_modifier)
wmKeyMap * WM_keymap_find_all(wmWindowManager *wm, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:911
void WM_keyconfig_init(bContext *C)
Definition wm.cc:440
wmKeyConfig * WM_keyconfig_ensure(wmWindowManager *wm, const char *idname, bool user_defined)
Definition wm_keymap.cc:305
int WM_keymap_item_map_type_get(const wmKeyMapItem *kmi)
Definition wm_keymap.cc:221
void WM_keyconfig_update_operatortype()
void WM_keyconfig_free(wmKeyConfig *keyconf)
Definition wm_keymap.cc:360
bool WM_keymap_poll(bContext *C, wmKeyMap *keymap)
Definition wm_keymap.cc:469
wmKeyMapItem * WM_key_event_operator(const bContext *C, const char *opname, wmOperatorCallContext opcontext, IDProperty *properties, short include_mask, short exclude_mask, wmKeyMap **r_keymap)
void WM_keyconfig_update_suppress_begin()
wmKeyMap * WM_keymap_active(const wmWindowManager *wm, wmKeyMap *keymap)
void WM_keyconfig_reload(bContext *C)
Definition wm.cc:430
wmKeyMap * WM_modalkeymap_find(wmKeyConfig *keyconf, const char *idname)
Definition wm_keymap.cc:960
void WM_keyconfig_update_postpone_end()
std::optional< std::string > WM_keymap_item_to_string(const wmKeyMapItem *kmi, bool compact)
void WM_keyconfig_update_suppress_end()
wmKeyMapItem * WM_keymap_add_item(wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
Definition wm_keymap.cc:546
std::optional< std::string > WM_key_event_operator_string(const bContext *C, const char *opname, wmOperatorCallContext opcontext, IDProperty *properties, bool is_strict)
void WM_keyconfig_update_postpone_begin()
const wmKeyMapItem * WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue)
void WM_keyconfig_set_active(wmWindowManager *wm, const char *idname)
Definition wm_keymap.cc:381
const char * WM_bool_as_string(bool test)
void WM_keymap_remove(wmKeyConfig *keyconf, wmKeyMap *keymap)
Definition wm_keymap.cc:461
void WM_keymap_fix_linking()
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:897
wmKeyMap * WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:868
wmKeyMapItem * WM_modalkeymap_add_item_str(wmKeyMap *km, const KeyMapItem_Params *params, const char *value)
Definition wm_keymap.cc:990
void WM_keyconfig_remove(wmWindowManager *wm, wmKeyConfig *keyconf)
Definition wm_keymap.cc:328
void WM_keyconfig_update_tag(wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_keymap_remove_item(wmKeyMap *keymap, wmKeyMapItem *kmi)
Definition wm_keymap.cc:579
const char * WM_key_event_string(short type, bool compact)
bool WM_keymap_item_compare(const wmKeyMapItem *k1, const wmKeyMapItem *k2)
wmKeyMapItem * WM_key_event_operator_from_keymap(wmKeyMap *keymap, const char *opname, IDProperty *properties, short include_mask, short exclude_mask)
wmKeyMap * WM_keymap_guess_opname(const bContext *C, const char *opname)
wmKeyMapItem * WM_keymap_add_tool(wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
std::optional< std::string > WM_modalkeymap_items_to_string(const wmKeyMap *km, int propvalue, bool compact)
wmOperatorCallContext
Definition WM_types.hh:216
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
signed short int16_t
Definition stdint.h:76
signed char int8_t
Definition stdint.h:75
int16_t keymodifier
Definition WM_keymap.hh:60
wmOperatorType * ot
Definition wm_files.cc:4125