* atk-bridge/bridge.c:
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_Registry.idl
index 5f42d87..3d9d212 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
-#include <Bonobo.idl>
-#include <Event.idl>
-#include <Application.idl>
-#include <Desktop.idl>
+#include <Bonobo_Unknown.idl>
+#include <Accessibility_Event.idl>
+#include <Accessibility_Application.idl>
+#include <Accessibility_Desktop.idl>
 
 #ifndef _ACCESSIBILITY_REGISTRY_IDL_
 #define _ACCESSIBILITY_REGISTRY_IDL_
@@ -39,7 +39,6 @@ module Accessibility {
        /**
          * registerApplication:
          * @application: a reference to the requesting @Application
-        * return values: void
          *
          * Register a new application with the accessibility broker.
          *
@@ -50,8 +49,7 @@ module Accessibility {
          * deregisterApplication:
          * @application: a reference to the @Application 
          * to be deregistered.
-        * return values: void
-         *
+        *
          * De-register an application previously registered with the broker.
          *
         **/
@@ -62,20 +60,18 @@ 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.
          *
         **/
         void registerGlobalEventListener (in EventListener listener,
-                                           in string eventName);
+                                         in string eventName);
 
        /**
          * 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.
@@ -87,7 +83,6 @@ 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.
@@ -115,41 +110,47 @@ 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 ();
 
+       /**
+        * unImplemented:
+        *
+        * placeholders for future expansion.
+        */
+       void unImplemented ();
+       void unImplemented2 ();
     };
 
   enum KeyEventType {
@@ -157,6 +158,19 @@ module Accessibility {
     KEY_RELEASED
   };
 
+  enum EventType {
+    KEY_PRESSED_EVENT,
+    KEY_RELEASED_EVENT
+  };
+
+  enum KeySynthType {
+    KEY_PRESS,
+    KEY_RELEASE,
+    KEY_PRESSRELEASE,
+    KEY_SYM,
+    KEY_STRING
+  };
+
   enum ModifierType {
     MODIFIER_SHIFT,
     MODIFIER_ALT,
@@ -168,29 +182,36 @@ module Accessibility {
     MODIFIER_NUMLOCK
   };
 
-  struct ControllerEventMask {
-    unsigned long value;
-    unsigned short refcount;
+  struct EventListenerMode {
+    boolean synchronous;
+    boolean preemptive;
+    boolean global;      
   };
 
-  struct KeyStroke {
-    long keyID;
-    KeyEventType type; 
+  typedef unsigned long ControllerEventMask;
+
+  struct DeviceEvent {
+    EventType type; 
+    long  id;
+    short hw_code;
     unsigned short modifiers;
+    unsigned long timestamp;
+    string event_string;
+    boolean is_text;
   };
 
   typedef sequence< long > KeySet;
   typedef sequence< KeyEventType > KeyEventTypeSeq;
 
-  interface KeystrokeListener {
-        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.
+         * @listener: a @DeviceEventListener 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.
@@ -204,21 +225,60 @@ module Accessibility {
          * consume them. 
          *
         **/
-        void registerKeystrokeListener (in KeystrokeListener listener,
+        void registerKeystrokeListener (in DeviceEventListener listener,
                                        in KeySet keys,
                                        in ControllerEventMask mask,
                                        in KeyEventTypeSeq type,
-                                       in boolean is_synchronous);
+                                       in EventListenerMode mode);
     
+       /**
+         * deregisterKeystrokeListener:
+         * @listener: a @DeviceEventListener 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.
+        *
+        * Returns: void
+         *
+         * De-register a previously registered keyboard eventlistener.
+         *
+        **/
+        void deregisterKeystrokeListener (in DeviceEventListener listener,
+                                         in KeySet keys,
+                                         in ControllerEventMask mask,
+                                         in KeyEventTypeSeq type);
+    
+        boolean notifyListenersSync (in DeviceEvent event);
+
+        oneway void notifyListenersAsync (in DeviceEvent event);
+
         /**
-         * generateKeyEvent:
-         * @keyEventID: a long integer indicating which keypress is synthesized.
+         * generateKeyboardEvent:
+         * @keycode: a long integer indicating the keycode of
+        *          the keypress to be synthesized.
+        * @keystring: an optional UTF-8 string indicating a complex
+        *          keyboard input event.
+        * @type: a #KeySynthType indicating the type of event(s) to be 
+        *          synthesized: a key press, release, press-release pair,
+        *          or a complex input string (for instance from an
+        *          internationalized or complex text input method, or
+        *          a composed character).
+        *
+        * Note that @keycode may be truncated before being
+        *          processed, as keycode length may be platform-dependent
+        *          and keycode ranges are generally much smaller than
+        *          CORBA_long. 
+        * One or the other of @keycode or @keystring are generally NULL, 
+        *          (but not both), depending on the value of @type.
+        *
          * Returns: void
          *
-         * Synthesize a keypress event.
+         * Synthesize a keyboard event.
          *
          **/
-         void generateKeyEvent (in long keyEventID);
+         void generateKeyboardEvent (in long keycode, 
+                                    in string keystring, 
+                                    in KeySynthType type);
 
         /**
          * generateMouseEvent:
@@ -231,6 +291,14 @@ module Accessibility {
          *
          **/
          void generateMouseEvent (in long x, in long y, in string eventName);
+
+        /**
+         * unImplemented:
+         *
+         * placeholders for future expansion.
+         */
+        void unImplemented ();
+        void unImplemented2 ();
     }; 
 };