Blender  V2.93
WM_keymap.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2007 Blender Foundation.
17  * All rights reserved.
18  */
19 
20 #pragma once
21 
26 /* dna-savable wmStructs here */
27 #include "BLI_utildefines.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 struct EnumPropertyItem;
35 
36 /* Key Configuration */
37 
38 void WM_keyconfig_init(struct bContext *C);
39 void WM_keyconfig_reload(struct bContext *C);
40 
41 wmKeyConfig *WM_keyconfig_new(struct wmWindowManager *wm, const char *idname, bool user_defined);
42 wmKeyConfig *WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname);
43 bool WM_keyconfig_remove(struct wmWindowManager *wm, struct wmKeyConfig *keyconf);
44 void WM_keyconfig_clear(struct wmKeyConfig *keyconf);
45 void WM_keyconfig_free(struct wmKeyConfig *keyconf);
46 
47 void WM_keyconfig_set_active(struct wmWindowManager *wm, const char *idname);
48 
49 void WM_keyconfig_update(struct wmWindowManager *wm);
50 void WM_keyconfig_update_tag(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
52 
53 /* Keymap */
54 
55 void WM_keymap_clear(struct wmKeyMap *keymap);
56 
58  struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier);
60 
61 bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
63  const bool compact,
64  char *result,
65  const 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 
95  struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier);
97  struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier);
99  struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier);
101  struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier);
102 
104  const struct EnumPropertyItem *items,
105  const char *data_path,
106  int type_start,
107  int val,
108  int modifier,
109  int keymodifier);
110 
112 wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname);
113 
114 bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, const int event_modifier);
115 
116 void WM_keymap_fix_linking(void);
117 
118 /* Modal Keymap */
119 
121  const int propvalue,
122  const bool compact,
123  char *result,
124  const int result_len);
126  const int propvalue,
127  const bool compact,
128  char *result,
129  const int result_len);
131  const int propvalue,
132  const bool compact,
133  const int max_len,
134  int *r_available_len,
135  char **r_result);
136 
138  const char *idname,
139  const struct EnumPropertyItem *items);
140 wmKeyMap *WM_modalkeymap_find(struct wmKeyConfig *keyconf, const char *idname);
142  struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, int value);
144  struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, const char *value);
145 const wmKeyMapItem *WM_modalkeymap_find_propvalue(const wmKeyMap *km, const int propvalue);
146 void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname);
147 
148 /* Keymap Editor */
149 
150 void WM_keymap_restore_to_default(struct wmKeyMap *keymap, struct wmWindowManager *wm);
151 void WM_keymap_item_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties);
153  struct wmKeyMap *keymap,
154  struct wmKeyMapItem *kmi);
156 
157 /* Key Event */
158 
159 const char *WM_key_event_string(const short type, const bool compact);
160 int WM_keymap_item_raw_to_string(const short shift,
161  const short ctrl,
162  const short alt,
163  const short oskey,
164  const short keymodifier,
165  const short val,
166  const short type,
167  const bool compact,
168  char *result,
169  const int result_len);
171  const char *opname,
172  int opcontext,
173  struct IDProperty *properties,
174  const short include_mask,
175  const short exclude_mask,
176  struct wmKeyMap **r_keymap);
178  const char *opname,
179  int opcontext,
180  struct IDProperty *properties,
181  const bool is_strict,
182  char *result,
183  const int result_len);
184 
186  const char *opname,
187  struct IDProperty *properties,
188  const short include_mask,
189  const short exclude_mask);
190 
191 const char *WM_bool_as_string(bool test);
192 
193 #ifdef __cplusplus
194 }
195 #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:39
wmKeyConfig * WM_keyconfig_new(struct wmWindowManager *wm, const char *idname, bool user_defined)
Definition: wm_keymap.c:278
wmKeyMapItem * WM_key_event_operator(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, const short include_mask, const short exclude_mask, struct wmKeyMap **r_keymap)
wmKeyMap * WM_modalkeymap_ensure(struct wmKeyConfig *keyconf, const char *idname, const struct EnumPropertyItem *items)
bool WM_keymap_item_compare(const struct wmKeyMapItem *k1, const struct wmKeyMapItem *k2)
const char * WM_key_event_string(const short type, const bool compact)
Definition: wm_keymap.c:1046
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:1739
void WM_keymap_clear(struct wmKeyMap *keymap)
Definition: wm_keymap.c:424
bool WM_keymap_remove(struct wmKeyConfig *keyconfig, struct wmKeyMap *keymap)
Definition: wm_keymap.c:438
char * WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, const bool is_strict, char *result, const int result_len)
bool WM_keyconfig_remove(struct wmWindowManager *wm, struct wmKeyConfig *keyconf)
Definition: wm_keymap.c:314
wmKeyMapItem * WM_keymap_add_panel(struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier)
void WM_keymap_item_restore_to_default(wmWindowManager *wm, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi)
Definition: wm_keymap.c:1920
wmKeyMapItem * WM_keymap_add_menu_pie(struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier)
void WM_keyconfig_free(struct wmKeyConfig *keyconf)
Definition: wm_keymap.c:340
void WM_keymap_fix_linking(void)
wmKeyMapItem * WM_modalkeymap_add_item_str(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, const char *value)
Definition: wm_keymap.c:944
void WM_keyconfig_set_active(struct wmWindowManager *wm, const char *idname)
Definition: wm_keymap.c:360
int WM_keymap_item_map_type_get(const struct wmKeyMapItem *kmi)
void WM_keyconfig_clear(struct wmKeyConfig *keyconf)
Definition: wm_keymap.c:331
void WM_keymap_restore_to_default(struct wmKeyMap *keymap, struct wmWindowManager *wm)
Definition: wm_keymap.c:1977
const char * WM_bool_as_string(bool test)
Definition: wm_keymap.c:2003
wmKeyMap * WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:823
wmKeyMapItem * WM_modalkeymap_add_item(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, int value)
Definition: wm_keymap.c:927
int WM_keymap_item_to_string(const wmKeyMapItem *kmi, const bool compact, char *result, const int result_len)
Definition: wm_keymap.c:1213
wmKeyMapItem * WM_keymap_add_tool(struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier)
void WM_keyconfig_init(struct bContext *C)
Definition: wm.c:448
void WM_keyconfig_update_operatortype(void)
Definition: wm_keymap.c:1752
void WM_keyconfig_update(struct wmWindowManager *wm)
Definition: wm_keymap.c:1781
int WM_modalkeymap_items_to_string(const struct wmKeyMap *km, const int propvalue, const bool compact, char *result, const int result_len)
wmKeyMap * WM_keymap_guess_from_context(const struct bContext *C)
bool WM_keymap_uses_event_modifier(const wmKeyMap *keymap, const int event_modifier)
void WM_keymap_item_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties)
Definition: wm_keymap.c:193
bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi)
Definition: wm_keymap.c:537
wmKeyMapItem * WM_key_event_operator_from_keymap(struct wmKeyMap *keymap, const char *opname, struct IDProperty *properties, const short include_mask, const short exclude_mask)
Definition: wm_keymap.c:1650
wmKeyMap * WM_keymap_active(const struct wmWindowManager *wm, struct wmKeyMap *keymap)
void WM_keymap_add_context_enum_set_items(wmKeyMap *keymap, const struct EnumPropertyItem *items, const char *data_path, int type_start, int val, int modifier, int keymodifier)
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:451
const wmKeyMapItem * WM_modalkeymap_find_propvalue(const wmKeyMap *km, const int propvalue)
Definition: wm_keymap.c:980
wmKeyConfig * WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname)
Definition: wm_keymap.c:309
int WM_modalkeymap_operator_items_to_string(struct wmOperatorType *ot, const int propvalue, const bool compact, char *result, const int result_len)
Definition: wm_keymap.c:1259
wmKeyMapItem * WM_keymap_item_find_id(struct wmKeyMap *keymap, int id)
Definition: wm_keymap.c:1992
char * WM_modalkeymap_operator_items_to_string_buf(struct wmOperatorType *ot, const int propvalue, const bool compact, const int max_len, int *r_available_len, char **r_result)
Definition: wm_keymap.c:1270
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:439
wmKeyMap * WM_keymap_list_find_spaceid_or_empty(ListBase *lb, const char *idname, int spaceid, int regionid)
Definition: wm_keymap.c:836
int WM_keymap_item_raw_to_string(const short shift, const short ctrl, const short alt, const short oskey, const short keymodifier, const short val, const short type, const bool compact, char *result, const int result_len)
Definition: wm_keymap.c:1142
wmKeyMap * WM_modalkeymap_find(struct wmKeyConfig *keyconf, const char *idname)
Definition: wm_keymap.c:914
wmKeyMapItem * WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier)
Definition: wm_keymap.c:506
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
wmKeyMapItem * WM_keymap_add_menu(struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier)
wmOperatorType * ot
Definition: wm_files.c:3156