2008-08-29 Mark Doffman <mark.doffman@codethink.co.uk>
[platform/core/uifw/at-spi2-atk.git] / xml / org.freedesktop.atspi.Registry.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <node xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" name="/node">
3 <interface name="org.freedesktop.atspi.Registry">
4   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
5     <p>The Registry is a service through which applications providing 
6       accessibility services (servers) can rendezvous with consumers of those
7       services (Assistive Technologies).  The Registry is the first "port of call" for 
8       accessible applications and for assistive technologies wishing to query and
9       interact with those applications.  </p>
10
11     <p>The Registry service provides four basic functions to Assistive Technology (AT) clients:
12             <ol>
13                     <li>It provides a list of the applications who have registered with the
14                             AT-SPI framework, thereby announcing their participation in the AT-SPI framework.</li>
15                     <li>It gives access to system device events via the associated DeviceEventController interface.</li>
16             </ol>
17     </p>
18
19     <p>From the point of view of accessible applications (i.e. AT-SPI service producers), 
20       the Registry is primarily a registration and event delivery service.  Applications 
21       normally only call the registerApplication and deregisterApplication Registry methods,
22       and its inherited EventListener::notifyEvent method.  </p>
23
24     <p>Although all application events are dispatched via the Registry, other AT client 
25       calls are serviced directly by the applications, rather than being relayed via the
26       Registry.  The AT client obtains references to these application objects
27       via the enumeration of Desktop instances whose children are Application instances
28       (Registry.getDesktopList) and via examination of the 'source' member of the Event 
29       structure.   </p>
30
31     <p>The Registry normally lives in its own process space; communication via Registry and
32       both application services and AT clients takes place via IPC.  A process space diagram
33       illustrating the relationship between applications, Registry, and AT is shown at:
34       http://developer.gnome.org/projects/gap/tech-docs/SPIBlockDiagram.png  </p>
35   </tp:docstring>
36   <method name="registerApplication">
37     <tp:docstring>
38       Register a new application with the accessibility broker.
39     </tp:docstring>
40   </method>
41   <method name="deregisterApplication">
42     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
43       <p>De-register an application previously registered with the broker.
44         deregisterApplication:</p>
45     </tp:docstring>
46     <arg direction="in" name="app" type="o" tp:type="Application">
47     <tp:docstring>
48       A reference to the Application to be deregistered.
49     </tp:docstring>
50     </arg>
51   </method>
52   <method name="registerGlobalEventListener">
53     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
54       <p>Register a client's interest in (all) application events of 
55         a certain type.</p>
56     </tp:docstring>
57     <arg direction="in" name="listener" type="o" tp:type="EventListener">
58     <tp:docstring>
59       A reference to the requesting EventListener.
60     </tp:docstring>
61     </arg>
62     <arg direction="in" name="eventName" type="s">
63     <tp:docstring>
64       A string which indicates the type of events about which the client desires notification.
65     </tp:docstring>
66     </arg>
67   </method>
68   <method name="deregisterGlobalEventListenerAll">
69     <arg direction="in" name="listener" type="o" tp:type="EventListener">
70     <tp:docstring>
71       The requesting EventListenerRequest that a previously registered client stop receiving global notifications for all events for which it was registered.
72     </tp:docstring>
73     </arg>
74   </method>
75   <method name="deregisterGlobalEventListener">
76     <arg direction="in" name="listener" type="o" tp:type="EventListener">
77     <tp:docstring>
78       The requesting EventListener
79     </tp:docstring>
80     </arg>
81     <arg direction="in" name="eventName" type="s">
82     <tp:docstring>
83       A string indicating the type of eventsRequest that a previously registered client stop receiving global notifications for events of a certain type.
84     </tp:docstring>
85     </arg>
86   </method>
87   <method name="getDesktopCount">
88     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
89       <p>Event types: "Window" "Desktop"
90         "Window:Create" "Window:Destroy"
91         "Window:Iconify" "Window:Restore"
92         "Window:Fullscreen" "Window:Resize"
93         "Desktop:Create" "Desktop:Destroy"  
94         "Desktop:Focus" "Desktop:Defocus"
95         "Desktop:Reorder" 
96         "Focus"
97         "GtkWidget:show"
98         "GObject:notify:propertyname"     </p>
99
100       <p>( not sure we should allow these last 2 forms, 
101         since they are toolkit-specific, but they're powerful )    </p>
102
103       <p>Get the current number of desktops.</p>
104     </tp:docstring>
105     <arg direction="out" type="n" tp:type="short">
106     <tp:docstring>
107       A short integer indicating the current number of Desktops.
108     </tp:docstring>
109     </arg>
110   </method>
111   <method name="getDesktop">
112     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
113       <p>Get the nth accessible desktop.     </p>
114     </tp:docstring>
115     <arg direction="in" name="n" type="n" tp:type="short"/>
116     <arg direction="out" type="o" tp:type="Desktop">
117     <tp:docstring>
118       A reference to the requested Desktop.
119     </tp:docstring>
120     </arg>
121   </method>
122   <method name="getDesktopList">
123     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
124       <p>Get a list of accessible desktops.     </p>
125     </tp:docstring>
126     <arg direction="out" type="as" tp:type="DesktopSeq">
127     <tp:docstring>
128       A sequence containing references tothe Desktops.
129     </tp:docstring>
130     </arg>
131   </method>
132   <method name="getDeviceEventController">
133     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
134       <p>Obtain an object which can be used to request device event notifications.    </p>
135     </tp:docstring>
136     <arg direction="out" type="o" tp:type="DeviceEventController">
137     <tp:docstring>
138       An object implementing DeviceEventController
139     </tp:docstring>
140     </arg>
141   </method>
142 </interface>
143 </node>