diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-06-19 16:57:31 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-06-19 16:57:31 +0400 |
commit | bb9323a720483b0c02bf25ecfca9c6ccc8699519 (patch) | |
tree | 922daae074ae7bfabf6355c872f0ed734f069dc0 | |
parent | d525ae17829ae13640488e6f50022b317a8eba63 (diff) |
NLA SoC: Minor Tweaks (Duplicate + Muted-Strip Drawing)
* Duplicate operator now inits transform once strips have been created
* Muted strips now draw with a dotted outline
-rw-r--r-- | source/blender/editors/space_nla/nla_draw.c | 15 | ||||
-rw-r--r-- | source/blender/editors/space_nla/nla_edit.c | 20 |
2 files changed, 32 insertions, 3 deletions
diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index 3a3f86bb5a3..9a9cbeeff21 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -68,6 +68,7 @@ #include "ED_screen.h" #include "BIF_gl.h" +#include "BIF_glutil.h" #include "WM_api.h" #include "WM_types.h" @@ -184,7 +185,10 @@ static void nla_draw_strip (AnimData *adt, NlaTrack *nlt, NlaStrip *strip, View2 uiSetRoundBox(15); /* all corners rounded */ gl_round_box_shade(GL_POLYGON, strip->start, yminc, strip->end, ymaxc, 0.0, 0.5, 0.1); - /* draw strip outline - different colors are used here... */ + + /* draw strip outline + * - color used here is to indicate active vs non-active + */ if (strip->flag & NLASTRIP_FLAG_ACTIVE) { /* strip should appear 'sunken', so draw a light border around it */ glColor3f(0.9f, 1.0f, 0.9f); // FIXME: hardcoded temp-hack colors @@ -193,7 +197,16 @@ static void nla_draw_strip (AnimData *adt, NlaTrack *nlt, NlaStrip *strip, View2 /* strip should appear to stand out, so draw a dark border around it */ glColor3f(0.0f, 0.0f, 0.0f); } + + /* - line style: dotted for muted */ + if (strip->flag & NLASTRIP_FLAG_MUTED) + setlinestyle(4); + + /* draw outline */ gl_round_box_shade(GL_LINE_LOOP, strip->start, yminc, strip->end, ymaxc, 0.0, 0.0, 0.1); + + /* reset linestyle */ + setlinestyle(0); } /* add the relevant text to the cache of text-strings to draw in pixelspace */ diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c index d2cf728ea58..8b7c6bb99c6 100644 --- a/source/blender/editors/space_nla/nla_edit.c +++ b/source/blender/editors/space_nla/nla_edit.c @@ -59,6 +59,8 @@ #include "ED_space_api.h" #include "ED_screen.h" +#include "BIF_transform.h" + #include "RNA_access.h" #include "RNA_define.h" @@ -506,13 +508,23 @@ static int nlaedit_duplicate_exec (bContext *C, wmOperator *op) ANIM_animdata_send_notifiers(C, &ac, ANIM_CHANGED_BOTH); WM_event_add_notifier(C, NC_SCENE, NULL); - /* done + allow for tweaking to be invoked */ - return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; + /* done */ + return OPERATOR_FINISHED; } else return OPERATOR_CANCELLED; } +static int nlaedit_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + nlaedit_duplicate_exec(C, op); + + RNA_int_set(op->ptr, "mode", TFM_TIME_TRANSLATE); // XXX + WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + + return OPERATOR_FINISHED; +} + void NLAEDIT_OT_duplicate (wmOperatorType *ot) { /* identifiers */ @@ -521,11 +533,15 @@ void NLAEDIT_OT_duplicate (wmOperatorType *ot) ot->description= "Duplicate selected NLA-Strips, adding the new strips in new tracks above the originals."; /* api callbacks */ + ot->invoke= nlaedit_duplicate_invoke; ot->exec= nlaedit_duplicate_exec; ot->poll= nlaop_poll_tweakmode_off; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* to give to transform */ + RNA_def_int(ot->srna, "mode", TFM_TRANSLATION, 0, INT_MAX, "Mode", "", 0, INT_MAX); } /* ******************** Delete Strips Operator ***************************** */ |