Fensterposition merken
This commit is contained in:
parent
e94f6df408
commit
5c2f058888
|
@ -1,2 +1,3 @@
|
||||||
*~
|
*~
|
||||||
__pycache__
|
__pycache__
|
||||||
|
nmea2000
|
||||||
|
|
45
obp60.conf
45
obp60.conf
|
@ -7,8 +7,12 @@ histpath = ~/.local/lib/obp60
|
||||||
guistyle = fullscreen
|
guistyle = fullscreen
|
||||||
mouseptr = off
|
mouseptr = off
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
win_x = -1
|
||||||
|
win_y = -1
|
||||||
|
|
||||||
[bme280]
|
[bme280]
|
||||||
enabled = true
|
enabled = false
|
||||||
port = 1
|
port = 1
|
||||||
address = 0x76
|
address = 0x76
|
||||||
|
|
||||||
|
@ -59,40 +63,41 @@ number_of_pages = 10
|
||||||
start_page = 1
|
start_page = 1
|
||||||
|
|
||||||
[page1]
|
[page1]
|
||||||
type=Clock
|
type = Clock
|
||||||
|
|
||||||
[page2]
|
[page2]
|
||||||
type=Barograph
|
type = Barograph
|
||||||
|
|
||||||
[page3]
|
[page3]
|
||||||
type=Anchor
|
type = Anchor
|
||||||
|
|
||||||
[page4]
|
[page4]
|
||||||
type=Autobahn
|
type = Autobahn
|
||||||
|
|
||||||
[page5]
|
[page5]
|
||||||
type=ApparentWind
|
type = ApparentWind
|
||||||
|
|
||||||
[page6]
|
[page6]
|
||||||
type=TwoValues
|
type = TwoValues
|
||||||
value1=LAT
|
value1 = LAT
|
||||||
value2=LON
|
value2 = LON
|
||||||
|
|
||||||
[page7]
|
[page7]
|
||||||
type=ThreeValues
|
type = ThreeValues
|
||||||
value1=COG
|
value1 = COG
|
||||||
value2=STW
|
value2 = STW
|
||||||
value3=DBT
|
value3 = DBT
|
||||||
|
|
||||||
[page8]
|
[page8]
|
||||||
type=FourValues
|
type = FourValues
|
||||||
value1=AWA
|
value1 = AWA
|
||||||
value2=AWS
|
value2 = AWS
|
||||||
value3=COG
|
value3 = COG
|
||||||
value4=STW
|
value4 = STW
|
||||||
|
|
||||||
[page9]
|
[page9]
|
||||||
type=Rudder
|
type = Rudder
|
||||||
|
|
||||||
[page10]
|
[page10]
|
||||||
type=SkyView
|
type = SkyView
|
||||||
|
|
||||||
|
|
33
obp60.py
33
obp60.py
|
@ -284,9 +284,12 @@ class Frontend(Gtk.Window):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.owndev = device
|
self.owndev = device
|
||||||
self.boatdata = boatdata
|
self.boatdata = boatdata
|
||||||
|
self._config = cfg['_config']
|
||||||
|
self._cfgfile = cfg['cfgfile']
|
||||||
self._fullscreen = cfg['guistyle'] == 'fullscreen'
|
self._fullscreen = cfg['guistyle'] == 'fullscreen'
|
||||||
self._mouseptr = cfg['mouseptr']
|
self._mouseptr = cfg['mouseptr']
|
||||||
|
|
||||||
|
self.connect("delete-event", self.on_delete)
|
||||||
self.connect("destroy", self.on_destroy)
|
self.connect("destroy", self.on_destroy)
|
||||||
|
|
||||||
if self._fullscreen:
|
if self._fullscreen:
|
||||||
|
@ -306,6 +309,8 @@ class Frontend(Gtk.Window):
|
||||||
self.button_w = 160
|
self.button_w = 160
|
||||||
self.button_h = 64
|
self.button_h = 64
|
||||||
else:
|
else:
|
||||||
|
if cfg['win_x'] >= 0 and cfg['win_y'] >= 0:
|
||||||
|
self.move(cfg['win_x'], cfg['win_y'])
|
||||||
self.button_round = True
|
self.button_round = True
|
||||||
# Runde Tasten wie beim Original-Gerät
|
# Runde Tasten wie beim Original-Gerät
|
||||||
self.button = { # Mittelpunkt
|
self.button = { # Mittelpunkt
|
||||||
|
@ -442,7 +447,6 @@ class Frontend(Gtk.Window):
|
||||||
# Falls der Rückgabewert "True" ist, hat die Seite die Taste
|
# Falls der Rückgabewert "True" ist, hat die Seite die Taste
|
||||||
# verarbeitet, die Funktion hier wird damit unterdrückt.
|
# verarbeitet, die Funktion hier wird damit unterdrückt.
|
||||||
# TODO
|
# TODO
|
||||||
print("release")
|
|
||||||
if self.button_round:
|
if self.button_round:
|
||||||
if (event.x < self.button[1][0] - self.button_radius or event.x > self.button[6][0] + self.button_radius):
|
if (event.x < self.button[1][0] - self.button_radius or event.x > self.button[6][0] + self.button_radius):
|
||||||
return True
|
return True
|
||||||
|
@ -475,7 +479,7 @@ class Frontend(Gtk.Window):
|
||||||
if self.button_clicked == 2:
|
if self.button_clicked == 2:
|
||||||
# Programmende bei Klicken auf 2 und loslassen auf 1
|
# Programmende bei Klicken auf 2 und loslassen auf 1
|
||||||
self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH))
|
self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH))
|
||||||
Gtk.main_quit()
|
self.on_destroy(self)
|
||||||
elif self.button_clicked == 6:
|
elif self.button_clicked == 6:
|
||||||
# Klick auf 6 und loslassen auf 1 ist Tastatursperre
|
# Klick auf 6 und loslassen auf 1 ist Tastatursperre
|
||||||
self.keylock = True
|
self.keylock = True
|
||||||
|
@ -513,7 +517,22 @@ class Frontend(Gtk.Window):
|
||||||
self.curpage.backlight = not self.curpage.backlight
|
self.curpage.backlight = not self.curpage.backlight
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def on_delete(self, widget, event):
|
||||||
|
# Einhängepunkt für zukünftige Erweiterungen
|
||||||
|
# Hier kann der Vorgang noch durch z.B. Benutzerinteraktion
|
||||||
|
# abgebrochen werden
|
||||||
|
print("Window delete event")
|
||||||
|
return False
|
||||||
|
|
||||||
def on_destroy(self, widget):
|
def on_destroy(self, widget):
|
||||||
|
# Letzte Fensterposition speichern
|
||||||
|
position = self.get_position()
|
||||||
|
if not self._config.has_section('gui'):
|
||||||
|
config.add_section('gui')
|
||||||
|
self._config.set('gui', 'win_x', str(position[0]))
|
||||||
|
self._config.set('gui', 'win_y', str(position[1]))
|
||||||
|
with open(self._cfgfile, 'w') as fh:
|
||||||
|
self._config.write(fh)
|
||||||
Gtk.main_quit()
|
Gtk.main_quit()
|
||||||
|
|
||||||
def init_profile(config, cfg, boatdata):
|
def init_profile(config, cfg, boatdata):
|
||||||
|
@ -588,12 +607,20 @@ if __name__ == "__main__":
|
||||||
# Basiskonfiguration aus Datei lesen
|
# Basiskonfiguration aus Datei lesen
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read(os.path.join(sys.path[0], cfg['cfgfile']))
|
config.read(os.path.join(sys.path[0], cfg['cfgfile']))
|
||||||
|
cfg['_config'] = config # Objekt zum späteren schreiben
|
||||||
cfg['deviceid'] = config.getint('system', 'deviceid')
|
cfg['deviceid'] = config.getint('system', 'deviceid')
|
||||||
cfg['simulation'] = config.getboolean('system', 'simulation')
|
cfg['simulation'] = config.getboolean('system', 'simulation')
|
||||||
cfg['histpath'] = os.path.expanduser(config.get('system', 'histpath'))
|
cfg['histpath'] = os.path.expanduser(config.get('system', 'histpath'))
|
||||||
cfg['guistyle'] = config.get('system', 'guistyle')
|
cfg['guistyle'] = config.get('system', 'guistyle')
|
||||||
cfg['mouseptr'] = config.getboolean('system', 'mouseptr')
|
|
||||||
print("Setting GUI style to '{}'".format(cfg['guistyle']))
|
print("Setting GUI style to '{}'".format(cfg['guistyle']))
|
||||||
|
cfg['mouseptr'] = config.getboolean('system', 'mouseptr')
|
||||||
|
try:
|
||||||
|
cfg['win_x'] = config.getint('gui', 'win_x')
|
||||||
|
cfg['win_y'] = config.getint('gui', 'win_y')
|
||||||
|
except (configparser.NoSectionError, configparser.NoOptionError):
|
||||||
|
# Keine vorgegebene Position
|
||||||
|
cfg['win_x'] = -1
|
||||||
|
cfg['win_y'] = -1
|
||||||
|
|
||||||
cfg['gps'] = config.getboolean('gps', 'enabled')
|
cfg['gps'] = config.getboolean('gps', 'enabled')
|
||||||
if cfg['gps']:
|
if cfg['gps']:
|
||||||
|
|
Loading…
Reference in New Issue