Blender  V3.3
WM_keymap.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2007 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
10 /* dna-savable wmStructs here */
11 #include "BLI_utildefines.h"
13 #include "WM_types.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 struct EnumPropertyItem;
20 
21 /* Key Configuration */
22 
23 void WM_keyconfig_init(struct bContext *C);
24 void WM_keyconfig_reload(struct bContext *C);
25 
26 wmKeyConfig *WM_keyconfig_new(struct wmWindowManager *wm, const char *idname, bool user_defined);
27 wmKeyConfig *WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname);
28 bool WM_keyconfig_remove(struct wmWindowManager *wm, struct wmKeyConfig *keyconf);
29 void WM_keyconfig_clear(struct wmKeyConfig *keyconf);
30 void WM_keyconfig_free(struct wmKeyConfig *keyconf);
31 
32 void WM_keyconfig_set_active(struct wmWindowManager *wm, const char *idname);
33 
34 void WM_keyconfig_update(struct wmWindowManager *wm);
35 void WM_keyconfig_update_tag(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
37 
38 /* Keymap */
39 
41 typedef struct KeyMapItem_Params {
53 
54 void WM_keymap_clear(struct wmKeyMap *keymap);
55 
60  const char *idname,
61  const KeyMapItem_Params *params);
63 
64 bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
65 int WM_keymap_item_to_string(const wmKeyMapItem *kmi, bool compact, char *result, int result_len);
66 
67 wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid);
69  const char *idname,
70  int spaceid,
71  int regionid);
72 wmKeyMap *WM_keymap_ensure(struct wmKeyConfig *keyconf,
73  const char *idname,
74  int spaceid,
75  int regionid);
77  const char *idname,
78  int spaceid,
79  int regionid);
81  const char *idname,
82  int spaceid,
83  int regionid);
84 wmKeyMap *WM_keymap_active(const struct wmWindowManager *wm, struct wmKeyMap *keymap);
85 bool WM_keymap_remove(struct wmKeyConfig *keyconfig, struct wmKeyMap *keymap);
86 bool WM_keymap_poll(struct bContext *C, struct wmKeyMap *keymap);
87 
88 wmKeyMapItem *WM_keymap_item_find_id(struct wmKeyMap *keymap, int id);
89 bool WM_keymap_item_compare(const struct wmKeyMapItem *k1, const struct wmKeyMapItem *k2);
90 
91 /* keymap_utils.c */
92 
93 /* Wrappers for #WM_keymap_add_item */
94 
99  const char *idname,
100  const KeyMapItem_Params *params);
105  const char *idname,
106  const KeyMapItem_Params *params);
111  const char *idname,
112  const KeyMapItem_Params *params);
117  const char *idname,
118  const KeyMapItem_Params *params);
119 
121 
127 wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname);
128 
129 bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, int event_modifier);
130 
131 void WM_keymap_fix_linking(void);
132 
133 /* Modal Keymap */
134 
136  const struct wmKeyMap *km, int propvalue, bool compact, char *result, int result_len);
138  struct wmOperatorType *ot, int propvalue, bool compact, char *result, int result_len);
140  int propvalue,
141  bool compact,
142  int max_len,
143  int *r_available_len,
144  char **r_result);
145 
147  const char *idname,
148  const struct EnumPropertyItem *items);
149 wmKeyMap *WM_modalkeymap_find(struct wmKeyConfig *keyconf, const char *idname);
151  const KeyMapItem_Params *params,
152  int value);
154  const KeyMapItem_Params *params,
155  const char *value);
156 const wmKeyMapItem *WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue);
157 void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname);
158 
159 /* Keymap Editor */
160 
161 void WM_keymap_restore_to_default(struct wmKeyMap *keymap, struct wmWindowManager *wm);
165 void WM_keymap_item_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties);
167  struct wmKeyMap *keymap,
168  struct wmKeyMapItem *kmi);
170 
171 /* Key Event */
172 
173 const char *WM_key_event_string(short type, bool compact);
174 int WM_keymap_item_raw_to_string(short shift,
175  short ctrl,
176  short alt,
177  short oskey,
178  short keymodifier,
179  short val,
180  short type,
181  bool compact,
182  char *result,
183  int result_len);
189  const char *opname,
190  wmOperatorCallContext opcontext,
191  struct IDProperty *properties,
192  short include_mask,
193  short exclude_mask,
194  struct wmKeyMap **r_keymap);
196  const char *opname,
197  wmOperatorCallContext opcontext,
198  struct IDProperty *properties,
199  bool is_strict,
200  char *result,
201  int result_len);
202 
204  const char *opname,
205  struct IDProperty *properties,
206  short include_mask,
207  short exclude_mask);
208 
209 const char *WM_bool_as_string(bool test);
210 
211 #ifdef __cplusplus
212 }
213 #endif
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define C
Definition: RandGen.cpp:25
wmKeyConfig * WM_keyconfig_new(struct wmWindowManager *wm, const char *idname, bool user_defined)
Definition: wm_keymap.c:259
wmKeyMapItem * WM_modalkeymap_add_item(struct wmKeyMap *km, const KeyMapItem_Params *params, int value)
Definition: wm_keymap.c:927
wmKeyMap * WM_modalkeymap_ensure(struct wmKeyConfig *keyconf, const char *idname, const struct EnumPropertyItem *items)
wmKeyMapItem * WM_keymap_add_panel(struct wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
bool WM_keymap_item_compare(const struct wmKeyMapItem *k1, const struct wmKeyMapItem *k2)
wmKeyMapItem * WM_key_event_operator_from_keymap(struct wmKeyMap *keymap, const char *opname, struct IDProperty *properties, short include_mask, short exclude_mask)
Definition: wm_keymap.c:1695
wmKeyMap * WM_keymap_guess_opname(const struct bContext *C, const char *opname)
void WM_keyconfig_update_tag(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi)
Definition: wm_keymap.c:1787
void WM_keymap_clear(struct wmKeyMap *keymap)
Definition: wm_keymap.c:405
bool WM_keymap_remove(struct wmKeyConfig *keyconfig, struct wmKeyMap *keymap)
Definition: wm_keymap.c:419
const char * WM_key_event_string(short type, bool compact)
Definition: wm_keymap.c:1046
bool WM_keyconfig_remove(struct wmWindowManager *wm, struct wmKeyConfig *keyconf)
Definition: wm_keymap.c:295
void WM_keymap_item_restore_to_default(wmWindowManager *wm, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi)
Definition: wm_keymap.c:1968
void WM_keyconfig_free(struct wmKeyConfig *keyconf)
Definition: wm_keymap.c:321
struct KeyMapItem_Params KeyMapItem_Params
wmKeyMapItem * WM_keymap_add_menu_pie(struct wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
void WM_keymap_fix_linking(void)
bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, int event_modifier)
int WM_keymap_item_to_string(const wmKeyMapItem *kmi, bool compact, char *result, int result_len)
Definition: wm_keymap.c:1213
void WM_keyconfig_set_active(struct wmWindowManager *wm, const char *idname)
Definition: wm_keymap.c:341
int WM_keymap_item_map_type_get(const struct wmKeyMapItem *kmi)
void WM_keyconfig_clear(struct wmKeyConfig *keyconf)
Definition: wm_keymap.c:312
void WM_keymap_restore_to_default(struct wmKeyMap *keymap, struct wmWindowManager *wm)
Definition: wm_keymap.c:2026
const char * WM_bool_as_string(bool test)
Definition: wm_keymap.c:2052
wmKeyMap * WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:823
int WM_modalkeymap_operator_items_to_string(struct wmOperatorType *ot, int propvalue, bool compact, char *result, int result_len)
Definition: wm_keymap.c:1259
wmKeyMapItem * WM_keymap_add_tool(struct wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
void WM_keyconfig_init(struct bContext *C)
Definition: wm.c:433
void WM_keyconfig_update_operatortype(void)
Definition: wm_keymap.c:1800
void WM_keyconfig_update(struct wmWindowManager *wm)
Definition: wm_keymap.c:1829
int WM_keymap_item_raw_to_string(short shift, short ctrl, short alt, short oskey, short keymodifier, short val, short type, bool compact, char *result, int result_len)
Definition: wm_keymap.c:1141
char * WM_modalkeymap_operator_items_to_string_buf(struct wmOperatorType *ot, int propvalue, bool compact, int max_len, int *r_available_len, char **r_result)
Definition: wm_keymap.c:1270
wmKeyMap * WM_keymap_guess_from_context(const struct bContext *C)
const wmKeyMapItem * WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue)
Definition: wm_keymap.c:980
wmKeyMapItem * WM_key_event_operator(const struct bContext *C, const char *opname, wmOperatorCallContext opcontext, struct IDProperty *properties, short include_mask, short exclude_mask, struct wmKeyMap **r_keymap)
void WM_keymap_item_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties)
Definition: wm_keymap.c:177
wmKeyMapItem * WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
Definition: wm_keymap.c:505
bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi)
Definition: wm_keymap.c:537
wmKeyMapItem * WM_keymap_add_menu(struct wmKeyMap *keymap, const char *idname, const KeyMapItem_Params *params)
char * WM_key_event_operator_string(const struct bContext *C, const char *opname, wmOperatorCallContext opcontext, struct IDProperty *properties, bool is_strict, char *result, int result_len)
wmKeyMap * WM_keymap_active(const struct wmWindowManager *wm, struct wmKeyMap *keymap)
wmKeyMap * WM_keymap_find_all_spaceid_or_empty(struct wmWindowManager *wm, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:871
bool WM_keymap_poll(struct bContext *C, struct wmKeyMap *keymap)
Definition: wm_keymap.c:432
wmKeyConfig * WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname)
Definition: wm_keymap.c:290
wmKeyMapItem * WM_modalkeymap_add_item_str(struct wmKeyMap *km, const KeyMapItem_Params *params, const char *value)
Definition: wm_keymap.c:943
wmKeyMapItem * WM_keymap_item_find_id(struct wmKeyMap *keymap, int id)
Definition: wm_keymap.c:2041
wmKeyMap * WM_keymap_ensure(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:852
void WM_keyconfig_reload(struct bContext *C)
Definition: wm.c:424
wmKeyMap * WM_keymap_list_find_spaceid_or_empty(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:836
wmKeyMap * WM_modalkeymap_find(struct wmKeyConfig *keyconf, const char *idname)
Definition: wm_keymap.c:914
int WM_modalkeymap_items_to_string(const struct wmKeyMap *km, int propvalue, bool compact, char *result, int result_len)
wmKeyMapItem * WM_keymap_add_item_copy(struct wmKeyMap *keymap, wmKeyMapItem *kmi_src)
Definition: wm_keymap.c:524
wmKeyMap * WM_keymap_find_all(struct wmWindowManager *wm, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:866
void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname)
Definition: wm_keymap.c:985
wmOperatorCallContext
Definition: WM_types.h:199
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.h:49
int8_t direction
Definition: WM_keymap.h:51
wmOperatorType * ot
Definition: wm_files.c:3479