LEFT | RIGHT |
1 /* | 1 /* |
2 * ***** BEGIN GPL LICENSE BLOCK ***** | 2 * ***** BEGIN GPL LICENSE BLOCK ***** |
3 * | 3 * |
4 * This program is free software; you can redistribute it and/or | 4 * This program is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU General Public License | 5 * modify it under the terms of the GNU General Public License |
6 * as published by the Free Software Foundation; either version 2 | 6 * as published by the Free Software Foundation; either version 2 |
7 * of the License, or (at your option) any later version.· | 7 * of the License, or (at your option) any later version.· |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 WM_operatortype_append(OBJECT_OT_modifier_move_down); | 132 WM_operatortype_append(OBJECT_OT_modifier_move_down); |
133 WM_operatortype_append(OBJECT_OT_modifier_apply); | 133 WM_operatortype_append(OBJECT_OT_modifier_apply); |
134 WM_operatortype_append(OBJECT_OT_modifier_convert); | 134 WM_operatortype_append(OBJECT_OT_modifier_convert); |
135 WM_operatortype_append(OBJECT_OT_modifier_copy); | 135 WM_operatortype_append(OBJECT_OT_modifier_copy); |
136 WM_operatortype_append(OBJECT_OT_multires_subdivide); | 136 WM_operatortype_append(OBJECT_OT_multires_subdivide); |
137 WM_operatortype_append(OBJECT_OT_multires_reshape); | 137 WM_operatortype_append(OBJECT_OT_multires_reshape); |
138 WM_operatortype_append(OBJECT_OT_multires_higher_levels_delete); | 138 WM_operatortype_append(OBJECT_OT_multires_higher_levels_delete); |
139 WM_operatortype_append(OBJECT_OT_multires_base_apply); | 139 WM_operatortype_append(OBJECT_OT_multires_base_apply); |
140 WM_operatortype_append(OBJECT_OT_multires_external_save); | 140 WM_operatortype_append(OBJECT_OT_multires_external_save); |
141 WM_operatortype_append(OBJECT_OT_multires_external_pack); | 141 WM_operatortype_append(OBJECT_OT_multires_external_pack); |
142 WM_operatortype_append(OBJECT_OT_skin_root_mark); | |
143 WM_operatortype_append(OBJECT_OT_skin_loose_mark_clear); | |
144 WM_operatortype_append(OBJECT_OT_skin_radii_equalize); | |
145 WM_operatortype_append(OBJECT_OT_skin_armature_create); | |
146 | |
147 WM_operatortype_append(OBJECT_OT_meshdeform_bind); | 142 WM_operatortype_append(OBJECT_OT_meshdeform_bind); |
148 WM_operatortype_append(OBJECT_OT_explode_refresh); | 143 WM_operatortype_append(OBJECT_OT_explode_refresh); |
149 WM_operatortype_append(OBJECT_OT_ocean_bake); | 144 WM_operatortype_append(OBJECT_OT_ocean_bake); |
150 ········ | |
151 WM_operatortype_append(OBJECT_OT_constraint_add); | |
152 WM_operatortype_append(OBJECT_OT_constraint_add_with_targets); | |
153 WM_operatortype_append(POSE_OT_constraint_add); | |
154 WM_operatortype_append(POSE_OT_constraint_add_with_targets); | |
155 WM_operatortype_append(OBJECT_OT_constraints_copy); | |
156 WM_operatortype_append(POSE_OT_constraints_copy); | |
157 WM_operatortype_append(OBJECT_OT_constraints_clear); | |
158 WM_operatortype_append(POSE_OT_constraints_clear); | |
159 WM_operatortype_append(POSE_OT_ik_add); | |
160 WM_operatortype_append(POSE_OT_ik_clear); | |
161 WM_operatortype_append(CONSTRAINT_OT_delete); | |
162 WM_operatortype_append(CONSTRAINT_OT_move_up); | |
163 WM_operatortype_append(CONSTRAINT_OT_move_down); | |
164 WM_operatortype_append(CONSTRAINT_OT_stretchto_reset); | |
165 WM_operatortype_append(CONSTRAINT_OT_limitdistance_reset); | |
166 WM_operatortype_append(CONSTRAINT_OT_childof_set_inverse); | |
167 WM_operatortype_append(CONSTRAINT_OT_childof_clear_inverse); | |
168 WM_operatortype_append(CONSTRAINT_OT_objectsolver_set_inverse); | |
169 WM_operatortype_append(CONSTRAINT_OT_objectsolver_clear_inverse); | |
170 | |
171 WM_operatortype_append(OBJECT_OT_vertex_group_add); | |
172 WM_operatortype_append(OBJECT_OT_vertex_group_remove); | |
173 WM_operatortype_append(OBJECT_OT_vertex_group_assign); | |
174 WM_operatortype_append(OBJECT_OT_vertex_group_remove_from); | |
175 WM_operatortype_append(OBJECT_OT_vertex_group_select); | |
176 WM_operatortype_append(OBJECT_OT_vertex_group_deselect); | |
177 WM_operatortype_append(OBJECT_OT_vertex_group_copy_to_linked); | |
178 WM_operatortype_append(OBJECT_OT_vertex_group_copy_to_selected); | |
179 WM_operatortype_append(OBJECT_OT_vertex_group_copy); | |
180 WM_operatortype_append(OBJECT_OT_vertex_group_normalize); | |
181 WM_operatortype_append(OBJECT_OT_vertex_group_normalize_all); | |
182 WM_operatortype_append(OBJECT_OT_vertex_group_lock); | |
183 WM_operatortype_append(OBJECT_OT_vertex_group_fix); | |
184 WM_operatortype_append(OBJECT_OT_vertex_group_invert); | |
185 WM_operatortype_append(OBJECT_OT_vertex_group_levels); | |
186 WM_operatortype_append(OBJECT_OT_vertex_group_blend); | |
187 WM_operatortype_append(OBJECT_OT_vertex_group_clean); | |
188 WM_operatortype_append(OBJECT_OT_vertex_group_mirror); | |
189 WM_operatortype_append(OBJECT_OT_vertex_group_set_active); | |
190 WM_operatortype_append(OBJECT_OT_vertex_group_sort); | |
191 WM_operatortype_append(OBJECT_OT_vertex_group_move); | |
192 | |
193 WM_operatortype_append(OBJECT_OT_game_property_new); | |
194 WM_operatortype_append(OBJECT_OT_game_property_remove); | |
195 WM_operatortype_append(OBJECT_OT_game_property_copy); | |
196 WM_operatortype_append(OBJECT_OT_game_property_clear); | |
197 WM_operatortype_append(OBJECT_OT_logic_bricks_copy); | |
198 WM_operatortype_append(OBJECT_OT_game_physics_copy); | |
199 | |
200 WM_operatortype_append(OBJECT_OT_shape_key_add); | |
201 WM_operatortype_append(OBJECT_OT_shape_key_remove); | |
202 WM_operatortype_append(OBJECT_OT_shape_key_clear); | |
203 WM_operatortype_append(OBJECT_OT_shape_key_retime); | |
204 WM_operatortype_append(OBJECT_OT_shape_key_mirror); | |
205 WM_operatortype_append(OBJECT_OT_shape_key_move); | |
206 | |
207 WM_operatortype_append(LATTICE_OT_select_all); | |
208 WM_operatortype_append(LATTICE_OT_make_regular); | |
209 | |
210 WM_operatortype_append(OBJECT_OT_group_add); | |
211 WM_operatortype_append(OBJECT_OT_group_link); | |
212 WM_operatortype_append(OBJECT_OT_group_remove); | |
213 | |
214 WM_operatortype_append(OBJECT_OT_hook_add_selobj); | |
215 WM_operatortype_append(OBJECT_OT_hook_add_newobj); | |
216 WM_operatortype_append(OBJECT_OT_hook_remove); | |
217 WM_operatortype_append(OBJECT_OT_hook_select); | |
218 WM_operatortype_append(OBJECT_OT_hook_assign); | |
219 WM_operatortype_append(OBJECT_OT_hook_reset); | |
220 WM_operatortype_append(OBJECT_OT_hook_recenter); | |
221 | |
222 WM_operatortype_append(OBJECT_OT_bake_image); | |
223 WM_operatortype_append(OBJECT_OT_drop_named_material); | |
224 } | |
225 | |
226 void ED_operatormacros_object(void) | |
227 { | |
228 wmOperatorType *ot; | |
229 wmOperatorTypeMacro *otmacro; | |
230 ········ | |
231 ot = WM_operatortype_append_macro("OBJECT_OT_duplicate_move", "Duplicate
Objects", | |
232 "Duplicate selected objects and move t
hem", OPTYPE_UNDO | OPTYPE_REGISTER); | |
233 if (ot) { | |
234 WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate"); | |
235 otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_transla
te"); | |
236 RNA_enum_set(otmacro->ptr, "proportional", PROP_EDIT_OFF); | |
237 } | |
238 | |
239 /* grr, should be able to pass options on... */ | |
240 ot = WM_operatortype_append_macro("OBJECT_OT_duplicate_move_linked", "Du
plicate Linked", | |
241 "Duplicate selected objects and move t
hem", OPTYPE_UNDO | OPTYPE_REGISTER); | |
242 if (ot) { | |
243 otmacro = WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate"
); | |
244 RNA_boolean_set(otmacro->ptr, "linked", TRUE); | |
245 otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_transla
te"); | |
246 RNA_enum_set(otmacro->ptr, "proportional", PROP_EDIT_OFF); | |
247 } | |
248 ········ | |
249 /* XXX */ | |
250 ot = WM_operatortype_append_macro("OBJECT_OT_add_named_cursor", "Add Nam
ed At Cursor", | |
251 "Add named object at cursor", OPTYPE_U
NDO | OPTYPE_REGISTER); | |
252 if (ot) { | |
253 RNA_def_string(ot->srna, "name", "Cube", MAX_ID_NAME - 2, "Name"
, "Object name to add"); | |
254 | |
255 WM_operatortype_macro_define(ot, "VIEW3D_OT_cursor3d"); | |
256 WM_operatortype_macro_define(ot, "OBJECT_OT_add_named"); | |
257 } | |
258 } | |
259 | |
260 static int object_mode_poll(bContext *C) | |
261 { | |
262 Object *ob = CTX_data_active_object(C); | |
263 return (!ob || ob->mode == OB_MODE_OBJECT); | |
264 } | |
265 | |
266 void ED_keymap_object(wmKeyConfig *keyconf) | |
267 { | |
268 wmKeyMap *keymap; | |
269 wmKeyMapItem *kmi; | |
270 int i; | |
271 ········ | |
272 /* Objects, Regardless of Mode -----------------------------------------
--------- */ | |
273 keymap = WM_keymap_find(keyconf, "Object Non-modal", 0, 0); | |
274 ········ | |
275 /* Note: this keymap works disregarding mode */ | |
276 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS,
0, 0); | |
277 RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT); | |
278 RNA_boolean_set(kmi->ptr, "toggle", TRUE); | |
279 | |
280 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS,
KM_CTRL, 0); | |
281 RNA_enum_set(kmi->ptr, "mode", OB_MODE_POSE); | |
282 RNA_boolean_set(kmi->ptr, "toggle", TRUE); | |
283 | |
284 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", VKEY, KM_PRESS, 0
, 0); | |
285 RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); | |
286 RNA_boolean_set(kmi->ptr, "toggle", TRUE); | |
287 ········ | |
288 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS,
KM_CTRL, 0); | |
289 RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); | |
290 RNA_boolean_set(kmi->ptr, "toggle", TRUE); | |
291 ········ | |
292 WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_AL
T | KM_SHIFT | KM_CTRL, 0); | |
293 | |
294 /* Object Mode ---------------------------------------------------------
------- */ | |
295 /* Note: this keymap gets disabled in non-objectmode, */ | |
296 keymap = WM_keymap_find(keyconf, "Object Mode", 0, 0); | |
297 keymap->poll = object_mode_poll; | |
298 ········ | |
299 /* object mode supports PET now */ | |
300 ED_object_generic_keymap(keyconf, keymap, 1); | |
301 | |
302 WM_keymap_add_item(keymap, "VIEW3D_OT_game_start", PKEY, KM_PRESS, 0, 0)
; | |
303 | |
304 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_all", AKEY, KM_PRESS,
0, 0); | |
305 RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); | |
306 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_all", IKEY, KM_PRESS,
KM_CTRL, 0); | |
307 RNA_enum_set(kmi->ptr, "action", SEL_INVERT); | |
308 | |
309 WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM
_SHIFT, 0); | |
310 WM_keymap_add_item(keymap, "OBJECT_OT_select_grouped", GKEY, KM_PRESS, K
M_SHIFT, 0); | |
311 WM_keymap_add_item(keymap, "OBJECT_OT_select_mirror", MKEY, KM_PRESS, KM
_CTRL | KM_SHIFT, 0); | |
312 ········ | |
313 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACK
ETKEY, KM_PRESS, 0, 0); | |
314 RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); | |
315 RNA_boolean_set(kmi->ptr, "extend", FALSE); | |
316 | |
317 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACK
ETKEY, KM_PRESS, KM_SHIFT, 0); | |
318 RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); | |
319 RNA_boolean_set(kmi->ptr, "extend", TRUE); | |
320 | |
321 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRAC
KETKEY, KM_PRESS, 0, 0); | |
322 RNA_enum_set_identifier(kmi->ptr, "direction", "CHILD"); | |
323 RNA_boolean_set(kmi->ptr, "extend", FALSE); | |
324 | |
325 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRAC
KETKEY, KM_PRESS, KM_SHIFT, 0); | |
326 RNA_enum_set_identifier(kmi->ptr, "direction", "CHILD"); | |
327 RNA_boolean_set(kmi->ptr, "extend", TRUE); | |
328 | |
329 WM_keymap_verify_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM
_CTRL, 0); | |
330 WM_keymap_verify_item(keymap, "OBJECT_OT_parent_no_inverse_set", PKEY, K
M_PRESS, KM_CTRL | KM_SHIFT, 0); | |
331 WM_keymap_verify_item(keymap, "OBJECT_OT_parent_clear", PKEY, KM_PRESS,
KM_ALT, 0); | |
332 WM_keymap_verify_item(keymap, "OBJECT_OT_track_set", TKEY, KM_PRESS, KM_
CTRL, 0); | |
333 WM_keymap_verify_item(keymap, "OBJECT_OT_track_clear", TKEY, KM_PRESS, K
M_ALT, 0); | |
334 ········ | |
335 WM_keymap_verify_item(keymap, "OBJECT_OT_constraint_add_with_targets", C
KEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0); | |
336 WM_keymap_verify_item(keymap, "OBJECT_OT_constraints_clear", CKEY, KM_PR
ESS, KM_CTRL | KM_ALT, 0); | |
337 ········ | |
338 WM_keymap_verify_item(keymap, "OBJECT_OT_location_clear", GKEY, KM_PRESS
, KM_ALT, 0); | |
339 WM_keymap_verify_item(keymap, "OBJECT_OT_rotation_clear", RKEY, KM_PRESS
, KM_ALT, 0); | |
340 WM_keymap_verify_item(keymap, "OBJECT_OT_scale_clear", SKEY, KM_PRESS, K
M_ALT, 0); | |
341 WM_keymap_verify_item(keymap, "OBJECT_OT_origin_clear", OKEY, KM_PRESS,
KM_ALT, 0); | |
342 ········ | |
343 WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_clear", HKEY, KM_PRESS,
KM_ALT, 0); | |
344 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRE
SS, 0, 0); | |
345 RNA_boolean_set(kmi->ptr, "unselected", FALSE); | |
346 | |
347 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRE
SS, KM_SHIFT, 0); | |
348 RNA_boolean_set(kmi->ptr, "unselected", TRUE); | |
349 | |
350 /* same as above but for rendering */ | |
351 WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_clear", HKEY, KM_PRESS
, KM_ALT | KM_CTRL, 0); | |
352 WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS,
KM_CTRL, 0); | |
353 | |
354 /* conflicts, removing */ | |
355 #if 0 | |
356 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_P
RESS, KM_SHIFT | KM_CTRL, 0) | |
357 RNA_boolean_set(kmi->ptr, "unselected", TRUE); | |
358 #endif | |
359 | |
360 WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0,
0); | |
361 ········ | |
362 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0,
0); | |
363 RNA_boolean_set(kmi->ptr, "use_global", FALSE); | |
364 | |
365 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, KM_
SHIFT, 0); | |
366 RNA_boolean_set(kmi->ptr, "use_global", TRUE); | |
367 | |
368 WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, 0, 0); | |
369 RNA_boolean_set(kmi->ptr, "use_global", FALSE); | |
370 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, K
M_SHIFT, 0); | |
371 RNA_boolean_set(kmi->ptr, "use_global", TRUE); | |
372 | |
373 WM_keymap_add_menu(keymap, "INFO_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); | |
374 | |
375 WM_keymap_add_item(keymap, "OBJECT_OT_duplicates_make_real", AKEY, KM_PR
ESS, KM_SHIFT | KM_CTRL, 0); | |
376 | |
377 WM_keymap_add_menu(keymap, "VIEW3D_MT_object_apply", AKEY, KM_PRESS, KM_
CTRL, 0); | |
378 WM_keymap_add_menu(keymap, "VIEW3D_MT_make_single_user", UKEY, KM_PRESS,
0, 0); | |
379 WM_keymap_add_menu(keymap, "VIEW3D_MT_make_links", LKEY, KM_PRESS, KM_CT
RL, 0); | |
380 | |
381 WM_keymap_add_item(keymap, "OBJECT_OT_duplicate_move", DKEY, KM_PRESS, K
M_SHIFT, 0); | |
382 WM_keymap_add_item(keymap, "OBJECT_OT_duplicate_move_linked", DKEY, KM_P
RESS, KM_ALT, 0); | |
383 ········ | |
384 WM_keymap_add_item(keymap, "OBJECT_OT_join", JKEY, KM_PRESS, KM_CTRL, 0)
; | |
385 WM_keymap_add_item(keymap, "OBJECT_OT_convert", CKEY, KM_PRESS, KM_ALT,
0); | |
386 WM_keymap_add_item(keymap, "OBJECT_OT_proxy_make", PKEY, KM_PRESS, KM_CT
RL | KM_ALT, 0); | |
387 WM_keymap_add_item(keymap, "OBJECT_OT_make_local", LKEY, KM_PRESS, 0, 0)
; | |
388 | |
389 // XXX this should probably be in screen instead... here for testing pur
poses in the meantime... - Aligorith | |
390 WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_P
RESS, 0, 0); | |
391 WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PR
ESS, KM_ALT, 0); | |
392 WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_
PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0); | |
393 ········ | |
394 WM_keymap_verify_item(keymap, "GROUP_OT_create", GKEY, KM_PRESS, KM_CTRL
, 0); | |
395 WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove", GKEY, KM_PRESS,
KM_CTRL | KM_ALT, 0); | |
396 WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PR
ESS, KM_SHIFT | KM_CTRL, 0); | |
397 WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM
_PRESS, KM_SHIFT | KM_ALT, 0); | |
398 | |
399 WM_keymap_add_menu(keymap, "VIEW3D_MT_object_specials", WKEY, KM_PRESS,
0, 0); | |
400 | |
401 for (i = 0; i <= 5; i++) { | |
402 kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZE
ROKEY + i, KM_PRESS, KM_CTRL, 0); | |
403 RNA_int_set(kmi->ptr, "level", i); | |
404 } | |
405 | |
406 /* #####################################################################
####### */ | |
407 /* ################################ LATTICE ############################
####### */ | |
408 /* #####################################################################
####### */ | |
409 | |
410 keymap = WM_keymap_find(keyconf, "Lattice", 0, 0); | |
411 keymap->poll = ED_operator_editlattice; | |
412 | |
413 kmi = WM_keymap_add_item(keymap, "LATTICE_OT_select_all", AKEY, KM_PRESS
, 0, 0); | |
414 RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); | |
415 kmi = WM_keymap_add_item(keymap, "LATTICE_OT_select_all", IKEY, KM_PRESS
, KM_CTRL, 0); | |
416 RNA_enum_set(kmi->ptr, "action", SEL_INVERT); | |
417 | |
418 WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS
, KM_CTRL, 0); | |
419 ········ | |
420 /* menus */ | |
421 WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0)
; | |
422 | |
423 ED_object_generic_keymap(keyconf, keymap, 2); | |
424 } | |
425 | |
426 void ED_object_generic_keymap(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyM
ap *keymap, int do_pet) | |
427 { | |
428 wmKeyMapItem *kmi; | |
429 | |
430 /* used by mesh, curve & lattice only */ | |
431 if (do_pet) { | |
432 /* context ops */ | |
433 kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_enum", OKE
Y, KM_PRESS, KM_SHIFT, 0); | |
434 RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportiona
l_edit_falloff"); | |
435 | |
436 // Object mode | |
437 if (do_pet == TRUE) { | |
438 | |
439 kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle",
OKEY, KM_PRESS, 0, 0); | |
440 RNA_string_set(kmi->ptr, "data_path", "tool_settings.use
_proportional_edit_objects"); | |
441 | |
442 } | |
443 else { // Edit mode | |
444 | |
445 kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_e
num", OKEY, KM_PRESS, 0, 0); | |
446 RNA_string_set(kmi->ptr, "data_path", "tool_settings.pro
portional_edit"); | |
447 RNA_string_set(kmi->ptr, "value_1", "DISABLED"); | |
448 RNA_string_set(kmi->ptr, "value_2", "ENABLED"); | |
449 | |
450 /* for modes/object types that allow 'connected' mode, a
dd the Alt O key */ | |
451 if (do_pet == 3) { | |
452 kmi = WM_keymap_add_item(keymap, "WM_OT_context_
toggle_enum", OKEY, KM_PRESS, KM_ALT, 0); | |
453 RNA_string_set(kmi->ptr, "data_path", "tool_sett
ings.proportional_edit"); | |
454 RNA_string_set(kmi->ptr, "value_1", "DISABLED"); | |
455 RNA_string_set(kmi->ptr, "value_2", "CONNECTED")
; | |
456 } | |
457 } | |
458 } | |
459 } | |
460 | |
LEFT | RIGHT |