X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=idl%2FAccessibility_Registry.idl;h=52d3c2a1d2fcee8c77c4d9c9c4ac81aaed4533be;hb=f836e838caecf9c86024a152a22d1ba1e45368fc;hp=91359f2e9ad8014944d1ba61966efb77e879ed7c;hpb=9bf98cd378e1572019a743bb4bf18e896b4fcd1d;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/idl/Accessibility_Registry.idl b/idl/Accessibility_Registry.idl index 91359f2..52d3c2a 100644 --- a/idl/Accessibility_Registry.idl +++ b/idl/Accessibility_Registry.idl @@ -1,8 +1,33 @@ -#include +/* + * AT-SPI - Assistive Technology Service Provider Interface + * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) + * + * Copyright 2001 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include #include #include #include +#ifndef _ACCESSIBILITY_REGISTRY_IDL_ +#define _ACCESSIBILITY_REGISTRY_IDL_ + module Accessibility { typedef sequence DesktopSeq; @@ -14,19 +39,17 @@ module Accessibility { /** * registerApplication: * @application: a reference to the requesting @Application - * return values: void * * Register a new application with the accessibility broker. * **/ - void registerApplication (in Application application); + oneway void registerApplication (in Application application); /** * deregisterApplication: * @application: a reference to the @Application * to be deregistered. - * return values: void - * + * * De-register an application previously registered with the broker. * **/ @@ -37,7 +60,6 @@ module Accessibility { * @listener: a reference to the requesting @EventListener. * @eventName: a string which indicates the type of events about * which the client desires notification. - * return values: void * * Register a client's interest in (all) application events of * a certain type. @@ -50,14 +72,25 @@ module Accessibility { * deregisterGlobalEventListener: * @listener: the requesting @EventListener * @eventName: a string indicating the type of events - * return values: void * * Request that a previously registered client stop receiving * global notifications for events of a certain type. * **/ - void deregisterGlobalEventListener (in EventListener listener); + void deregisterGlobalEventListenerAll (in EventListener listener); + /** + * deregisterGlobalEventListener: + * @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. + * + **/ + + void deregisterGlobalEventListener (in EventListener listener, + in string event_name); /** * event types: "Window" "Desktop" * "Window:Create" "Window:Destroy" @@ -77,38 +110,37 @@ module Accessibility { /** * getDesktopCount: - * return values: a short integer indicating the current number of - * @Desktops. * * Get the current number of desktops. - * + * Returns: a short integer indicating the current number of + * @Desktops. **/ short getDesktopCount (); /** * getDesktop: * @n: the index of the requested @Desktop. - * return values: a reference to the requested @Desktop. * * Get the nth accessible desktop. * + * Returns: a reference to the requested @Desktop. **/ Desktop getDesktop (in short n); /** * getDesktopList: - * return values: a sequence containing references to - * the @Desktops. * * Get a list of accessible desktops. * + * Returns: a sequence containing references to + * the @Desktops. **/ DesktopSeq getDesktopList (); /** * getDeviceEventController: - * return values: an object implementing DeviceEventController * + * Returns: an object implementing DeviceEventController **/ DeviceEventController getDeviceEventController (); @@ -119,49 +151,126 @@ module Accessibility { KEY_RELEASED }; + enum EventType { + KEY_PRESSED_EVENT, + KEY_RELEASED_EVENT + }; + + enum KeySynthType { + KEY_PRESS, + KEY_RELEASE, + KEY_PRESSRELEASE, + KEY_SYM + }; + enum ModifierType { + MODIFIER_SHIFT, MODIFIER_ALT, - MODIFIER_META, MODIFIER_CONTROL, - MODIFIER_SHIFT, + MODIFIER_META, MODIFIER_META2, - MODIFIER_META3 + MODIFIER_META3, + MODIFIER_SHIFTLOCK, + MODIFIER_NUMLOCK }; - typedef sequence ModifierSeq; + struct ControllerEventMask { + unsigned long value; + unsigned short refcount; + }; struct KeyStroke { long keyID; + short keycode; + unsigned long timestamp; KeyEventType type; - ModifierSeq modifiers; + unsigned short modifiers; }; - interface KeystrokeListener { + struct DeviceEvent { + long eventID; + short hw_code; + unsigned long timestamp; + EventType type; + unsigned short modifiers; + }; + + typedef sequence< long > KeySet; + typedef sequence< KeyEventType > KeyEventTypeSeq; + + interface KeystrokeListener : Bonobo::Unknown { boolean keyEvent (in KeyStroke key); }; - interface DeviceEventController { + interface DeviceEventListener : Bonobo::Unknown { + boolean notifyEvent (in DeviceEvent event); + }; + + interface DeviceEventController : Bonobo::Unknown { /** * registerKeystrokeListener: * @listener: a @KeystrokeListener which will intercept key events. + * @keys: a @KeySet indicating which keys to intercept, or KEYSET_ALL_KEYS. + * @mask: a @ControllerEventMask filtering the intercepted key events. + * @type: an @EventType mask that may created by ORing event types together. + * @is_synchronous: a @boolean indicating whether the listener should + * receive the events synchronously, potentially consuming them, + * or just be notified asynchronously of those events that have + * been generated. * Returns: void * * Register to intercept keyboard events, and either pass them on or * consume them. * **/ - void registerKeystrokeListener (in KeystrokeListener listener); + void registerKeystrokeListener (in KeystrokeListener listener, + in KeySet keys, + in ControllerEventMask mask, + in KeyEventTypeSeq type, + in boolean is_synchronous); + /** + * deregisterKeystrokeListener: + * @listener: a @KeystrokeListener which will intercept key events. + * @keys: a @KeySet indicating which keys to intercept, or KEYSET_ALL_KEYS. + * @mask: a @ControllerEventMask filtering the intercepted key events. + * @type: an @EventType mask that may created by ORing event types together. + * @is_synchronous: a @boolean indicating whether the listener should + * receive the events synchronously, potentially consuming them, + * or just be notified asynchronously of those events that have + * been generated. + * Returns: void + * + * De-register a previously registered keyboard eventlistener. + * + **/ + void deregisterKeystrokeListener (in KeystrokeListener listener, + in KeySet keys, + in ControllerEventMask mask, + in KeyEventTypeSeq type, + in boolean is_synchronous); + + boolean notifyListenersSync (in DeviceEvent event); + + oneway void notifyListenersAsync (in DeviceEvent event); + /** * generateKeyEvent: - * @keyEventID: a long integer indicating which keypress is synthesized. + * @keycode: a long integer indicating the keycode of + * the keypress to be synthesized. + * + * Note that this long may be truncated before being + * processed, as keycode length may be platform-dependent + * and keycode ranges are generally much smaller than + * CORBA_long. + * * Returns: void * * Synthesize a keypress event. * **/ - void generateKeyEvent (in long keyEventID); + void generateKeyEvent (in long keycode, in KeySynthType type); /** * generateMouseEvent: @@ -176,3 +285,5 @@ module Accessibility { void generateMouseEvent (in long x, in long y, in string eventName); }; }; + +#endif