From 8c365d213d13c067e63528b3e86d7df99bf0edb7 Mon Sep 17 00:00:00 2001 From: Allan Crooks Date: Sat, 15 Apr 2023 16:53:26 +0100 Subject: [PATCH] Allow Bar to have gradient values overridden by subclasses. --- src/widget.lua | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/widget.lua b/src/widget.lua index 234380a..4ecbaaf 100644 --- a/src/widget.lua +++ b/src/widget.lua @@ -622,21 +622,26 @@ function Bar:set_fill(fraction) self._fraction = fraction end +function Bar:gradient_values(fraction) + return { + fraction - 0.33, 0.33, + fraction - 0.08, 0.66, + fraction - 0.01, 0.75, + fraction, 1, + fraction + 0.01, 0.2, + fraction + 0.1, 0.1, + 1, 0.15, + } +end + function Bar:render(cr) local r, g, b = unpack(self.color) cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE) cairo_set_line_width(cr, 1) cairo_rectangle(cr, 0, 0, self._width, self._thickness) - ch.alpha_gradient(cr, 0, 0, self._width, 0, r, g, b, { - self._fraction - 0.33, 0.33, - self._fraction - 0.08, 0.66, - self._fraction - 0.01, 0.75, - self._fraction, 1, - self._fraction + 0.01, 0.2, - self._fraction + 0.1, 0.1, - 1, 0.15, - }) + ch.alpha_gradient(cr, 0, 0, self._width, 0, r, g, b, + self:gradient_values(self._fraction)) cairo_fill(cr) -- border