Patch [#28608] Add search match colour to theme settings
authorJoshua Leung <aligorith@gmail.com>
Sun, 22 Jan 2012 06:10:21 +0000 (06:10 +0000)
committerJoshua Leung <aligorith@gmail.com>
Sun, 22 Jan 2012 06:10:21 +0000 (06:10 +0000)
Submitted by Shane Ambler (sambler)

From patch description:
As a follow on from #23443 - committed in r40066 I have added the outliner
filter match highlight colour to the theme settings.

Default colour is a light green matching what was originally hard coded.

source/blender/editors/include/UI_resources.h
source/blender/editors/interface/resources.c
source/blender/editors/space_outliner/outliner_draw.c
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesrna/intern/rna_userdef.c

index 6e921a0ca8c0c18af6e6d71024d80ccfab721040..d755b17bc981c70699312a93ce6166df49e32e42 100644 (file)
@@ -193,8 +193,10 @@ enum {
        TH_STITCH_PREVIEW_VERT,
        TH_STITCH_PREVIEW_STITCHABLE,
        TH_STITCH_PREVIEW_UNSTITCHABLE,
-       TH_STITCH_PREVIEW_ACTIVE
+       TH_STITCH_PREVIEW_ACTIVE,
 
+       TH_MATCH,                       /* highlight color for search matches */
+       TH_SELECT_HIGHLIGHT     /* highlight color for selected outliner item */
 };
 /* XXX WARNING: previous is saved in file, so do not change order! */
 
index ad20ff0b6dd55205cb5737d68087a7b348a105e5..7cc9febc603d11afe630098d0163bd4ec5d63c02 100644 (file)
@@ -452,6 +452,14 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
                                cp= ts->camera_path; break;
                        case TH_LOCK_MARKER:
                                cp= ts->lock_marker; break;
+                       
+                       case TH_MATCH:
+                               cp= ts->match;
+                               break;
+                               
+                       case TH_SELECT_HIGHLIGHT:
+                               cp= ts->selected_highlight;
+                               break;
                        }
                }
        }
@@ -792,6 +800,9 @@ void ui_theme_init_default(void)
        btheme->toops= btheme->tv3d;
        SETCOLF(btheme->toops.back,     0.45, 0.45, 0.45, 1.0);
        
+       SETCOLF(btheme->toops.match,    0.2, 0.5, 0.2, 0.3);    /* highlighting search match - soft green*/
+       SETCOLF(btheme->toops.selected_highlight, 0.51, 0.53, 0.55, 0.3);
+
        /* space info */
        btheme->tinfo= btheme->tv3d;
        SETCOLF(btheme->tinfo.back,     0.45, 0.45, 0.45, 1.0);
@@ -1696,17 +1707,17 @@ void init_userdef_do_versions(void)
                        BLI_addtail(&U.addons, baddon);
                }
        }
-
+       
        if (bmain->versionfile < 260 || (bmain->versionfile == 260 && bmain->subversionfile < 5)) {
                bTheme *btheme;
-
+               
                for(btheme= U.themes.first; btheme; btheme= btheme->next) {
                        SETCOL(btheme->tui.panel.header, 0, 0, 0, 25);
                        btheme->tui.icon_alpha= 1.0;
                }
        }
-
-       if (bmain->versionfile < 262){
+       
+       if (bmain->versionfile < 261 || (bmain->versionfile == 261 && bmain->subversionfile < 4)) {
                bTheme *btheme;
                for(btheme= U.themes.first; btheme; btheme= btheme->next) {
                        SETCOLF(btheme->tima.preview_stitch_face, 0.071, 0.259, 0.694, 0.150);
@@ -1715,10 +1726,14 @@ void init_userdef_do_versions(void)
                        SETCOLF(btheme->tima.preview_stitch_stitchable, 0.0, 1.0, 0.0, 1.0);
                        SETCOLF(btheme->tima.preview_stitch_unstitchable, 1.0, 0.0, 0.0, 1.0);
                        SETCOLF(btheme->tima.preview_stitch_active, 0.886, 0.824, 0.765, 0.140);
+                       
+                       SETCOLF(btheme->toops.match, 0.2, 0.5, 0.2, 0.3);
+                       SETCOLF(btheme->toops.selected_highlight, 0.51, 0.53, 0.55, 0.3);
                }
+               
                U.use_16bit_textures = 0;
        }
-       
+
        /* GL Texture Garbage Collection (variable abused above!) */
        if (U.textimeout == 0) {
                U.texcollectrate = 60;
index f8abfb6f4c3c040c39df5de4b66ebeeb76fcda61..0264cf5ad05ba5ae08fc256f800c9443f8fe5898 100644 (file)
@@ -1258,8 +1258,10 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
                if ( (SEARCHING_OUTLINER(soops) || (soops->outlinevis==SO_DATABLOCKS && soops->search_string[0]!=0)) && 
                         (tselem->flag & TSE_SEARCHMATCH)) 
                {
-                       /* TODO - add search highlight color to theme? */
-                       glColor4f(0.2f, 0.5f, 0.2f, 0.3f);
+                       char col[4];
+                       UI_GetThemeColorType4ubv(TH_MATCH, SPACE_OUTLINER, col);
+                       col[3]=100;
+                       glColor4ubv((GLubyte *)col);
                        glRecti(startx, *starty+1, ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1);
                }
 
@@ -1513,8 +1515,8 @@ static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegio
        }
        
        /* always draw selection fill before hierarchy */
-       UI_GetThemeColor3fv(TH_BACK, col);
-       glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f);
+       UI_GetThemeColor3fv(TH_SELECT_HIGHLIGHT, col);
+       glColor3fv(col);
        starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
        outliner_draw_selection(ar, soops, &soops->tree, &starty);
        
index 83b8bdcf28283f5dce25a5e4529c149ab050289d..405e1e3372073b2c7684c475fdfc0ffaad518923 100644 (file)
@@ -258,6 +258,9 @@ typedef struct ThemeSpace {
        char preview_stitch_stitchable[4];
        char preview_stitch_unstitchable[4];
        char preview_stitch_active[4];
+       
+       char match[4];                          /* outliner - filter match */
+       char selected_highlight[4];     /* outliner - selected item */
 } ThemeSpace;
 
 
index 24486c227b7815a1266a19f43e6cff851188a8e6..dc4f3449c1ba90c747ccddb9e85769c2b2fe2b6b 100644 (file)
@@ -1312,6 +1312,7 @@ static void rna_def_userdef_theme_space_file(BlenderRNA *brna)
 static void rna_def_userdef_theme_space_outliner(BlenderRNA *brna)
 {
        StructRNA *srna;
+       PropertyRNA *prop;
 
        /* space_outliner */
 
@@ -1321,6 +1322,16 @@ static void rna_def_userdef_theme_space_outliner(BlenderRNA *brna)
        RNA_def_struct_ui_text(srna, "Theme Outliner", "Theme settings for the Outliner");
 
        rna_def_userdef_theme_spaces_main(srna);
+
+       prop= RNA_def_property(srna, "match", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Filter Match", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+       prop= RNA_def_property(srna, "selected_highlight", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Selected Highlight", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
 }
 
 static void rna_def_userdef_theme_space_userpref(BlenderRNA *brna)