diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-10-17 08:22:52 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-10-17 08:22:52 +0400 |
commit | 53624a53d9054a91688a1a988c6f3515ab601923 (patch) | |
tree | d2318d340c03cccd9cadf835a50e19a5455bf230 /source/blender/editors/space_action | |
parent | 474e97e6d22973cf95262d5262e880c15683b828 (diff) |
Assorted tweaks for animation editors:
* Changing to the ShapeKey editor now automatically enables the value sliders
* Filtering code for ShapeKey editor can now do AnimData block filtering too (internal details...)
* Silenced console warnings when inserting keyframes on F-Curves with no keyframes already (for Animation Editor sliders)
* Made the update code for keyframe transforms send more general depsgraph updates. Unfortuately, this still doesn't resolve the update problems with shapekeys
Diffstat (limited to 'source/blender/editors/space_action')
-rw-r--r-- | source/blender/editors/space_action/action_draw.c | 13 | ||||
-rw-r--r-- | source/blender/editors/space_action/action_header.c | 12 |
2 files changed, 12 insertions, 13 deletions
diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c index 7181a6b5aa1..7f2e1bd09e4 100644 --- a/source/blender/editors/space_action/action_draw.c +++ b/source/blender/editors/space_action/action_draw.c @@ -258,7 +258,7 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar) if (acf->has_setting(ac, ale, ACHANNEL_SETTING_SELECT)) sel= ANIM_channel_setting_get(ac, ale, ACHANNEL_SETTING_SELECT); - if (ELEM(ac->datatype, ANIMCONT_ACTION, ANIMCONT_DOPESHEET)) { + if (ELEM3(ac->datatype, ANIMCONT_ACTION, ANIMCONT_DOPESHEET, ANIMCONT_SHAPEKEY)) { switch (ale->type) { case ANIMTYPE_SUMMARY: { @@ -307,17 +307,6 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar) if (ac->datatype == ANIMCONT_ACTION) glRectf(act_start, (float)y-ACHANNEL_HEIGHT_HALF, act_end, (float)y+ACHANNEL_HEIGHT_HALF); } - else if (ac->datatype == ANIMCONT_SHAPEKEY) { - /* all frames that have a frame number less than one - * get a desaturated orange background - */ - glColor4ub(col2[0], col2[1], col2[2], 0x22); - glRectf(0.0f, (float)y-ACHANNEL_HEIGHT_HALF, 1.0f, (float)y+ACHANNEL_HEIGHT_HALF); - - /* frames one and higher get a saturated orange background */ - glColor4ub(col2[0], col2[1], col2[2], 0x44); - glRectf(1.0f, (float)y-ACHANNEL_HEIGHT_HALF, v2d->cur.xmax+EXTRA_SCROLL_PAD, (float)y+ACHANNEL_HEIGHT_HALF); - } else if (ac->datatype == ANIMCONT_GPENCIL) { /* frames less than one get less saturated background */ if (sel) glColor4ub(col1[0], col1[1], col1[2], 0x22); diff --git a/source/blender/editors/space_action/action_header.c b/source/blender/editors/space_action/action_header.c index ba5fc0893ec..aaf4b51c75e 100644 --- a/source/blender/editors/space_action/action_header.c +++ b/source/blender/editors/space_action/action_header.c @@ -69,6 +69,7 @@ enum { B_REDR= 1, + B_MODECHANGE, } eActHeader_Events; /* ********************************************************* */ @@ -254,6 +255,15 @@ static void act_editmenu(bContext *C, uiLayout *layout, void *arg_unused) static void do_action_buttons(bContext *C, void *arg, int event) { + /* special exception for mode changing - enable custom settings? */ + if (event == B_MODECHANGE) { + SpaceAction *saction= CTX_wm_space_action(C); + + /* if the new mode is ShapeKeys editor, enable sliders */ + if (saction->mode == SACTCONT_SHAPEKEY) + saction->flag |= SACTION_SLIDERS; + } + ED_area_tag_refresh(CTX_wm_area(C)); ED_area_tag_redraw(CTX_wm_area(C)); } @@ -318,7 +328,7 @@ void action_header_buttons(const bContext *C, ARegion *ar) uiBlockSetEmboss(block, UI_EMBOSS); /* MODE SELECTOR */ - uiDefButC(block, MENU, B_REDR, + uiDefButC(block, MENU, B_MODECHANGE, "Editor Mode %t|DopeSheet %x3|Action Editor %x0|ShapeKey Editor %x1|Grease Pencil %x2", xco,yco,90,YIC, &saction->mode, 0, 1, 0, 0, "Editing modes for this editor"); |