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

@@ -371,18 +371,25 @@ class Frontend(Gtk.Window):
# Geräterahmen mit Buttons
self.da_device = Gtk.DrawingArea()
self.fixed.put(self.da_device, 0, 0)
self.da_device.set_size_request(530, 555) # für fixed benötigt
if self._fullscreen:
self.da_device.set_size_request(800, 480)
else:
self.da_device.set_size_request(530, 555) # für fixed benötigt
self.da_device.add_events(Gdk.EventMask.BUTTON_PRESS_MASK|Gdk.EventMask.BUTTON_RELEASE_MASK)
self.da_device.connect("draw", self.da_device_draw)
self.da_device.connect('button-press-event', self.da_button_press)
self.da_device.connect('button-release-event', self.da_button_release)
# Displayfläche
self.da = Gtk.DrawingArea()
self.fixed.put(self.da, 64, 95)
self.da.set_size_request(400, 300) # für fixed benötigt
if self._fullscreen:
self.fixed.put(self.da, 0, 0)
self.da.set_size_request(640, 480) # Faktor 1,6 zu 400x300
else:
self.fixed.put(self.da, 64, 95)
self.da.set_size_request(400, 300) # für fixed benötigt
self.da.connect("draw", self.da_draw)
# Flash LED
self.flashled = LED(self.fixed) # Soft Flash-LED
self.flashled = LED(self.fixed, self._fullscreen) # Soft Flash-LED
self.button_clicked = 0 # Geklickter Button vor Loslassen
self.keylock = False
@@ -410,7 +417,10 @@ class Frontend(Gtk.Window):
# Tastaturstatus an Seite durchreichen
self.curpage.keylock = self.keylock
# Neuzeichnen
self.da.queue_draw()
if self._fullscreen:
self.da_device.queue_draw()
else:
self.da.queue_draw()
return True
def on_timer_slow(self):
@@ -433,6 +443,9 @@ class Frontend(Gtk.Window):
viewport.width = 530
viewport.height = 555
self._svg.render_document(ctx, viewport)
if self._fullscreen:
# Seitliche Buttons zeichnen
self.curpage.draw_sidebuttons(ctx)
def da_draw(self, widget, ctx):
ctx.set_source_rgb(1.0, 0, 0)
@@ -663,6 +676,17 @@ if __name__ == "__main__":
setproctitle("obp60v")
owndevice = Device(100)
# Hardcoding device, not intended to change
owndevice.manufacturercode = cfg['manufcode']
owndevice.industrygroup = cfg['industrygroup']
owndevice.deviceclass = cfg['devclass']
owndevice.devicefunction = cfg['devfunc']
boatdata = BoatData()
boatdata.addTank(0)
boatdata.addEngine(0)
# Basiskonfiguration aus Datei lesen
config = configparser.ConfigParser()
config_path = os.path.join(sys.path[0], cfg['cfgfile'])
@@ -755,16 +779,6 @@ if __name__ == "__main__":
# Globale Daten, u.a. auch Shutdown-Indikator
appdata = AppData(log, cfg)
owndevice = Device(100)
# Hardcoding device, not intended to change
owndevice.manufacturercode = cfg['manufcode']
owndevice.industrygroup = cfg['industrygroup']
owndevice.deviceclass = cfg['devclass']
owndevice.devicefunction = cfg['devfunc']
boatdata = BoatData()
boatdata.addTank(0)
boatdata.addEngine(0)
# Ggf. Simulationsdaten einschalten
if cfg['simulation']: