forked from bartvdbraak/blender
== NLA/IPO Muting ==
This commit adds a few open/closed 'eye' icons to the NLA editor to toggle IPO-block muting on Object (IPO) channels, and Action Strip muting on Action Strips, like in the Action Editor.
This commit is contained in:
parent
aad13c1b87
commit
188e3ede4f
@ -148,6 +148,15 @@ static void draw_nla_channels(void)
|
||||
else
|
||||
BIF_icon_draw(x+17, y-8, ICON_ACTION);
|
||||
}
|
||||
|
||||
/* icon to indicate if ipo-channel muted */
|
||||
if (ob->ipo) {
|
||||
if (ob->ipo->muteipo)
|
||||
BIF_icon_draw(NLAWIDTH-16, y-NLACHANNELHEIGHT/2, ICON_RESTRICT_VIEW_ON);
|
||||
else
|
||||
BIF_icon_draw(NLAWIDTH-16, y-NLACHANNELHEIGHT/2, ICON_RESTRICT_VIEW_OFF);
|
||||
}
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
y-=NLACHANNELHEIGHT+NLACHANNELSKIP;
|
||||
|
||||
@ -192,16 +201,20 @@ static void draw_nla_channels(void)
|
||||
glRasterPos2f(x+48, y-4);
|
||||
BMF_DrawString(G.font, strip->act->id.name+2);
|
||||
|
||||
if(strip->flag & ACTSTRIP_ACTIVE) {
|
||||
glEnable(GL_BLEND);
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
if(strip->flag & ACTSTRIP_ACTIVE)
|
||||
BIF_icon_draw(x+16, y-8, ICON_DOT);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
if(strip->modifiers.first) {
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
if(strip->modifiers.first)
|
||||
BIF_icon_draw(x+34, y-8, ICON_MODIFIER);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
if(strip->flag & ACTSTRIP_MUTE)
|
||||
BIF_icon_draw(NLAWIDTH-16, y-NLACHANNELHEIGHT/2, ICON_RESTRICT_VIEW_ON);
|
||||
else
|
||||
BIF_icon_draw(NLAWIDTH-16, y-NLACHANNELHEIGHT/2, ICON_RESTRICT_VIEW_OFF);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
y-=(NLACHANNELHEIGHT+NLACHANNELSKIP);
|
||||
|
@ -825,8 +825,12 @@ static void mouse_nlachannels(short mval[2])
|
||||
|
||||
if(actclick) /* de-activate all strips */
|
||||
set_active_strip(ob, NULL);
|
||||
else if(strip) /* set action */
|
||||
set_active_strip(ob, strip);
|
||||
else if(strip) {
|
||||
if(mval[0] >= (NLAWIDTH-16)) /* toggle strip muting */
|
||||
strip->flag ^= ACTSTRIP_MUTE;
|
||||
else /* set action */
|
||||
set_active_strip(ob, strip);
|
||||
}
|
||||
|
||||
/* icon toggles beside strip */
|
||||
if (obclick && mval[0]<20) {
|
||||
@ -837,6 +841,10 @@ static void mouse_nlachannels(short mval[2])
|
||||
/* override option for NLA */
|
||||
ob->nlaflag ^= OB_NLA_OVERRIDE;
|
||||
}
|
||||
else if((obclick) && (ob->ipo) && (mval[0] >= (NLAWIDTH-16))) {
|
||||
/* mute Object IPO-block */
|
||||
ob->ipo->muteipo = (ob->ipo->muteipo)? 0: 1;
|
||||
}
|
||||
|
||||
ob->ctime= -1234567.0f; // eveil!
|
||||
DAG_object_flush_update(G.scene, ob, OB_RECALC_OB|OB_RECALC_DATA);
|
||||
|
Loading…
Reference in New Issue
Block a user