diff options
Diffstat (limited to 'source/blender/editors/transform/transform_ops.c')
-rw-r--r-- | source/blender/editors/transform/transform_ops.c | 168 |
1 files changed, 6 insertions, 162 deletions
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index ee0b11ead11..853816e8dc9 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -1194,170 +1194,14 @@ void transform_operatortypes(void) WM_operatortype_append(TRANSFORM_OT_from_gizmo); } -void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spaceid) +void ED_keymap_transform(wmKeyConfig *keyconf) { - wmKeyMapItem *kmi; - wmKeyMap *modalmap; + wmKeyMap *modalmap = transform_modal_keymap(keyconf); - /* transform.c, only adds modal map once, checks if it's there */ - modalmap = transform_modal_keymap(keyconf); - - /* assign map to operators only the first time */ - if (modalmap) { - TransformModeItem *tmode; - - for (tmode = transform_modes; tmode->idname; tmode++) { - WM_modalkeymap_assign(modalmap, tmode->idname); - } - WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform"); - } - - switch (spaceid) { - case SPACE_VIEW3D: - WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - - WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_BEND, WKEY, KM_PRESS, KM_SHIFT, 0); - - WM_keymap_add_item(keymap, OP_TOSPHERE, SKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0); - - WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0); - -#ifdef USE_WM_KEYMAP_27X - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL | KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "use", true); -#endif - - WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0); - - kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap"); - - WM_keymap_add_panel(keymap, "VIEW3D_PT_snapping", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); - - /* Will fall-through to texture-space transform. */ - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_transform_axis_target", TKEY, KM_PRESS, KM_SHIFT, 0); - -#ifdef USE_WM_KEYMAP_27X - kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "texture_space", true); - - kmi = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0); - RNA_boolean_set(kmi->ptr, "texture_space", true); -#endif - - WM_keymap_add_item(keymap, OP_SKIN_RESIZE, AKEY, KM_PRESS, KM_CTRL, 0); + TransformModeItem *tmode; - break; - case SPACE_ACTION: - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_SHIFT, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SLIDE); - break; - case SPACE_IPO: - WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); - - WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); - break; - case SPACE_NLA: - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE); - break; - case SPACE_NODE: - WM_keymap_add_item(keymap, "NODE_OT_translate_attach", GKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_A, KM_ANY, 0, 0); - WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_S, KM_ANY, 0, 0); - /* NB: small trick: macro operator poll may fail due to library data edit, - * in that case the secondary regular operators are called with same keymap. - */ - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0); - RNA_boolean_set(kmi->ptr, "release_confirm", true); - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_A, KM_ANY, 0, 0); - RNA_boolean_set(kmi->ptr, "release_confirm", true); - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0); - RNA_boolean_set(kmi->ptr, "release_confirm", true); - - WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); - - /* detach and translate */ - WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", DKEY, KM_PRESS, KM_ALT, 0); - /* XXX release_confirm is set in the macro operator definition */ - WM_keymap_add_item(keymap, "NODE_OT_move_detach_links_release", EVT_TWEAK_A, KM_ANY, KM_ALT, 0); - WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", EVT_TWEAK_S, KM_ANY, KM_ALT, 0); - - kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap"); - kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); - RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_node_element"); - break; - case SPACE_SEQ: - WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0); - - kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND); - break; - case SPACE_IMAGE: - WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - - WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); - - WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0); - - WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0); - - kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); - RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap"); - - kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); - RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_uv_element"); - break; - case SPACE_CLIP: - WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0); - WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0); - break; - default: - break; + for (tmode = transform_modes; tmode->idname; tmode++) { + WM_modalkeymap_assign(modalmap, tmode->idname); } + WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform"); } |