Konfigurationsmodus für Tide begonnen
This commit is contained in:
@@ -13,6 +13,8 @@ class Navtex(Page):
|
||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||
super().__init__(pageno, cfg, appdata, boatdata)
|
||||
self.disabled = self.app.navtex is None
|
||||
if self.disabled:
|
||||
return
|
||||
self.ids = self.app.navtex.get_ids()
|
||||
if len(self.ids) > 0:
|
||||
self.current = 1
|
||||
|
||||
@@ -13,11 +13,86 @@ class Tide(Page):
|
||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||
super().__init__(pageno, cfg, appdata, boatdata)
|
||||
|
||||
self.buttonlabel[1] = 'MODE'
|
||||
self.mode = 'N' # (N)ormal, (C)onfiguration
|
||||
|
||||
self.station = "f3c6ee73-5561-4068-96ec-364016e7d9ef" # Schulau
|
||||
self.app.web.set_pegel('List, Sylt')
|
||||
self.pegel = 'List, Sylt'
|
||||
self.app.web.set_pegel(self.pegel)
|
||||
self.app.web.refresh()
|
||||
|
||||
def draw(self, ctx):
|
||||
# Steuerung der Stationsliste
|
||||
self.list_max = 10
|
||||
self.list_top = 0
|
||||
self.list_ix = 0
|
||||
self.list_pegel = self.pegel
|
||||
self.list_count = len(self.app.web.pegeldata)
|
||||
|
||||
def handle_key(self, buttonid):
|
||||
if buttonid == 1:
|
||||
if self.mode == 'N':
|
||||
self.mode = 'C'
|
||||
self.buttonlabel[3] = '#UP'
|
||||
self.buttonlabel[4] = '#DOWN'
|
||||
self.buttonlabel[5] = 'SET'
|
||||
else:
|
||||
self.mode = 'N'
|
||||
self.buttonlabel[3] = '#PREV'
|
||||
self.buttonlabel[4] = '#NEXT'
|
||||
self.buttonlabel[5] = ''
|
||||
return True
|
||||
if self.mode == 'C':
|
||||
if buttonid == 3:
|
||||
# Up
|
||||
self.list_ix -= 1
|
||||
if self.list_ix < self.list_top:
|
||||
self.list_top -= 1
|
||||
elif buttonid == 4:
|
||||
# Down
|
||||
self.list_ix += 1
|
||||
if self.list_ix > self.list_top + self.list_max:
|
||||
self.list_top += 1
|
||||
elif buttonid == 5:
|
||||
# Set
|
||||
print(self.list_pegel)
|
||||
self.pegel = self.list_pegel
|
||||
self.app.web.set_pegel(self.list_pegel)
|
||||
self.app.web.refresh()
|
||||
return True
|
||||
return False
|
||||
|
||||
def draw_config(self, ctx):
|
||||
# Auswahl
|
||||
# - Station
|
||||
# - Zeitraum
|
||||
#
|
||||
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
||||
ctx.set_font_size(20)
|
||||
|
||||
ctx.move_to(2, 50)
|
||||
ctx.show_text("Tide configuration")
|
||||
|
||||
y = 80
|
||||
dy = 20
|
||||
ctx.set_font_size(20)
|
||||
i = 0
|
||||
ix = -1
|
||||
for pd in self.app.web.pegeldata:
|
||||
ix += 1
|
||||
if ix < self.list_top:
|
||||
continue
|
||||
ctx.move_to(20, y + dy * i)
|
||||
ctx.show_text(pd)
|
||||
self.list_pegel = pd
|
||||
if self.list_ix == ix:
|
||||
ctx.show_text(' X')
|
||||
i += 1
|
||||
if self.pegel == pd:
|
||||
ctx.show_text(' *')
|
||||
if ix > self.list_top + self.list_max - 1:
|
||||
break
|
||||
|
||||
def draw_normal(self, ctx):
|
||||
# Title
|
||||
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
||||
ctx.set_font_size(24)
|
||||
@@ -124,3 +199,9 @@ class Tide(Page):
|
||||
else:
|
||||
prev_valid = False
|
||||
x += dx
|
||||
|
||||
def draw(self, ctx):
|
||||
if self.mode == 'N':
|
||||
self.draw_normal(ctx)
|
||||
else:
|
||||
self.draw_config(ctx)
|
||||
|
||||
Reference in New Issue
Block a user