T37579: Theme settings for Keyframe Colours

This patch makes it possible to customise the colours used for the different
keyframe types (Keyframe, Breakdown, Extreme, Jitter) and the border colours
(normal and selected).

Reviewed by: Joshua Leung
This commit is contained in:
Jose Molina 2014-01-07 22:45:40 +13:00 committed by Joshua Leung
parent 74ae93d1cd
commit 5e5b0cee4f
5 changed files with 117 additions and 9 deletions

View File

@ -599,27 +599,27 @@ void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel,
switch (key_type) {
case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames for now */
{
if (sel) glColor4f(0.33f, 0.75f, 0.93f, alpha);
else glColor4f(0.70f, 0.86f, 0.91f, alpha);
if (sel) UI_ThemeColor(TH_KEYTYPE_BREAKDOWN_SELECT);
else UI_ThemeColor(TH_KEYTYPE_BREAKDOWN);
break;
}
case BEZT_KEYTYPE_EXTREME: /* redish frames for now */
{
if (sel) glColor4f(0.95f, 0.5f, 0.5f, alpha);
else glColor4f(0.91f, 0.70f, 0.80f, alpha);
if (sel) UI_ThemeColor(TH_KEYTYPE_EXTREME_SELECT);
else UI_ThemeColor(TH_KEYTYPE_EXTREME);
break;
}
case BEZT_KEYTYPE_JITTER: /* greenish frames for now? */
{
if (sel) glColor4f(0.38f, 0.75f, 0.26f, alpha);
else glColor4f(0.58f, 0.90f, 0.46f, alpha);
if (sel) UI_ThemeColor(TH_KEYTYPE_JITTER_SELECT);
else UI_ThemeColor(TH_KEYTYPE_JITTER);
break;
}
case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */
default:
{
if (sel) UI_ThemeColorShadeAlpha(TH_STRIP_SELECT, 50, -255 * (1.0f - alpha));
else glColor4f(0.91f, 0.91f, 0.91f, alpha);
if (sel) UI_ThemeColor(TH_KEYTYPE_KEYFRAME_SELECT);
else UI_ThemeColor(TH_KEYTYPE_KEYFRAME);
break;
}
}
@ -629,7 +629,8 @@ void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel,
if (ELEM(mode, KEYFRAME_SHAPE_FRAME, KEYFRAME_SHAPE_BOTH)) {
/* exterior - black frame */
glColor4f(0.0f, 0.0f, 0.0f, alpha);
if (sel) UI_ThemeColor4(TH_KEYBORDER_SELECT);
else UI_ThemeColor4(TH_KEYBORDER);
glCallList(displist1);
}

View File

