diff options
author | Stefano Facchini <stefano.facchini@gmail.com> | 2020-06-12 19:14:44 +0200 |
---|---|---|
committer | Stefano Facchini <stefano.facchini@gmail.com> | 2020-06-13 10:17:04 +0200 |
commit | 7b242fd47dbcf1849709f44a019b9d1bd2967327 (patch) | |
tree | 1e84107d66eb76d0ab98ac99e97a766bede5270a /src | |
parent | 2bdc80b75489d463d0c1e57e2a578afeeb0875d1 (diff) | |
download | baobab-7b242fd47dbcf1849709f44a019b9d1bd2967327.tar.gz |
Move color definitions to the CSS
And do some cleanup.
Diffstat (limited to 'src')
-rw-r--r-- | src/baobab-chart.vala | 28 | ||||
-rw-r--r-- | src/baobab-ringschart.vala | 9 |
2 files changed, 15 insertions, 22 deletions
diff --git a/src/baobab-chart.vala b/src/baobab-chart.vala index 1e658e7..0e490a7 100644 --- a/src/baobab-chart.vala +++ b/src/baobab-chart.vala @@ -54,12 +54,8 @@ namespace Baobab { protected const uint MAX_DEPTH = 5; protected const uint MIN_DEPTH = 1; - const Gdk.RGBA TANGO_COLORS[] = {{0.94, 0.16, 0.16, 1.0}, /* tango: ef2929 */ - {0.68, 0.49, 0.66, 1.0}, /* tango: ad7fa8 */ - {0.45, 0.62, 0.82, 1.0}, /* tango: 729fcf */ - {0.54, 0.89, 0.20, 1.0}, /* tango: 8ae234 */ - {0.91, 0.73, 0.43, 1.0}, /* tango: e9b96e */ - {0.99, 0.68, 0.25, 1.0}}; /* tango: fcaf3e */ + // Keep in sync with colors defined in CSS + const int NUM_TANGO_COLORS = 6; uint name_column; uint display_name_column; @@ -456,23 +452,25 @@ namespace Baobab { } protected Gdk.RGBA get_item_color (double rel_position, uint depth, bool highlighted) { - const Gdk.RGBA level_color = {0.83, 0.84, 0.82, 1.0}; - const Gdk.RGBA level_color_hi = {0.88, 0.89, 0.87, 1.0}; - + var context = get_style_context (); var color = Gdk.RGBA (); double intensity = 1 - (((depth - 1) * 0.3) / MAX_DEPTH); if (depth == 0) { - color = level_color; + context.lookup_color ("level_color", out color); } else { + Gdk.RGBA color_a, color_b; + int color_number = (int) (rel_position / (100.0/3)); - int next_color_number = (color_number + 1) % 6; + int next_color_number = (color_number + 1) % NUM_TANGO_COLORS; + + context.lookup_color ("tango_color_" + color_number.to_string (), out color_a); + context.lookup_color ("tango_color_" + next_color_number.to_string (), out color_b); + + color = interpolate_colors (color_a, color_b, (rel_position - color_number * 100/3) / (100/3)); - color = interpolate_colors (TANGO_COLORS[color_number], - TANGO_COLORS[next_color_number], - (rel_position - color_number * 100/3) / (100/3)); color.red *= intensity; color.green *= intensity; color.blue *= intensity; @@ -480,7 +478,7 @@ namespace Baobab { if (highlighted) { if (depth == 0) { - color = level_color_hi; + context.lookup_color ("level_color_hi", out color); } else { double maximum = double.max (color.red, double.max (color.green, color.blue)); color.red /= maximum; diff --git a/src/baobab-ringschart.vala b/src/baobab-ringschart.vala index 0a80067..b1c5e39 100644 --- a/src/baobab-ringschart.vala +++ b/src/baobab-ringschart.vala @@ -240,14 +240,11 @@ namespace Baobab { get_allocation (out allocation); var context = get_style_context (); - context.save (); - - var toplevel_context = get_toplevel ().get_style_context (); Gdk.RGBA border_color; - context.lookup_color ("chart_borders", out border_color); Gdk.RGBA bg_color; - toplevel_context.lookup_color ("theme_bg_color", out bg_color); + context.lookup_color ("chart_borders", out border_color); + context.lookup_color ("theme_bg_color", out bg_color); var center_x = allocation.width / 2; var center_y = allocation.height / 2; @@ -294,8 +291,6 @@ namespace Baobab { cr.stroke (); } } - - context.restore (); } protected override void calculate_item_geometry (ChartItem item) { |