summaryrefslogtreecommitdiff
path: root/src/watcherProxy.vala
diff options
context:
space:
mode:
authorkotontrion <[email protected]>2024-05-22 17:44:51 +0200
committerkotontrion <[email protected]>2024-05-22 17:44:51 +0200
commit7c2bdd44cd7d2c4d50a13a706b6cc13e29340426 (patch)
treed4589008d201a107b8482d6da7aa389d87d42d2b /src/watcherProxy.vala
init 0.1.0
Diffstat (limited to 'src/watcherProxy.vala')
-rw-r--r--src/watcherProxy.vala49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/watcherProxy.vala b/src/watcherProxy.vala
new file mode 100644
index 0000000..18cb296
--- /dev/null
+++ b/src/watcherProxy.vala
@@ -0,0 +1,49 @@
+namespace AstalTray {
+
+[DBus (name="org.kde.StatusNotifierWatcher")]
+internal interface IWatcher : Object {
+
+ public abstract string[] RegisteredStatusNotifierItems { get; }
+ public abstract int ProtocolVersion { get; }
+
+ public abstract void RegisterStatusNotifierItem(string service, BusName sender) throws DBusError, IOError;
+ public abstract void RegisterStatusNotifierHost(string service) throws DBusError, IOError;
+
+ public signal void StatusNotifierItemRegistered(string service);
+ public signal void StatusNotifierItemUnregistered(string service);
+ public signal void StatusNotifierHostRegistered();
+ public signal void StatusNotifierHostUnregistered();
+
+}
+
+
+internal class StatusNotifierWatcherProxy : Object {
+
+
+ private IWatcher proxy;
+
+ public string[] RegisteredStatusNotifierItems { get { return proxy.RegisteredStatusNotifierItems; } }
+ public int ProtocolVersion { get {return proxy.ProtocolVersion;} }
+
+ public signal void StatusNotifierItemRegistered(string service);
+ public signal void StatusNotifierItemUnregistered(string service);
+
+ construct {
+
+ proxy = Bus.get_proxy_sync(
+ BusType.SESSION,
+ "org.kde.StatusNotifierWatcher",
+ "/StatusNotifierWatcher"
+ );
+
+ foreach (string item in proxy.RegisteredStatusNotifierItems) {
+ StatusNotifierItemRegistered(item);
+ }
+
+ proxy.StatusNotifierItemRegistered.connect((s) => StatusNotifierItemRegistered(s));
+ proxy.StatusNotifierItemUnregistered.connect((s) => StatusNotifierItemUnregistered(s));
+
+ }
+
+}
+}