@ -138,6 +138,18 @@ enum {
TH_STRIP,
TH_STRIP_SELECT,
TH_KEYTYPE_KEYFRAME, /* KEYTYPES */
TH_KEYTYPE_KEYFRAME_SELECT,
TH_KEYTYPE_EXTREME,
TH_KEYTYPE_EXTREME_SELECT,
TH_KEYTYPE_BREAKDOWN,
TH_KEYTYPE_BREAKDOWN_SELECT,
TH_KEYTYPE_JITTER,
TH_KEYTYPE_JITTER_SELECT,
TH_KEYBORDER,
TH_KEYBORDER_SELECT,
TH_LAMP,
TH_SPEAKER,
TH_CAMERA,

View File

@ -331,6 +331,26 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
cp = ts->strip; break;
case TH_STRIP_SELECT:
cp = ts->strip_select; break;
case TH_KEYTYPE_KEYFRAME:
cp = ts->keytype_keyframe; break;
case TH_KEYTYPE_KEYFRAME_SELECT:
cp = ts->keytype_keyframe_select; break;
case TH_KEYTYPE_EXTREME:
cp = ts->keytype_extreme; break;
case TH_KEYTYPE_EXTREME_SELECT:
cp = ts->keytype_extreme_select; break;
case TH_KEYTYPE_BREAKDOWN:
cp = ts->keytype_breakdown; break;
case TH_KEYTYPE_BREAKDOWN_SELECT:
cp = ts->keytype_breakdown_select; break;
case TH_KEYTYPE_JITTER:
cp = ts->keytype_jitter; break;
case TH_KEYTYPE_JITTER_SELECT:
cp = ts->keytype_jitter_select; break;
case TH_KEYBORDER:
cp = ts->keyborder; break;
case TH_KEYBORDER_SELECT:
cp = ts->keyborder_select; break;
case TH_CFRAME:
cp = ts->cframe; break;
case TH_NURB_ULINE:
@ -893,6 +913,18 @@ void ui_theme_init_default(void)
rgba_char_args_set(btheme->tact.anim_active, 204, 112, 26, 102);
rgba_char_args_set(btheme->tact.keytype_keyframe, 232, 232, 232, 255);
rgba_char_args_set(btheme->tact.keytype_keyframe_select, 255, 190, 50, 255);
rgba_char_args_set(btheme->tact.keytype_extreme, 237, 178, 204, 255);
rgba_char_args_set(btheme->tact.keytype_extreme_select, 242, 127, 127, 255);
rgba_char_args_set(btheme->tact.keytype_breakdown, 178, 219, 232, 255);
rgba_char_args_set(btheme->tact.keytype_breakdown_select, 84, 191, 237, 255);
rgba_char_args_set(btheme->tact.keytype_jitter, 148, 229, 117, 255);
rgba_char_args_set(btheme->tact.keytype_jitter_select, 97, 191, 066, 255);
rgba_char_args_set(btheme->tact.keyborder, 0, 0, 0, 255);
rgba_char_args_set(btheme->tact.keyborder_select, 0, 0, 0, 255);
/* space nla */
btheme->tnla = btheme->tact;

View File

@ -249,6 +249,9 @@ typedef struct ThemeSpace {
char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4], handle_sel_auto_clamped[4];
char ds_channel[4], ds_subchannel[4]; /* dopesheet */
char keytype_keyframe[4], keytype_extreme[4], keytype_breakdown[4], keytype_jitter[4]; /* keytypes */
char keytype_keyframe_select[4], keytype_extreme_select[4], keytype_breakdown_select[4], keytype_jitter_select[4]; /* keytypes */
char keyborder[4],keyborder_select[4];
char console_output[4], console_input[4], console_info[4], console_error[4];
char console_cursor[4], console_select[4], pad1[4];

View File

@ -2460,6 +2460,66 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Dope Sheet Sub-Channel", "");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_keyframe");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Keyframe", "Color of Keyframe");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_keyframe_select");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Keyframe Selected", "Color of Keyframe Selected");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_extreme", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_extreme");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Extreme Keyframe", "Color of Extreme Keyframe");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_extreme_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_extreme_select");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Extreme Keyframe Selected", "Color of Extreme Keyframe selected");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_breakdown", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_breakdown");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Breakdown Keyframe", "Color of Breakdown keyframe");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_breakdown_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_breakdown_select");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Breakdown Keyframe Selected", "Color of Breakdown Keyframe selected");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_jitter", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_jitter");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Jitter Keyframe", "Color of Jitter Keyframe");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_jitter_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keytype_jitter_select");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Jitter Keyframe Selected", "Color of Jitter Keyframe selected");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_border", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keyborder");
RNA_def_property_array(prop, 4);
RNA_def_property_ui_text(prop, "Keyframe Border", "Color of Keyframe border");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "keyframe_border_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "keyborder_select");
RNA_def_property_array(prop, 4);
RNA_def_property_ui_text(prop, "Keyframe Border Selected", "Color of Key Border Selected");
RNA_def_property_update(prop, 0, "rna_userdef_update");
prop = RNA_def_property(srna, "summary", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "anim_active");
RNA_def_property_array(prop, 4);