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,
struct KeyStroke {
long keyID;
short keycode;
+ unsigned long timestamp;
KeyEventType type;
unsigned short modifiers;
};
+ struct DeviceEvent {
+ long eventID;
+ short hw_code;
+ unsigned long timestamp;
+ EventType type;
+ unsigned short modifiers;
+ };
+
typedef sequence< long > KeySet;
typedef sequence< KeyEventType > KeyEventTypeSeq;
boolean keyEvent (in KeyStroke key);
};
+ interface DeviceEventListener : Bonobo::Unknown {
+ boolean notifyEvent (in DeviceEvent event);
+ };
+
interface DeviceEventController : Bonobo::Unknown {
/**
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: