From 1eae252f41eab7612864fb479263dc93310d8930 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Wed, 2 Jul 2025 23:36:30 +0200 Subject: init --- .../lang/AutoCloseable/ScopeObjectCloseable.java | 25 ++++++++++++++++++++++ .../wayland/client/Proxy/ProxyExtension.java | 20 +++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java create mode 100644 src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java (limited to 'src/main/java/mossbar') diff --git a/src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java b/src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java new file mode 100644 index 0000000..6268327 --- /dev/null +++ b/src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java @@ -0,0 +1,25 @@ +package mossbar.extensions.java.lang.AutoCloseable; + +import manifold.ext.rt.api.Extension; +import manifold.ext.rt.api.Self; +import manifold.ext.rt.api.This; +import moe.nea.mossbar.concepts.Scope; +import moe.nea.mossbar.concepts.ScopeObject; + +@Extension +public class ScopeObjectCloseable { + public static ScopeObject asScopeObject(@This AutoCloseable closeable) { + return () -> { + try { + closeable.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } + }; + } + + public static @Self AutoCloseable bindTo(@Self @This AutoCloseable thiz, Scope scope) { + thiz.asScopeObject().bindTo(scope); + return thiz; + } +} \ No newline at end of file diff --git a/src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java b/src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java new file mode 100644 index 0000000..50aee26 --- /dev/null +++ b/src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java @@ -0,0 +1,20 @@ +package mossbar.extensions.org.freedesktop.wayland.client.Proxy; + +import manifold.ext.rt.api.Extension; +import manifold.ext.rt.api.Self; +import manifold.ext.rt.api.This; +import moe.nea.mossbar.concepts.Scope; +import moe.nea.mossbar.concepts.ScopeObjectProxy; +import org.freedesktop.wayland.client.Proxy; + +@Extension +public class ProxyExtension { + public static ScopeObjectProxy asScopeObject(@This Proxy thiz) { + return new ScopeObjectProxy(thiz); + } + + public static @Self Proxy bindTo(@Self @This Proxy thiz, Scope scope) { + asScopeObject(thiz).bindTo(scope); + return thiz; + } +} \ No newline at end of file -- cgit