Blender V5.0
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
10
11#include <optional>
12#include <string>
13
15#include "WM_types.hh"
16
17#ifdef hyper /* MSVC defines. */
18# undef hyper
19#endif
20
21struct EnumPropertyItem;
22
23/* Key Configuration. */
24
27
28wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined);
29wmKeyConfig *WM_keyconfig_ensure(wmWindowManager *wm, const char *idname, bool user_defined);
31void WM_keyconfig_clear(wmKeyConfig *keyconf);
32void WM_keyconfig_free(wmKeyConfig *keyconf);
33
34void WM_keyconfig_set_active(wmWindowManager *wm, const char *idname);
35
41void WM_keyconfig_update_ex(wmWindowManager *wm, bool keep_properties);
46
49
52
54
58 int16_t type;
60 int8_t value;
72 int16_t modifier;
73
75 int16_t keymodifier;
77 int8_t direction;
78};
79
84#define KMI_PARAMS_MOD_TO_ANY(mod) ((mod) << 8)
89#define KMI_PARAMS_MOD_FROM_ANY(mod) ((mod) >> 8)
90
91void WM_keymap_clear(wmKeyMap *keymap);
92
97 const char *idname,
100
102std::optional<std::string> WM_keymap_item_to_string(const wmKeyMapItem *kmi, bool compact);
103
104wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid);
106 const char *idname,
107 int spaceid,
108 int regionid);
109wmKeyMap *WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid);
110wmKeyMap *WM_keymap_find_all(wmWindowManager *wm, const char *idname, int spaceid, int regionid);
112 const char *idname,
113 int spaceid,
114 int regionid);
116void WM_keymap_remove(wmKeyConfig *keyconf, wmKeyMap *keymap);
117bool WM_keymap_poll(bContext *C, wmKeyMap *keymap);
118
120bool WM_keymap_item_compare(const wmKeyMapItem *k1, const wmKeyMapItem *k2);
121
128 wmKeyMap *km_match,
129 wmKeyMapItem *kmi_match,
130 ReportList *reports);
131
132/* `wm_keymap_utils.cc`. */
133
134/* Wrappers for #WM_keymap_add_item. */
135
140 const char *idname,
146 const char *idname,
152 const char *idname,
158 const char *idname,
160
162
168wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname);
169
170bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, int event_modifier);
171
173
174/* Modal Keymap. */
175
176std::optional<std::string> WM_modalkeymap_items_to_string(const wmKeyMap *km,
177 int propvalue,
178 bool compact);
180 int propvalue,
181 bool compact);
182
184 const char *idname,
185 const EnumPropertyItem *items);
186wmKeyMap *WM_modalkeymap_find(wmKeyConfig *keyconf, const char *idname);
190 const char *value);
191const wmKeyMapItem *WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue);
192void WM_modalkeymap_assign(wmKeyMap *km, const char *opname);
193
194/* Keymap Editor. */
195
203
204/* Key Event. */
205
206const char *WM_key_event_string(short type, bool compact);
207std::optional<std::string> WM_keymap_item_raw_to_string(int8_t shift,
208 int8_t ctrl,
209 int8_t alt,
210 int8_t oskey,
211 int8_t hyper,
212 short keymodifier,
213 short val,
214 short type,
215 bool compact);
221 const char *opname,
223 IDProperty *properties,
224 short include_mask,
225 short exclude_mask,
226 wmKeyMap **r_keymap);
227std::optional<std::string> WM_key_event_operator_string(const bContext *C,
228 const char *opname,
230 IDProperty *properties,
231 bool is_strict);
232
234 const char *opname,
235 IDProperty *properties,
236 short include_mask,
237 short exclude_mask);
238
239const char *WM_bool_as_string(bool test);
#define C
Definition RandGen.cpp:29
void WM_keyconfig_clear(wmKeyConfig *keyconf)
Definition wm_keymap.cc:351
wmKeyMapItem * WM_keymap_add_panel(wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
void WM_keyconfig_update_on_startup(wmWindowManager *wm)
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)
wmKeyConfig * WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined)
Definition wm_keymap.cc:291
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_keyconfig_update_operatortype_tag()
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:567
wmKeyMap * WM_keymap_find_all_spaceid_or_empty(wmWindowManager *wm, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:914
wmKeyMap * WM_modalkeymap_ensure(wmKeyConfig *keyconf, const char *idname, const EnumPropertyItem *items)
Definition wm_keymap.cc:932
wmKeyMap * WM_keymap_list_find_spaceid_or_empty(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:879
std::optional< std::string > WM_key_event_operator_string(const bContext *C, const char *opname, blender::wm::OpCallContext opcontext, IDProperty *properties, bool is_strict)
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:972
void WM_keymap_item_properties_reset(wmKeyMapItem *kmi, IDProperty *properties)
Definition wm_keymap.cc:206
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:446
bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, int event_modifier)
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)
wmKeyMap * WM_keymap_find_all(wmWindowManager *wm, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:909
void WM_keyconfig_init(bContext *C)
Definition wm.cc:416
wmKeyConfig * WM_keyconfig_ensure(wmWindowManager *wm, const char *idname, bool user_defined)
Definition wm_keymap.cc:306
int WM_keymap_item_map_type_get(const wmKeyMapItem *kmi)
Definition wm_keymap.cc:223
void WM_keyconfig_free(wmKeyConfig *keyconf)
Definition wm_keymap.cc:361
bool WM_keymap_poll(bContext *C, wmKeyMap *keymap)
Definition wm_keymap.cc:470
void WM_keyconfig_update_suppress_begin()
wmKeyMap * WM_keymap_active(const wmWindowManager *wm, wmKeyMap *keymap)
void WM_keyconfig_reload(bContext *C)
Definition wm.cc:406
wmKeyMap * WM_modalkeymap_find(wmKeyConfig *keyconf, const char *idname)
Definition wm_keymap.cc:959
void WM_keyconfig_update_postpone_end()
wmKeyMapItem * WM_keymap_item_find_match(wmKeyMap *km_base, wmKeyMap *km_match, wmKeyMapItem *kmi_match, ReportList *reports)
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:548
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:382
const char * WM_bool_as_string(bool test)
void WM_keymap_remove(wmKeyConfig *keyconf, wmKeyMap *keymap)
Definition wm_keymap.cc:462
void WM_keymap_fix_linking()
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:895
wmKeyMap * WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition wm_keymap.cc:866
wmKeyMapItem * WM_modalkeymap_add_item_str(wmKeyMap *km, const KeyMapItem_Params *params, const char *value)
Definition wm_keymap.cc:988
void WM_keyconfig_remove(wmWindowManager *wm, wmKeyConfig *keyconf)
Definition wm_keymap.cc:329
void WM_keyconfig_update_tag(wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_keymap_remove_item(wmKeyMap *keymap, wmKeyMapItem *kmi)
Definition wm_keymap.cc:580
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)
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
int16_t keymodifier
Definition WM_keymap.hh:75
wmOperatorType * ot
Definition wm_files.cc:4237