00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <Bonobo_Unknown.idl>
00024 #include <Accessibility_Event.idl>
00025 #include <Accessibility_Application.idl>
00026 #include <Accessibility_Desktop.idl>
00027
00028 #ifndef _ACCESSIBILITY_REGISTRY_IDL_
00029 #define _ACCESSIBILITY_REGISTRY_IDL_
00030
00031 module Accessibility {
00032
00033 typedef sequence<Desktop> DesktopSeq;
00034
00035 interface DeviceEventController;
00036
00037 interface Registry : EventListener {
00038
00046 oneway void registerApplication (in Application application);
00047
00056 void deregisterApplication (in Application application);
00057
00068 void registerGlobalEventListener (in EventListener listener,
00069 in string eventName);
00070
00081 void deregisterGlobalEventListenerAll (in EventListener listener);
00092 void deregisterGlobalEventListener (in EventListener listener,
00093 in string event_name);
00118 short getDesktopCount ();
00119
00128 Desktop getDesktop (in short n);
00129
00138 DesktopSeq getDesktopList ();
00139
00145 DeviceEventController getDeviceEventController ();
00146
00152 void unImplemented ();
00153 void unImplemented2 ();
00154 void unImplemented3 ();
00155 void unImplemented4 ();
00156 void unImplemented5 ();
00157 void unImplemented6 ();
00158 };
00159
00160
00161 enum KeyEventType {
00162 KEY_PRESSED,
00163 KEY_RELEASED
00164 };
00165
00166 enum EventType {
00167 KEY_PRESSED_EVENT,
00168 KEY_RELEASED_EVENT,
00169 BUTTON_PRESSED_EVENT,
00170 BUTTON_RELEASED_EVENT
00171 };
00172
00173 enum KeySynthType {
00174 KEY_PRESS,
00175 KEY_RELEASE,
00176 KEY_PRESSRELEASE,
00177 KEY_SYM,
00178 KEY_STRING
00179 };
00180
00181 enum ModifierType {
00182 MODIFIER_SHIFT,
00183 MODIFIER_SHIFTLOCK,
00184 MODIFIER_CONTROL,
00185 MODIFIER_ALT,
00186 MODIFIER_META,
00187 MODIFIER_META2,
00188 MODIFIER_META3,
00189 MODIFIER_NUMLOCK
00190 };
00191
00192 struct EventListenerMode {
00193 boolean synchronous;
00194 boolean preemptive;
00195 boolean global;
00196 };
00197
00198 typedef unsigned long ControllerEventMask;
00199
00200 struct DeviceEvent {
00201 EventType type;
00202 long id;
00203 short hw_code;
00204 unsigned short modifiers;
00205 unsigned long timestamp;
00206 string event_string;
00207 boolean is_text;
00208 };
00209
00210 struct KeyDefinition {
00211 long keycode;
00212 long keysym;
00213 string keystring;
00214 long unused;
00215 };
00216
00217 typedef sequence< KeyDefinition > KeySet;
00218 typedef sequence< EventType > KeyEventTypeSeq;
00219 typedef sequence< EventType > EventTypeSeq;
00220
00221 interface DeviceEventListener : Bonobo::Unknown {
00222 boolean notifyEvent (in DeviceEvent event);
00223 void unImplemented__ ();
00224 void unImplemented_2_ ();
00225 void unImplemented_3_ ();
00226 void unImplemented_4_ ();
00227 void unImplemented_5_ ();
00228 void unImplemented_6_ ();
00229 };
00230
00231 interface DeviceEventController : Bonobo::Unknown {
00232
00249 boolean registerKeystrokeListener (in DeviceEventListener listener,
00250 in KeySet keys,
00251 in ControllerEventMask mask,
00252 in KeyEventTypeSeq type,
00253 in EventListenerMode mode);
00254
00267 void deregisterKeystrokeListener (in DeviceEventListener listener,
00268 in KeySet keys,
00269 in ControllerEventMask mask,
00270 in KeyEventTypeSeq type);
00271
00283 boolean registerDeviceEventListener (in DeviceEventListener listener,
00284 in EventTypeSeq typeseq);
00285
00297 void deregisterDeviceEventListener (in DeviceEventListener listener,
00298 in EventTypeSeq typeseq);
00299
00300 boolean notifyListenersSync (in DeviceEvent event);
00301
00302 oneway void notifyListenersAsync (in DeviceEvent event);
00303
00328 void generateKeyboardEvent (in long keycode,
00329 in string keystring,
00330 in KeySynthType type);
00331
00342 void generateMouseEvent (in long x, in long y, in string eventName);
00343
00349 void unImplemented ();
00350 void unImplemented2 ();
00351 void unImplemented3 ();
00352 void unImplemented4 ();
00353 };
00354 };
00355
00356 #endif