diff options
author | Joshua Leung <aligorith@gmail.com> | 2014-01-16 14:56:40 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2014-01-17 05:53:02 +0400 |
commit | d8fa72bfb187f8091aa22e6acc0b00d254b807db (patch) | |
tree | fd0335b0315ffb41a60a78a2e01798618f85772c /source | |
parent | 5e5b0cee4fc364eade49798baa9e312e9211799b (diff) |
Assorted polish fixes for keyframe theme settings patch
* Version patching fixes for theme settings
* Added missing support for NLA (needed for the keyframes drawn in the action lines)
* Fix for a lack of contrast between selected and unselected extreme keyframe type
(restoring it back to the pre-patch color scheme)
* Fix for keyframes on protected channels not being drawn with partial opacity
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/animation/keyframes_draw.c | 44 | ||||
-rw-r--r-- | source/blender/editors/interface/resources.c | 42 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_userdef.c | 32 |
3 files changed, 85 insertions, 33 deletions
diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index 05c390d1462..fd350ada15c 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -595,42 +595,56 @@ void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel, /* draw! */ if (ELEM(mode, KEYFRAME_SHAPE_INSIDE, KEYFRAME_SHAPE_BOTH)) { - /* interior - hardcoded colors (for selected and unselected only) */ + float inner_col[4]; + + /* get interior colors from theme (for selected and unselected only) */ switch (key_type) { - case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames for now */ + case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames (default theme) */ { - if (sel) UI_ThemeColor(TH_KEYTYPE_BREAKDOWN_SELECT); - else UI_ThemeColor(TH_KEYTYPE_BREAKDOWN); + if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_BREAKDOWN_SELECT, inner_col); + else UI_GetThemeColor4fv(TH_KEYTYPE_BREAKDOWN, inner_col); break; } - case BEZT_KEYTYPE_EXTREME: /* redish frames for now */ + case BEZT_KEYTYPE_EXTREME: /* reddish frames (default theme) */ { - if (sel) UI_ThemeColor(TH_KEYTYPE_EXTREME_SELECT); - else UI_ThemeColor(TH_KEYTYPE_EXTREME); + if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_EXTREME_SELECT, inner_col); + else UI_GetThemeColor4fv(TH_KEYTYPE_EXTREME, inner_col); break; } - case BEZT_KEYTYPE_JITTER: /* greenish frames for now? */ + case BEZT_KEYTYPE_JITTER: /* greenish frames (default theme) */ { - if (sel) UI_ThemeColor(TH_KEYTYPE_JITTER_SELECT); - else UI_ThemeColor(TH_KEYTYPE_JITTER); + if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_JITTER_SELECT, inner_col); + else UI_GetThemeColor4fv(TH_KEYTYPE_JITTER, inner_col); break; } - case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */ + case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames (default theme) */ default: { - if (sel) UI_ThemeColor(TH_KEYTYPE_KEYFRAME_SELECT); - else UI_ThemeColor(TH_KEYTYPE_KEYFRAME); + if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_KEYFRAME_SELECT, inner_col); + else UI_GetThemeColor4fv(TH_KEYTYPE_KEYFRAME, inner_col); break; } } + /* NOTE: we don't use the straight alpha from the theme, or else effects such as + * greying out protected/muted channels doesn't work correctly! + */ + inner_col[3] *= alpha; + glColor4fv(inner_col); + + /* draw the "filled in" interior poly now */ glCallList(displist2); } if (ELEM(mode, KEYFRAME_SHAPE_FRAME, KEYFRAME_SHAPE_BOTH)) { + float border_col[4]; + /* exterior - black frame */ - if (sel) UI_ThemeColor4(TH_KEYBORDER_SELECT); - else UI_ThemeColor4(TH_KEYBORDER); + if (sel) UI_GetThemeColor4fv(TH_KEYBORDER_SELECT, border_col); + else UI_GetThemeColor4fv(TH_KEYBORDER, border_col); + + border_col[3] *= alpha; + glColor4fv(border_col); glCallList(displist1); } diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 38f185304e8..e54d4b277b0 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -915,12 +915,12 @@ void ui_theme_init_default(void) 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_extreme, 232, 179, 204, 255); + rgba_char_args_set(btheme->tact.keytype_extreme_select, 242, 128, 128, 255); + rgba_char_args_set(btheme->tact.keytype_breakdown, 179, 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.keytype_jitter_select, 97, 192, 66, 255); rgba_char_args_set(btheme->tact.keyborder, 0, 0, 0, 255); rgba_char_args_set(btheme->tact.keyborder_select, 0, 0, 0, 255); @@ -941,6 +941,9 @@ void ui_theme_init_default(void) rgba_char_args_set(btheme->tnla.nla_sound, 43, 61, 61, 255); rgba_char_args_set(btheme->tnla.nla_sound_sel, 31, 122, 122, 255); + rgba_char_args_set(btheme->tnla.keyborder, 0, 0, 0, 255); + rgba_char_args_set(btheme->tnla.keyborder_select, 0, 0, 0, 255); + /* space file */ /* to have something initialized */ btheme->tfile = btheme->tv3d; @@ -2343,12 +2346,35 @@ void init_userdef_do_versions(void) rgba_char_args_test_set(btheme->tinfo.info_debug_text, 0, 0, 0, 255); } } - + if (U.versionfile < 269 || (U.versionfile == 269 && U.subversionfile < 9)) { + bTheme *btheme; + U.tw_size = U.tw_size * 5.0f; - } - - if (U.versionfile < 270) { + + /* Action Editor (and NLA Editor) - Keyframe Colors */ + for (btheme = U.themes.first; btheme; btheme = btheme->next) { + /* Action Editor ................. */ + /* key types */ + 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, 232, 179, 204, 255); + rgba_char_args_set(btheme->tact.keytype_extreme_select, 242, 128, 128, 255); + rgba_char_args_set(btheme->tact.keytype_breakdown, 179, 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, 192, 66, 255); + + /* key border */ + rgba_char_args_set(btheme->tact.keyborder, 0, 0, 0, 255); + rgba_char_args_set(btheme->tact.keyborder_select, 0, 0, 0, 255); + + /* NLA ............................ */ + /* key border */ + rgba_char_args_set(btheme->tnla.keyborder, 0, 0, 0, 255); + rgba_char_args_set(btheme->tnla.keyborder_select, 0, 0, 0, 255); + } + /* grease pencil - new layer color */ if (U.gpencil_new_layer_col[3] < 0.1f) { /* defaults to black, but must at least be visible! */ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 50b4a2efada..9b8f99ac047 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2469,55 +2469,55 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna) 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_ui_text(prop, "Keyframe Selected", "Color of selected keyframe"); 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_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_ui_text(prop, "Extreme Keyframe Selected", "Color of selected extreme keyframe"); 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_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_ui_text(prop, "Breakdown Keyframe Selected", "Color of selected breakdown keyframe"); 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_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_ui_text(prop, "Jitter Keyframe Selected", "Color of selected jitter keyframe"); 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_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_ui_text(prop, "Keyframe Border Selected", "Color of selected keyframe border"); RNA_def_property_update(prop, 0, "rna_userdef_update"); prop = RNA_def_property(srna, "summary", PROP_FLOAT, PROP_COLOR_GAMMA); @@ -2627,7 +2627,19 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Tweak Duplicate Flag", "Warning/error indicator color for strips referencing the strip being tweaked"); 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 selected keyframe border"); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, NULL, "cframe"); RNA_def_property_array(prop, 3); |