Theme: add color difference for every other row
authorCampbell Barton <ideasman42@gmail.com>
Thu, 16 May 2019 01:54:50 +0000 (11:54 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 16 May 2019 02:05:17 +0000 (12:05 +1000)
D4862 by @CandleComet with minor edits.

release/datafiles/userdef/userdef_default_theme.c
release/scripts/presets/interface_theme/blender_light.xml
source/blender/blenkernel/BKE_blender_version.h
source/blender/blenloader/intern/versioning_userdef.c
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 3347d9b..2326b46 100644 (file)
@@ -749,6 +749,7 @@ const bTheme U_theme_default = {
     .facedot_size = 4,
     .match = RGBA(0x337f334c),
     .selected_highlight = RGBA(0x314e784c),
+    .row_alternate = RGBA(0x91919110),
   },
   .space_node = {
     .back = RGBA(0x23232300),
index d2d68d3..766c91c 100644 (file)
       <ThemeOutliner
         match="#337f33"
         selected_highlight="#314e78"
+        row_alternate="#3f3f3f1a"
         >
         <space>
           <ThemeSpaceGeneric
index a36ead4..ccf760d 100644 (file)
@@ -27,7 +27,7 @@
  * \note Use #STRINGIFY() rather than defining with quotes.
  */
 #define BLENDER_VERSION 280
-#define BLENDER_SUBVERSION 64
+#define BLENDER_SUBVERSION 65
 /** Several breakages with 280, e.g. collections vs layers. */
 #define BLENDER_MINVERSION 280
 #define BLENDER_MINSUBVERSION 0
index 909334a..574f708 100644 (file)
@@ -134,6 +134,10 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme)
     FROM_DEFAULT_V4_UCHAR(space_clip.scrubbing_background);
   }
 
+  if (!USER_VERSION_ATLEAST(280, 65)) {
+    FROM_DEFAULT_V4_UCHAR(space_outliner.row_alternate);
+  }
+
   /**
    * Include next version bump.
    */
index 7abc27c..7a88cf0 100644 (file)
@@ -255,6 +255,7 @@ typedef enum ThemeColorID {
 
   TH_MATCH,            /* highlight color for search matches */
   TH_SELECT_HIGHLIGHT, /* highlight color for selected outliner item */
+  TH_ROW_ALTERNATE,    /* overlay on every other row */
 
   TH_SKIN_ROOT,
 
index 14fad2f..9f64643 100644 (file)
@@ -795,6 +795,10 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
           cp = ts->selected_highlight;
           break;
 
+        case TH_ROW_ALTERNATE:
+          cp = ts->row_alternate;
+          break;
+
         case TH_SKIN_ROOT:
           cp = ts->skin_root;
           break;
index 6547b46..9801eba 100644 (file)
@@ -3198,7 +3198,10 @@ static void outliner_back(ARegion *ar)
   uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
 
   immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
-  immUniformThemeColorShade(TH_BACK, 6);
+
+  float col_alternating[4];
+  UI_GetThemeColor4fv(TH_ROW_ALTERNATE, col_alternating);
+  immUniformThemeColorBlend(TH_BACK, TH_ROW_ALTERNATE, col_alternating[3]);
 
   const float x1 = 0.0f, x2 = ar->v2d.cur.xmax;
   float y1 = ystart, y2;
index 2247ec2..43191ec 100644 (file)
@@ -363,6 +363,8 @@ typedef struct ThemeSpace {
   char match[4];
   /** Outliner - selected item. */
   char selected_highlight[4];
+  /** Outliner - row color difference. */
+  char row_alternate[4];
 
   /** Skin modifier root color. */
   char skin_root[4];
@@ -374,7 +376,6 @@ typedef struct ThemeSpace {
   char anim_non_active[4];
   /** Preview range overlay. */
   char anim_preview_range[4];
-  char _pad2[4];
 
   /** NLA 'Tweaking' action/strip. */
   char nla_tweaking[4];
index 38877ba..367d0af 100644 (file)
@@ -2235,6 +2235,11 @@ static void rna_def_userdef_theme_space_outliner(BlenderRNA *brna)
   RNA_def_property_array(prop, 3);
   RNA_def_property_ui_text(prop, "Selected Highlight", "");
   RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+
+  prop = RNA_def_property(srna, "row_alternate", PROP_FLOAT, PROP_COLOR_GAMMA);
+  RNA_def_property_array(prop, 4);
+  RNA_def_property_ui_text(prop, "Alternate Rows", "Overlay color on every other row");
+  RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
 }
 
 static void rna_def_userdef_theme_space_userpref(BlenderRNA *brna)