summaryrefslogtreecommitdiff
path: root/Specifications
diff options
context:
space:
mode:
authordavidedmundson <davidedmundson@web>2014-09-01 04:25:35 -0700
committerwww <iki-www@freedesktop.org>2014-09-01 04:25:35 -0700
commit3ad2b6abee3c84437be64f5fba9a3f7c33dcda05 (patch)
treedb74ed99fb4077f098a54ce2a7c4443fcbd0047b /Specifications
parent8b652ddcb66c98c55c2cb1d4aca9190ecaae2175 (diff)
Diffstat (limited to 'Specifications')
-rw-r--r--Specifications/StatusNotifierIcon.mdwn68
1 files changed, 68 insertions, 0 deletions
diff --git a/Specifications/StatusNotifierIcon.mdwn b/Specifications/StatusNotifierIcon.mdwn
index ce95d95e..79a98ce9 100644
--- a/Specifications/StatusNotifierIcon.mdwn
+++ b/Specifications/StatusNotifierIcon.mdwn
@@ -224,6 +224,74 @@ VOID org.freedesktop.StatusNotifierItem.NewStatus (STRING status);
The item has a new status, that is passed as an argument of the signal.
+#StatusNotifierWatcher
+
+There will be a single org.freedesktop.StatusNotifierWatcher service instance registered on the session but at any given time. The StatusNotifierWatcher service is used to keep track of StatusNotifierItem instances, enumerate them and notify when new ones are registered or old ones are unregistered.
+
+It is also used to keep track of org.freedesktop.StatusNotifierHost instances, to have an easy way to know if there is at least one service registered as the visualization host for the status notifier items.
+
+##Methods
+
+###RegisterStatusNotifierItem
+
+VOID org.freedesktop.StatusNotifierWatcher.RegisterStatusNotifierItem (STRING service);
+
+Register a StatusNotifierItem into the StatusNotifierWatcher, in the form of its full name on the session bus, for instance org.freedesktop.StatusNotifierItem-4077-1. A StatusNotifierItem instance must be registered to the watcher in order to be noticed from both the watcher and the StatusNotifierHost instances. If the registered StatusNotifierItem goes away from the session bus, the StatusNotifierWatcher should automatically notice it and remove it from the list of registered services.
+
+###RegisterStatusNotifierHost
+
+VOID org.freedesktop.StatusNotifierWatcher.RegisterStatusNotifierHost (STRING service);
+
+Register a StatusNotifierHost into the StatusNotifierWatcher, in the form of its full name on the session bus, for instance org.freedesktop.StatusNotifierHost-4005. Every NotficationHost instance that intends to display StatusNotifierItem representations should register to StatusNotifierWatcher with this method. The StatusNotifierWatcher should automatically notice if an instance of StatusNotifierHost goes away.
+
+##Properties
+
+###RegisteredStatusNotifierItems
+
+ARRAY(STRING) org.freedesktop.StatusNotifierWatcher.RegisteredStatusNotifierItems ();
+
+List containing all the registered instances of StatusNotifierItem. All elements of the array should correspond to services actually running on the session bus at the moment of the method call.
+
+###IsStatusNotifierHostRegistered
+
+BOOL org.freedesktop.StatusNotifierWatcher.IsStatusNotifierHostRegistered ();
+
+True if at least one StatusNotifierHost has been registered with the Section called RegisterStatusNotifierHost and is currently running. If no StatusNotifierHost are registered and running, all StatusNotifierItem instances should fall back using the Freedesktop System tray specification.
+
+###ProtocolVersion
+
+INT org.freedesktop.StatusNotifierWatcher.ProtocolVersion ();
+
+The version of the protocol the StatusNotifierWatcher instance implements.
+
+##SIGNALS
+
+###StatusNotifierItemRegistered
+
+BOOL org.freedesktop.StatusNotifierWatcher.StatusNotifierItemRegistered (STRING service);
+
+A new StatusNotifierItem has been registered, the argument of the signal is the session bus name of the instance. StatusNotifierHost implementation should listen this signal to know when they should update their representation of the items.
+
+###StatusNotifierItemUnregistered
+
+BOOL org.freedesktop.StatusNotifierWatcher.StatusNotifierItemUnregistered (STRING service);
+
+A StatusNotifierItem instance has disappeared from the bus, the argument of the signal is the session bus name of the instance. StatusNotifierHost implementation should listen this signal to know when they should update their representation of the items.
+
+###StatusNotifierHostRegistered
+
+BOOL org.freedesktop.StatusNotifierWatcher.StatusNotifierHostRegistered ();
+
+A new StatusNotifierHost has been registered, the StatusNotifierItem instances knows that they can use this protocol instead of the Freedesktop System tray protocol.
+
+#StatusNotifierHost
+
+StatusNotifierHost corresponds an object in an application that does the actual graphical representation of StatusNotifierItem instances.
+
+Instances of this service are registered on the Dbus session bus, under a name on the form org.freedesktop.StatusNotifierHost-id where id is an unique identifier, that keeps the names unique on the bus, such as the process-id of the application or another type of identifier if more that one StatusNotifierHost is registered by the same process.
+
+StatusNotifierHost instances don't need any particular property, method or signal registered to the bus. What is important is the presence of the service on the bus, to inform StatusNotifierWatcher that a StatusNotifierItem representation is currently running on the system.
+
# Previous Discussions:
* [[http://www.notmart.org/misc/statusnotifieritem/index.html|http://www.notmart.org/misc/statusnotifieritem/index.html]]