From 8e44219b0ea108a4b33cbd1e5ea06dfb1c06f659 Mon Sep 17 00:00:00 2001 From: Aylur Date: Sun, 8 Sep 2024 02:58:14 +0200 Subject: example: add python starter bar --- examples/py/starter-bar/widget/Bar.py | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 examples/py/starter-bar/widget/Bar.py (limited to 'examples/py/starter-bar/widget/Bar.py') diff --git a/examples/py/starter-bar/widget/Bar.py b/examples/py/starter-bar/widget/Bar.py new file mode 100644 index 0000000..9071169 --- /dev/null +++ b/examples/py/starter-bar/widget/Bar.py @@ -0,0 +1,48 @@ +from gi.repository import Astal, Gtk, Gdk, GLib + + +class Time(Astal.Label): + def __init__(self, format="%H:%M:%S"): + super().__init__(visible=True) + self.connect("destroy", self.on_destroy) + self.format = format + self.time = Astal.Time.interval(1000, self.on_tick) + + def on_tick(self): + datetime = GLib.DateTime.new_now_local() + assert datetime + time = datetime.format(self.format) + assert time + self.set_label(time) + + def on_destroy(self, *args, **kwargs): + self.time.cancel() + + +class Bar(Astal.Window): + def __init__(self, monitor: Gdk.Monitor): + super().__init__( + visible=True, + gdkmonitor=monitor, + name="Bar" + str(monitor.get_model()), + anchor=Astal.WindowAnchor.LEFT + | Astal.WindowAnchor.RIGHT + | Astal.WindowAnchor.TOP, + exclusivity=Astal.Exclusivity.EXCLUSIVE, + ) + + Astal.widget_set_class_names(self, ["Bar"]) + start_widget = Astal.Box(visible=True, hexpand=True, halign=Gtk.Align.CENTER) + end_widget = Astal.Box(visible=True, hexpand=True, halign=Gtk.Align.CENTER) + + start_widget.set_children([Astal.Label(visible=True, label="Astal in python")]) + + end_widget.set_children([Time()]) + + self.add( + Astal.CenterBox( + visible=True, + start_widget=start_widget, + end_widget=end_widget, + ) + ) -- cgit v1.2.3