*
* object:property-change
* object:property-change:accessible-name
- * object:property-change:accessible-state
* object:property-change:accessible-description
* object:property-change:accessible-parent
* object:property-change:accessible-value
*
* (other object events)
*
+ * object:state-changed
* object:children-changed
* object:visible-data-changed
* object:selection-changed
* window:reparent
* window:desktop-create
* window:desktop-destroy
- * window:focus-in
- * window:focus-out
+ * window:activate
+ * window:deactivate
* window:raise
* window:lower
* window:move
* window:unshade
* window:restyle
*
+ * (other events)
+ *
+ * focus:
+ * mouse:abs
+ * mouse:rel
+ * mouse:b1p
+ * mouse:b1r
+ * mouse:b2p
+ * mouse:b2r
+ * mouse:b3p
+ * mouse:b3r
+ *
* NOTE: this string may be UTF-8, but should not contain byte value 56
* (ascii ':'), except as a delimiter, since non-UTF-8 string
* delimiting functions are used internally.
SPI_registerGlobalEventListener (AccessibleEventListener *listener,
const char *eventType)
{
- SPIBoolean retval;
-
if (!listener)
{
return FALSE;
cspi_event_listener_get_corba (listener),
eventType, cspi_ev ());
- retval = !cspi_exception ();
-
- return retval;
+ return !cspi_exception ();
}
/**
Accessibility_Registry_deregisterGlobalEventListener (
cspi_registry (),
cspi_event_listener_get_corba (listener),
- (CORBA_char *) eventType, cspi_ev ());
+ eventType, cspi_ev ());
return !cspi_exception ();
}
{
return cspi_object_add (
Accessibility_Registry_getDesktop (
- cspi_registry (), (CORBA_short) i, cspi_ev ()));
+ cspi_registry (), i, cspi_ev ()));
}
/**
desktops = Accessibility_Registry_getDesktopList (cspi_registry (),
cspi_ev ());
- cspi_return_val_if_ev ("getting desktop list", 0);
+ cspi_return_val_if_ev ("getDesktopList", 0);
list = g_new0 (Accessible *, desktops->_length + 1);
}
/**
+ * SPI_KEYSET_ALL_KEYS:
+ * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
+ * includes all keycodes and keyvals for the specified modifier set.
+ **/
+
+/**
* SPI_registerAccessibleKeystrokeListener:
* @listener: a pointer to the #AccessibleKeystrokeListener for which
* keystroke events are requested.
* Returns: #TRUE if successful, otherwise #FALSE.
**/
SPIBoolean
-SPI_registerAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener,
- AccessibleKeySet *keys,
- AccessibleKeyMaskType modmask,
- AccessibleKeyEventMask eventmask,
+SPI_registerAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener,
+ AccessibleKeySet *keys,
+ AccessibleKeyMaskType modmask,
+ AccessibleKeyEventMask eventmask,
AccessibleKeyListenerSyncType sync_type)
{
gint i, mask;
Accessibility_ControllerEventMask controller_event_mask;
Accessibility_DeviceEventController device_event_controller;
Accessibility_EventListenerMode listener_mode;
+ SPIBoolean retval = FALSE;
if (!listener)
{
- return FALSE;
+ return retval;
}
device_event_controller =
key_set._buffer = Accessibility_KeySet_allocbuf (keys->len);
for (i = 0; i < key_set._length; ++i)
{
- /* we overload the keyset long w/keycodes, the - bit acts as a flag */
- key_set._buffer[i] = (keys->keysyms[i]) ? keys->keysyms[i] :
- - keys->keycodes[i];
- /* fprintf (stderr, "key-set %d = %d\n", i, (int) key_set->_buffer[i]); */
+ key_set._buffer[i].keycode = keys->keycodes[i];
+ key_set._buffer[i].keysym = keys->keysyms[i];
+ if (keys->keystrings && keys->keystrings[i])
+ {
+ key_set._buffer[i].keystring = keys->keystrings[i];
+ }
+ else
+ {
+ key_set._buffer[i].keystring = CORBA_string_dup("");
+ }
}
}
else
listener_mode.global =
(CORBA_boolean) ((sync_type & SPI_KEYLISTENER_ALL_WINDOWS)!=0);
- Accessibility_DeviceEventController_registerKeystrokeListener (
+ retval = Accessibility_DeviceEventController_registerKeystrokeListener (
device_event_controller,
cspi_event_listener_get_corba (listener),
&key_set,
cspi_release_unref (device_event_controller);
- return TRUE;
+ return retval;
}
/**
**/
SPIBoolean
SPI_deregisterAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener,
- AccessibleKeyMaskType modmask)
+ AccessibleKeyMaskType modmask)
{
Accessibility_ControllerEventMask controller_event_mask;
Accessibility_KeySet key_set;
* @x: a #long indicating the screen x coordinate of the mouse event.
* @y: a #long indicating the screen y coordinate of the mouse event.
* @name: a string indicating which mouse event to be synthesized
- * (e.g. "button1", "button2", "mousemove").
+ * (e.g. "b1p", "b1c", "b2r", "rel", "abs").
*
* Synthesize a mouse event at a specific screen coordinate.
* Most AT clients should use the #AccessibleAction interface when
* tempted to generate mouse events, rather than this method.
- * Not Yet Implemented.
+ * Event names: b1p = button 1 press; b2r = button 2 release;
+ * b3c = button 3 click; b2d = button 2 double-click;
+ * abs = absolute motion; rel = relative motion.
*
* Returns: #TRUE if successful, otherwise #FALSE.
**/
SPIBoolean
SPI_generateMouseEvent (long x, long y, char *name)
{
- return FALSE;
+ Accessibility_DeviceEventController device_event_controller =
+ Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
+
+ cspi_return_val_if_ev ("getting event controller for mouse event gen", FALSE);
+
+ Accessibility_DeviceEventController_generateMouseEvent (device_event_controller,
+ x, y, name, cspi_ev ());
+ cspi_return_val_if_ev ("generating mouse event", FALSE);
+
+ cspi_release_unref (device_event_controller);
+
+ return TRUE;
}