# Accessibility::Registry Interface Reference

`import "Accessibility_Registry.idl";`

Inheritance diagram for Accessibility::Registry:

## Public Member Functions

oneway void | registerApplication (in Application app)
void | deregisterApplication (in Application app)
void | registerGlobalEventListener (in EventListener listener, in string eventName)
void | deregisterGlobalEventListenerAll (in EventListener listener)
void | deregisterGlobalEventListener (in EventListener listener, in string eventName)
short | getDesktopCount ()
Desktop | getDesktop (in short n)
DesktopSeq | getDesktopList ()
DeviceEventController | getDeviceEventController ()

## Detailed Description

The Registry is a service through which applications providing accessibility services (servers) can rendezvous with consumers of those services (Assistive Technologies). The Registry is the first "port of call" for accessible applications and for assistive technologies wishing to query and interact with those applications.

The Registry service provides four basic functions to Assistive Technology (AT) clients:

- it provides a list of the applications who have registered with the AT-SPI framework, thereby announcing their participation in the AT-SPI framework;
- it allows AT clients to register for notification of changes in application state (at-spi Events);
- it dispatches/relays said events from participating applications to the registered listeners;
- it gives access to system device events via the associated DeviceEventController interface.

From the point of view of accessible applications (i.e. AT-SPI service producers), the Registry is primarily a registration and event delivery service. Applications normally only call the registerApplication and deregisterApplication Registry methods, and its inherited EventListener::notifyEvent method.

Note:
  Although all application events are dispatched via the Registry, other AT client calls are serviced directly by the applications, rather than being relayed via the Registry. The AT client obtains references to these application objects via the enumeration of Desktop instances whose children are Application instances (Registry::getDesktopList) and via examination of the 'source' member of the Event structure.

The Registry normally lives in its own process space; communication via Registry and both application services and AT clients takes place via IPC. A process space diagram illustrating the relationship between applications, Registry, and AT is shown below.

See also:
  Desktop, Application, Event, EventListener

## Member Function Documentation

oneway void Accessibility::Registry::registerApplication | ( | in Application | app | ) |

Register a new application with the accessibility broker.

Parameters:

  | app,: | a reference to the requesting Application

void Accessibility::Registry::deregisterApplication | ( | in Application | app | ) |

De-register an application previously registered with the broker. deregisterApplication:

Parameters:

  | app,: | a reference to the Application to be deregistered.

void Accessibility::Registry::registerGlobalEventListener | ( | in EventListener | listener,
|  | in string | eventName |
| ) |  |  |

Register a client's interest in (all) application events of a certain type.

Parameters:

  | listener,: | a reference to the requesting EventListener.
  | eventName,: | a string which indicates the type of events about which the client desires notification.

void Accessibility::Registry::deregisterGlobalEventListenerAll | ( | in EventListener | listener | ) |

deregisterGlobalEventListenerAll:

Parameters:

  | listener,: | the requesting EventListener

Request that a previously registered client stop receiving global notifications for all events for which it was registered.

void Accessibility::Registry::deregisterGlobalEventListener | ( | in EventListener | listener,
|  | in string | eventName |
| ) |  |  |

deregisterGlobalEventListener:

Parameters:

  | listener,: | the requesting EventListener
  | eventName,: | a string indicating the type of events

Request that a previously registered client stop receiving global notifications for events of a certain type.

short Accessibility::Registry::getDesktopCount | ( |  | ) |

event types: "Window" "Desktop" "Window:Create" "Window:Destroy" "Window:Iconify" "Window:Restore" "Window:Fullscreen" "Window:Resize" "Desktop:Create" "Desktop:Destroy" "Desktop:Focus" "Desktop:Defocus" "Desktop:Reorder" "Focus" "GtkWidget:show" "GObject:notify:<propertyname>"

( not sure we should allow these last 2 forms, since they are toolkit-specific, but they're powerful ) getDesktopCount:

Get the current number of desktops.

Returns:
  a short integer indicating the current number of Desktops.

Desktop Accessibility::Registry::getDesktop | ( | in short | n | ) |

getDesktop:
: the index of the requested Desktop.

Get the nth accessible desktop.

Returns:
  a reference to the requested Desktop.

DesktopSeq Accessibility::Registry::getDesktopList | ( |  | ) |

Get a list of accessible desktops.

Returns:
  : a sequence containing references to the Desktops.

DeviceEventController Accessibility::Registry::getDeviceEventController | ( |  | ) |

Obtain an object which can be used to request device event notifications.

Returns:
  : an object implementing DeviceEventController

The documentation for this interface was generated from the following file:

- /home/liyuan/src/at-spi/idl/Accessibility_Registry.idl