X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=idl%2FRegistry.idl;h=5908106f10277ec7251ac4f7c8677755151f6cc5;hb=e30f7b7a51a42a19765deedc3de17f489fca1d48;hp=e6b54d8ba4716a914b2adafa60ca599f288ad693;hpb=70f816ea49e78da7abc0d13ea1b25e41b5a4077a;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/idl/Registry.idl b/idl/Registry.idl index e6b54d8..5908106 100644 --- a/idl/Registry.idl +++ b/idl/Registry.idl @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#include +#include #include #include #include @@ -157,49 +157,104 @@ module Accessibility { KEY_RELEASED }; + 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; KeyEventType type; - ModifierSeq modifiers; + unsigned short modifiers; }; - interface KeystrokeListener { + typedef sequence< long > KeySet; + typedef sequence< KeyEventType > KeyEventTypeSeq; + + interface KeystrokeListener : Bonobo::Unknown { boolean keyEvent (in KeyStroke key); }; - interface DeviceEventController { + 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); /** * 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: