diff --git a/rhino/about.py b/rhino/about.py new file mode 100644 index 0000000..231c912 --- /dev/null +++ b/rhino/about.py @@ -0,0 +1,24 @@ +#! python 3 +# -*- coding: utf-8 -*- +""" +about.py +About-Dialog als Eto-Form + WebView. Vom DOSSIER-Logo-Klick in der +Oberleiste geoeffnet. Read-only — keine Bridge-Endpoints noetig. +""" +import os +import sys + +_HERE = os.path.dirname(os.path.abspath(__file__)) +if _HERE not in sys.path: + sys.path.insert(0, _HERE) + +import panel_base + + +def open_as_window(): + """Oeffnet das About-Fenster (Eto.Form + WebView). Read-only Info + (Versionen + Lizenz) — Standard-SAVE/CANCEL-Bridge ohne Callbacks.""" + panel_base.open_satellite_window( + "about", + title="Über Dossier", + size=(440, 380)) diff --git a/rhino/oberleiste.py b/rhino/oberleiste.py index 4050b39..c50e76d 100644 --- a/rhino/oberleiste.py +++ b/rhino/oberleiste.py @@ -898,6 +898,14 @@ class OberleisteBridge(panel_base.BaseBridge): except Exception as ex: print("[OBERLEISTE] open kamera:", ex) + # --- About-Fenster ---------------------------------------------- + elif t == "OPEN_ABOUT": + try: + import about + about.open_as_window() + except Exception as ex: + print("[OBERLEISTE] open about:", ex) + # --- Masse (Mass-Style) ----------------------------------------- elif t == "SET_MASSE_ACTIVE": try: diff --git a/src/AboutApp.jsx b/src/AboutApp.jsx new file mode 100644 index 0000000..3a6deac --- /dev/null +++ b/src/AboutApp.jsx @@ -0,0 +1,55 @@ +import { useEffect } from 'react' +import { notifyReady } from './lib/rhinoBridge' + +export default function AboutApp() { + useEffect(() => { notifyReady() }, []) + + return ( +