== 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:
@@ -148,6 +148,15 @@ static void draw_nla_channels(void)
|
|||||||
else
|
else
|
||||||
BIF_icon_draw(x+17, y-8, ICON_ACTION);
|
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);
|
glDisable(GL_BLEND);
|
||||||
y-=NLACHANNELHEIGHT+NLACHANNELSKIP;
|
y-=NLACHANNELHEIGHT+NLACHANNELSKIP;
|
||||||
|
|
||||||
@@ -192,16 +201,20 @@ static void draw_nla_channels(void)
|
|||||||
glRasterPos2f(x+48, y-4);
|
glRasterPos2f(x+48, y-4);
|
||||||
BMF_DrawString(G.font, strip->act->id.name+2);
|
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);
|
BIF_icon_draw(x+16, y-8, ICON_DOT);
|
||||||
glDisable(GL_BLEND);
|
|
||||||
}
|
if(strip->modifiers.first)
|
||||||
if(strip->modifiers.first) {
|
|
||||||
glEnable(GL_BLEND);
|
|
||||||
BIF_icon_draw(x+34, y-8, ICON_MODIFIER);
|
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);
|
y-=(NLACHANNELHEIGHT+NLACHANNELSKIP);
|
||||||
|
|||||||
@@ -825,8 +825,12 @@ static void mouse_nlachannels(short mval[2])
|
|||||||
|
|
||||||
if(actclick) /* de-activate all strips */
|
if(actclick) /* de-activate all strips */
|
||||||
set_active_strip(ob, NULL);
|
set_active_strip(ob, NULL);
|
||||||
else if(strip) /* set action */
|
else if(strip) {
|
||||||
set_active_strip(ob, 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 */
|
/* icon toggles beside strip */
|
||||||
if (obclick && mval[0]<20) {
|
if (obclick && mval[0]<20) {
|
||||||
@@ -837,6 +841,10 @@ static void mouse_nlachannels(short mval[2])
|
|||||||
/* override option for NLA */
|
/* override option for NLA */
|
||||||
ob->nlaflag ^= OB_NLA_OVERRIDE;
|
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!
|
ob->ctime= -1234567.0f; // eveil!
|
||||||
DAG_object_flush_update(G.scene, ob, OB_RECALC_OB|OB_RECALC_DATA);
|
DAG_object_flush_update(G.scene, ob, OB_RECALC_OB|OB_RECALC_DATA);
|
||||||
|
|||||||
Reference in New Issue
Block a user