Consolidate draw_legend() to Dial class

This commit is contained in:
XANTRONIX Development 2024-01-09 12:57:16 -05:00
parent 9f366ef191
commit d650417b9d
2 changed files with 7 additions and 13 deletions

View file

@ -47,8 +47,12 @@ class Dial(Gauge):
def draw_legend(self, cr: cairo.Context, radius: float, value: float, text: str):
angle = self.angle(value)
cr.move_to(self.x + radius * self.radius * math.cos(angle) - 20,
self.y + radius * self.radius * math.sin(angle) + 5)
extents = cr.text_extents(text)
width = extents[2] - extents[0]
height = extents[3] - extents[1]
cr.move_to(self.x + radius * self.radius * math.cos(angle) - width / 1.5,
self.y + radius * self.radius * math.sin(angle) + height / 4)
cr.show_text(text)
cr.stroke()

View file

@ -22,16 +22,6 @@ class Tacho(Dial):
self.gear: Gear = Gear.N
self.shift_mode: ShiftMode = ShiftMode.NORMAL
def draw_legend(self, cr: cairo.Context, radius: float, value: float, text: str):
scale = value / self.max_value
angle = self.min_angle + ((self.max_angle - self.min_angle) * scale) - Dial.ANGLE_OFFSET
cr.move_to(self.x + radius * self.radius * math.cos(angle) - 8,
self.y + radius * self.radius * math.sin(angle) + 15)
cr.show_text(text)
cr.stroke()
def draw_bg(self, cr: cairo.Context):
super().draw_bg(cr)
@ -57,7 +47,7 @@ class Tacho(Dial):
if speed >= self.redline:
cr.set_source_rgb(1.0, 0.1, 0.1)
self.draw_legend(cr, 0.69, speed, "%d" % int(speed / 1000))
self.draw_legend(cr, 0.675, speed, "%d" % int(speed / 1000))
def gear_text(self):
text = ''