== 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:
Joshua Leung 2007-06-22 11:55:00 +00:00
parent aad13c1b87
commit 188e3ede4f
2 changed files with 31 additions and 10 deletions

@ -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);