diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-07-17 19:16:44 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-07-17 19:16:44 +0400 |
commit | 46bec423333d3cee3401bf967c6adff257f8b310 (patch) | |
tree | 553d85663e35de9a4a450a8661deb8e7354d1847 /source/blender/editors/interface | |
parent | 9c714f695ae3156519b6e8f4abd0d82f171ba541 (diff) |
option to clear all keys from a button, so you dont have to hunt about for the keys inserted.
Diffstat (limited to 'source/blender/editors/interface')
-rw-r--r-- | source/blender/editors/interface/interface_anim.c | 6 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 28 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_intern.h | 1 |
3 files changed, 31 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c index 3099fcb2b40..5d62ef768d2 100644 --- a/source/blender/editors/interface/interface_anim.c +++ b/source/blender/editors/interface/interface_anim.c @@ -212,6 +212,12 @@ void ui_but_anim_delete_keyframe(bContext *C) WM_operator_name_call(C, "ANIM_OT_keyframe_delete_button", WM_OP_INVOKE_DEFAULT, NULL); } +void ui_but_anim_clear_keyframe(bContext *C) +{ + /* this operator calls uiContextActiveProperty */ + WM_operator_name_call(C, "ANIM_OT_keyframe_clear_button", WM_OP_INVOKE_DEFAULT, NULL); +} + void ui_but_anim_add_driver(bContext *C) { /* this operator calls uiContextActiveProperty */ diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 0a9665ffc15..91b3b3ea622 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4474,6 +4474,19 @@ static int ui_but_menu(bContext *C, uiBut *but) ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0); } + if (but->flag & UI_BUT_ANIMATED) { + if (length) { + uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Keyframes"), + ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 1); + uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Single Keyframes"), + ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 0); + } + else { + uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Keyframes"), + ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 0); + } + } + /* Drivers */ if (but->flag & UI_BUT_DRIVEN) { uiItemS(layout); @@ -4687,11 +4700,18 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event) ui_but_drop(C, event, but, data); } /* handle keyframing */ - else if (event->type == IKEY && !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) { - if (event->alt) - ui_but_anim_delete_keyframe(C); - else + else if (event->type == IKEY && !ELEM(KM_MOD_FIRST, event->ctrl, event->oskey) && event->val == KM_PRESS) { + if (event->alt) { + if (event->shift) { + ui_but_anim_clear_keyframe(C); + } + else { + ui_but_anim_delete_keyframe(C); + } + } + else { ui_but_anim_insert_keyframe(C); + } ED_region_tag_redraw(CTX_wm_region(C)); diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 1f88db033a4..c6787b4c554 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -508,6 +508,7 @@ void ui_but_add_shortcut(uiBut *but, const char *key_str, const short do_strip); void ui_but_anim_flag(uiBut *but, float cfra); void ui_but_anim_insert_keyframe(struct bContext *C); void ui_but_anim_delete_keyframe(struct bContext *C); +void ui_but_anim_clear_keyframe(struct bContext *C); void ui_but_anim_add_driver(struct bContext *C); void ui_but_anim_remove_driver(struct bContext *C); void ui_but_anim_copy_driver(struct bContext *C); |