Consolidate draw_legend() to Dial class
This commit is contained in:
parent
9f366ef191
commit
d650417b9d
2 changed files with 7 additions and 13 deletions
|
@ -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()
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
Loading…
Add table
Reference in a new issue