summaryrefslogtreecommitdiff
path: root/examples/py/starter-bar/widget/Bar.py
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-09-08 02:58:14 +0200
committerAylur <[email protected]>2024-09-08 02:58:14 +0200
commit8e44219b0ea108a4b33cbd1e5ea06dfb1c06f659 (patch)
tree2340f0683595b502f0ec8c562d544c2bb2cbddf4 /examples/py/starter-bar/widget/Bar.py
parent81f26551103e785fa974e054b2b3357725deb419 (diff)
example: add python starter bar
Diffstat (limited to 'examples/py/starter-bar/widget/Bar.py')
-rw-r--r--examples/py/starter-bar/widget/Bar.py48
1 files changed, 48 insertions, 0 deletions
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,
+ )
+ )