Anpassung an Vollbild 800x480 auf OBP60P physischem Display

This commit is contained in:
2025-09-19 20:01:53 +02:00
parent 65335e3c91
commit bcbaa25cf5
4 changed files with 73 additions and 34 deletions

View File

@@ -21,7 +21,7 @@ import astral
class Clock(Page):
def __init__(self, pageno, cfg, appdata, boatdata):
super().__init__(pageno, cfg, boatdata)
super().__init__(pageno, cfg, appdata, boatdata)
self.buttonlabel[1] = 'MODE'
self.buttonlabel[2] = 'TZ'
self.mode = ('A', 'D', 'T') # (A)nalog (D)igital (T)imer

View File

@@ -162,11 +162,40 @@ class Page():
ctx.show_text(datetime.today().strftime('%H:%M %Y-%m-%d LOT'))
ctx.stroke()
def draw_sidebuttons(self, ctx):
"""
Seitliche Buttons zeichnen im Fullscreen-Modus
"""
ctx.save()
ctx.select_font_face("AtariST8x16SystemFont")
ctx.set_font_size(16)
ctx.scale(1.6, 1.6)
ctx.set_source_rgb(0, 0, 0)
bx = 400
by = (128, 192, 256, 320, 384, 448)
bw = 160
bh = 64
for i in range(6):
if len(self.buttonlabel[i+1]) > 0 :
if self.buttonlabel[i+1][0] == "#":
# Symbol verwenden 16x16 Pixel
ctx.save()
key = self.buttonlabel[i+1][1:]
ctx.set_source_surface(self.icon[key], bx + bw / 3.2 - 8, by[i] / 1.6 - 6)
ctx.paint()
ctx.restore()
else:
w = ctx.text_extents(self.buttonlabel[i+1]).width
ctx.move_to(bx + bw/3.2 - w/2, by[i] / 1.6 + 8)
ctx.show_text(self.buttonlabel[i+1])
ctx.stroke()
ctx.restore()
def draw_footer(self, ctx):
"""
Nur Belegung der Buttons (label[1] bis label[6])
"""
ctx.select_font_face("AtariST8x16SystemFont")
ctx.set_font_size(16)
x = (35, 101, 167, 233, 299, 365)
@@ -184,11 +213,6 @@ class Page():
ctx.line_to(x[i]+32.5, 300)
ctx.stroke()
# Fullscreen-Buttons
bx = 400
by = (128, 192, 256, 320, 384, 448)
bw = 160
bh = 64
for i in range(6):
if len(self.buttonlabel[i+1]) > 0 :
if self.buttonlabel[i+1][0] == "#":
@@ -197,18 +221,12 @@ class Page():
key = self.buttonlabel[i+1][1:]
ctx.set_source_surface(self.icon[key], x[i]-8, y-13)
ctx.paint()
ctx.set_source_surface(self.icon[key], bx + bw / 3.2 - 8, by[i] / 1.6 - 6)
ctx.paint()
ctx.restore()
else:
text = self.buttonlabel[i+1]
w = ctx.text_extents(text).width
ctx.move_to(x[i] - w/2, y+2)
ctx.show_text(text)
if self.fullscreen:
w = ctx.text_extents(self.buttonlabel[i+1]).width
ctx.move_to(bx + bw/3.2 - w/2, by[i] / 1.6 + 8)
ctx.show_text(self.buttonlabel[i+1])
ctx.stroke()
def draw_alarm(self, ctx, source, alarmid, message):