diff options
author | kotontrion <[email protected]> | 2024-05-22 17:44:51 +0200 |
---|---|---|
committer | kotontrion <[email protected]> | 2024-05-22 17:44:51 +0200 |
commit | 7c2bdd44cd7d2c4d50a13a706b6cc13e29340426 (patch) | |
tree | d4589008d201a107b8482d6da7aa389d87d42d2b /src/watcherProxy.vala |
init 0.1.0
Diffstat (limited to 'src/watcherProxy.vala')
-rw-r--r-- | src/watcherProxy.vala | 49 |
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)); + + } + +} +} |