I'm on a roll!

This commit is contained in:
XANTRONIX Development 2023-12-29 17:35:17 -05:00
parent 353ece7390
commit c6f0ef5ec1

View file

@ -1,9 +1,6 @@
import math import math
import cairo import cairo
CLUSTER_WIDTH = 1280
CLUSTER_HEIGHT = 480
class Gauge(): class Gauge():
__slots = 'x', 'y', 'radius', __slots = 'x', 'y', 'radius',
@ -20,16 +17,19 @@ class Gauge():
self.radius = radius self.radius = radius
def _gradient(self): def _gradient(self):
gradient = cairo.LinearGradient(0, 0, 2 * self.radius, 2 * self.radius) gradient = cairo.LinearGradient(self.x - self.radius,
self.y - self.radius,
self.x + self.radius,
self.y + self.radius)
for stop in self.BEZEL_GRADIENT_STOPS: for stop in self.BEZEL_GRADIENT_STOPS:
gradient.add_color_stop_rgba(*stop) gradient.add_color_stop_rgba(*stop)
return gradient return gradient
def _draw_face(self, cr: cairo.Context): def draw_bg(self, cr: cairo.Context):
arc = (self.radius, arc = (self.x,
self.radius, self.y,
self.radius - self.BEZEL_WIDTH, self.radius - self.BEZEL_WIDTH,
0, 0,
2.0 * math.pi) 2.0 * math.pi)
@ -44,3 +44,19 @@ class Gauge():
cr.set_line_width(self.BEZEL_WIDTH) cr.set_line_width(self.BEZEL_WIDTH)
cr.arc(*arc) cr.arc(*arc)
cr.stroke() cr.stroke()
class Cluster():
WIDTH = 1280
HEIGHT = 480
__slots__ = 'gauges',
def __init__(self):
self.gauges = list()
for x in (self.HEIGHT / 2, self.WIDTH - self.HEIGHT / 2):
self.gauges.append(Gauge(x, self.HEIGHT / 2, self.HEIGHT / 2))
def draw_bg(self, cr: cairo.Context):
for gauge in self.gauges:
gauge.draw_bg(cr)