X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=idl%2FRegistry.idl;h=2e56cf3420d544e068db9e45a0363b07b2149e56;hb=783e63cad5945ddb6df3ee129d20d5b53c6cce04;hp=3308029f801f31a9448b808edd1bbd470019e8bc;hpb=e5a9e644107d0a366d8f4036fc8d363a4ff82255;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/idl/Registry.idl b/idl/Registry.idl index 3308029..2e56cf3 100644 --- a/idl/Registry.idl +++ b/idl/Registry.idl @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#include +#include #include #include #include @@ -157,6 +157,18 @@ 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, @@ -175,38 +187,98 @@ module Accessibility { struct KeyStroke { long keyID; + short keycode; + unsigned long timestamp; KeyEventType type; 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 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, - in ControllerEventMask mask); + 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 DeviceEventListener listener, + in DeviceEvent event); + + oneway void notifyListenersAsync (in DeviceEventListener listener, + 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: