Incremented revision.
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
1 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2
3         * configure.in: 0.8
4         Incremented revision (but no change in public API
5         outside of 'utils', which are not installed public yet.)
6         
7         Magnification Utility Enhancements:
8         
9         * util/magnifier.c:
10         Added implementation of createZoomRegion, clearAllZoomRegions,
11         resizeZoomRegion.  Added new commandline argument
12         "--no-initial-region".  Note that clearAllZoomRegions doesn't
13         unmap the old '0' region as it should (yet), and the other
14         methods only work when creating/resizing a single region,
15         which is "region 0".  
16         (Code for multiple region support will be added later.)
17
18         * util/mag_image.c:
19         Now we raise the magnifier window each time it's refreshed;
20         this will help keep it on top.
21         
22         * util/mag_client.h:
23         Added simple wrappers for above, used by mag_control.
24         For general use, it's recommended to use the bonobo magnifier
25         control API directly instead of using these wrappers.
26
27         * util/mag_image.h:
28         Moved ZoomRegionData from magnifier.c to this file.
29         
30         * util/mag_control.c: 
31         Added some code to exercise new IDL implementations.
32         
33 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
34
35         * libspi/text.c: Provide implementation for getAttributes.
36
37 2002-02-04  Bill Haneman <bill.haneman@sun.com>
38         
39         * configure.in:
40         Incremented revision.
41
42         * test/test-simple.c:
43         Replaced use of deprecated g_main_iteration with 
44         g_main_context_iteration.
45         
46 2002-01-28  Padraig O'Briain <padraig.obriain@sun.com>
47
48         * configure.in:
49         Incremented revision for desktop alpha 2.
50
51 2002-01-28  Mark McLoughlin  <mark@skynet.ie>
52
53         * libspi/remoteobject.[ch]: make RemoteObject and interface rather
54         than an atk object.
55
56         * test/simple-at.c: include netinet/in.h.
57
58 2002-01-24  Mark McLoughlin  <mark@skynet.ie>
59
60         * cspi/spi_accessible.c: (Accessible_getRelationSet):
61         use NULL, not CORBA_OBJECT_NIL.
62
63         * libspi/accessible.c:
64         (impl_accessibility_accessible_get_relation_set):
65         allocate the sequence correctly.
66
67         * libspi/remoteobject.h: kill spi_remote_object_new.
68
69         * test/test-simple.c: (validate_accessible): add code
70         to test relation sets, now all we need is to figure
71         out how to excercise this code path :/
72
73 2002-01-18  Michael Meeks  <michael@ximian.com>
74
75         * test/test-simple.c
76         (key_listener_cb): consume the key.
77         (test_keylisteners): update.
78         (main): wait for any pending unrefs on events.
79
80         * registryd/deviceeventcontroller.c
81         (spi_controller_update_key_grabs): only re-issue the
82         grab on a key release.
83         (spi_device_event_controller_forward_key_event):
84         refresh the keygrabs before we notify the listeners,
85         to reduce the X ungrab / re-grab race.
86         (spi_controller_register_with_devices): remove
87         XSelectInput - we do that with the gdk_window_ call.
88         (_spi_controller_device_error_handler): return a value.
89         s/GDK_DISPLAY/spi_get_display/
90
91 2002-01-17  Michael Meeks  <michael@ximian.com>
92
93         * registryd/deviceeventcontroller.c
94         (_deregister_keygrab): don't blow out the later
95         assertion.
96
97         * test/test-simple.c (test_keylisteners): do a
98         more intelligent validation.
99
100 2002-01-14  Michael Meeks  <michael@ximian.com>
101
102         * atk-bridge/bridge.c
103         (gnome_accessibility_module_init),
104         (gnome_accessibility_module_shutdown): impl.
105         (gtk_module_init): protect vs. double inits.
106         (add_signal_listener): impl.
107         (spi_atk_bridge_state_event_listener): kill
108         (deregister_application): split out of
109         (spi_atk_bridge_exit_func): here.
110
111 2002-01-18  Bill Haneman <bill.haneman@sun.com>
112
113         * test/simple-at.c:
114         Added caret tracking when using magnifier, and 
115         now use text bounds for focus tracking of text elements, rather than
116         the component bounds - this is helpful for short text fields in long
117         table cells, at high magnification.
118         
119 2002-01-16  Bill Haneman <bill.haneman@sun.com>
120
121         * registryd/deviceeventcontroller.c:
122         Regression fix for keylistener de-registration; global keygrabs
123         were not being released when deregisterKeystrokeListener was
124         called in cspi, since 
125         Accessibility_DeviceEventController_deregisterKeystrokeListener
126         was called with a zero-length keyset.  That is because the cspi
127         method, SPI_deregisterKeystrokeListener, does not take a keyset
128         parameter but instead should remove all the key grabs held be a
129         keystroke listener.  
130         The code in impl_deregister_keystroke_listener was changed to copy
131         the keylist from the listener instance previously registered with
132         the DeviceEventController before releasing the grabs.
133
134         * registryd/registry.c:
135         * registryd/deviceeventcontroller.c:
136         * libspi/spi-private.h:
137         * libspi/util.c:
138         Changed spelling of "re-enterant" to "re-entrant" globally.
139
140 2002-01-16  Bill Haneman <bill.haneman@sun.com>
141
142         * test/test-simple.c:
143         Changed key listeners test - the test was slightly mis-using the
144         (admittedly poorly documented) SPI_generateKeyboardEvent API.
145         It now uses '=' as the key event listened to and generated,
146         relying on a keysym match rather than assuming that keycode 33 
147         is always equal to keysym '!'.
148
149 2002-01-15  Bill Haneman <bill.haneman@sun.com>
150
151         * test/simple-at.c:
152         Changed simple-at to use a specific keyset, rather than
153         SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
154         manager, desktop, etc.
155         
156 2002-01-11  Bill Haneman <bill.haneman@sun.com>
157
158         * registryd/deviceeventcontroller.c:
159         Replaced standard X error handler with a special handler that 
160         is non-fatal for failed keygrabs.  This works around 
161         problems with keygrab clashes sometimes observed on 
162         Solaris using CDE.
163         Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate 
164         mouse handling code as yet).
165         
166 2002-01-11  Bill Haneman <bill.haneman@sun.com>
167
168         * configure.in:
169         Incremented revision for desktop alpha release.
170
171         * README:
172         Fixed a couple of the more glaring errors (still not 
173         very up-to-date).
174
175 2002-01-11  Michael Meeks  <michael@ximian.com>
176
177         * registryd/deviceeventcontroller.c
178         (spi_device_event_controller_forward_key_event): kill
179         XUngrabKey / XKeyGrab race.
180         (spi_controller_grab_keyboard): rename to
181         (spi_controller_update_key_grabs): this, and deal
182         with incremental adding / removing grabs more
183         sensibly.
184         (_register_keygrab): ensure we're not pending a remove.
185         (spi_grab_mask_free): impl.
186         (spi_controller_register_global_keygrabs): split out
187         common code into:
188         (handle_keygrab): impl.
189         (_deregister_keygrab): impl.
190         (spi_controller_deregister_global_keygrabs): impl.
191         (spi_controller_update_key_grabs): re-issue the grab if
192         we just recieved a notification.
193
194         * test/test-simple.c (key_listener_cb): remove debug.
195
196         * registryd/deviceeventcontroller.c
197         (spi_controller_register_device_listener): after
198         registering a global keygrab, actualy register it !
199         don't wait for a timeout; doh !
200
201         * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
202         to make it more readable / manipulable.
203         s/grabmask/grab_mask/ s/refcount/ref_count/
204         s/keyval/key_val/ s/modmask/mod_mask
205
206 2002-01-08  Michael Meeks  <michael@ximian.com>
207
208         * registryd/deviceeventcontroller.c
209         (spi_controller_register_with_devices): use gdk calls to
210         setup a filter.
211         (global_filter_fn): implement the filter.
212         (spi_device_event_controller_check_key_event): rename to
213         (spi_device_event_controller_forward_key_event): this & upd.
214         (spi_get_display): replace with GDK_DISPLAY.
215
216         * registryd/deviceeventcontroller.c
217         (spi_controller_deregister_device_listener): unroll into
218         (impl_deregister_keystroke_listener): here to simplify.
219         (spi_controller_register_global_keygrabs): split cut and
220         paste (!) out into (_register_keygrab): here, shorter & sweeter.
221         (spi_controller_deregister_device_listener): remove.
222         (impl_register_mouse_listener): remove, no mouse listener
223         support in at-spi-1.0
224
225         * registryd/registry.c
226         (_device_event_controller_hook): kill.
227         (spi_registry_init): upd.
228
229         * registryd/deviceeventcontroller.c
230         (spi_device_event_controller_class_init): upd.
231         (spi_check_key_event): merge into.
232         (spi_device_event_controller_check_key_event):
233         here and kill strange static ev init, don't leak
234         the x_event - nor dynamicaly allocate it.
235
236         * registryd/registry-main.c (main): re-direct
237         timeout to remove strange vtable mess.
238
239         * registryd/deviceeventcontroller.c
240         (remove_listener_cb): impl.
241         (spi_controller_deregister_device_listener):
242         fix re-enterancy hazard.
243
244 2002-01-07  Michael Meeks  <michael@ximian.com>
245
246         * registryd/deviceeventcontroller.c
247         (spi_device_event_controller_new): upd.
248         (impl_notify_listeners_sync): upd. debug.
249         (spi_notify_keylisteners): fix re-enterancy hazards,
250         prettify, remove O(n*n) iteration.
251         (spi_controller_grab_keyboard): fix iteration.
252         (spi_check_key_event): re-format to suit coding style.
253         Clean all the warnings - we're warning free.
254
255         * registryd/deviceeventcontroller.h:
256         * registryd/registry.h: make mutualy referential with
257         typesafe forward references instead of (!) void pointer
258         hacks.
259
260 2002-01-11  Michael Meeks  <michael@ximian.com>
261
262         * cspi/spi_accessible.c (role_names): add a role name
263         to sync this array with the enum; and make the regression
264         tests pass, sigh.
265
266 2002-01-10  Michael Meeks  <michael@ximian.com>
267
268         * cspi/spi_registry.c (SPI_generateKeyboardEvent): 
269         allow expansion of enumeration & kill warning.
270
271         * test/test-simple.c (key_listener_cb): impl.
272         (test_keylisteners): impl.
273
274         * cspi/spi-listener.h: make listener signatures const
275         on the provided (const) events.
276
277         * test/keysynth-demo.c: upd. to const events.
278
279         * test/simple-at.c: ditto.
280
281 2002-01-11  Bill Haneman <bill.haneman@sun.com>
282
283         * configure.in:
284         Rev the version to 0.5 (the previous tarball was named 0.4, 
285         even though the micro number was 3), so we need to rev upwards
286         again for beta2/"desktop-alpha" 
287  
288         * test/demo.csh:
289         Checked in a demo script, which requires editing before use!
290         Proceed with caution.
291         
292         * libspi/value.h:
293         Fixed typo in header which was redefining SPI_ACTION_CLASS.
294
295         * cspi/spi_accessible.c:
296         Add a couple of missing enum initializations, and fix some enum
297         comments.
298
299         * cspi/spi_registry.c:
300         Add comment describing keystring parameter to SPI_generateKeyboardEvent.
301         
302         * docs/reference/cspi/at-spi-cspi-sections.txt:
303         Remove/fix a couple of broken document references.
304
305         * test/simple-at.c:
306         Minor tweaks to the demo.  We now (sigh) use Alt-SHIFTLOCK as well
307         as Alt-Control to listen for commands, since on some systems
308         Control-Alt may already be grabbed.
309
310 2002-01-10  Bill Haneman <bill.haneman@sun.com>
311
312         * configure.in:
313         Update version number to 0.4 for Beta2.
314         
315         * libspi/accessible.c, libspi/accessible.h:
316         Expose spi_accessible_construct, to enable libgail-gnome
317         construction from spi_accessible subtype.
318
319         * utils/magnifier.c:
320         Workaround for bug in some non-gnome-compliant window managers
321         which made magnifier resize improperly.
322
323 2002-01-09  Bill Haneman <bill.haneman@sun.com>
324
325         * libspi/accessible.c: (spi_accessible_new) :
326         Move the test for SPI_IS_REMOTE_OBJECT to
327         spi_accessible_new_return, fixing a bug and compile time warning.
328         
329 2002-01-08  Michael Meeks  <michael@ximian.com>
330
331         * registryd/registry.c (parse_event_type): remove strndup.
332
333         * libspi/Makefile.am (libspi_la_SOURCES): remove
334         sources already included in the headers section.
335
336         * libspi/util.c: add.
337
338         * libspi/spi-private.h: add.
339
340         * registryd/registry.c: update to moved list iterators.
341
342 2002-01-05  Michael Meeks  <michael@ximian.com>
343
344         * test/simple-at.c (main): upd. auto-module set to atk-bridge
345
346         * test/test-simple.c (main): ditto.
347
348 2002-01-04  Michael Meeks  <michael@ximian.com>
349
350         * libspi/accessible.c (spi_accessible_new): remove 2nd,
351         redundant construct.
352
353         * registryd/registry.c
354         (get_listener_list): impl.
355         (impl_accessibility_registry_register_global_event_listener):
356         re-impl. to simplify using ~, remove dodgy const cast off.
357         (parse_event_type): constify.
358         (impl_accessibility_registry_deregister_global_event_listener_all): 
359         re-write, more efficiency and simplicity, kill re-enterancy
360         hazard.
361         (compare_listener_corbaref, compare_corba_objects),
362         (compare_listener_quarks): define out.
363         (impl_accessibility_registry_deregister_global_event_listener): 
364         re-write for effiency, and nail re-enterancy hazard.
365         (impl_accessibility_registry_get_desktop_list): impl.
366         (re_enterant_list_delete_link): impl.
367         (re_enterant_list_foreach): impl.
368         (remove_listener_cb): impl.
369         (_registry_notify_listeners): kill.
370         (notify_listeners_cb): impl.
371
372         * cspi/spi_registry.c (SPI_freeDesktopList): impl.
373         (SPI_getDesktopList): impl.
374
375         * test/test-simple.c (test_desktop): test the methods.
376
377 2002-01-03  Michael Meeks  <michael@ximian.com>
378
379         * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
380         keystrings since we free them
381         (SPI_freeAccessibleKeySet): in here.
382
383         * libspi/accessible.c (spi_accessible_new): kill warning,
384         wonder what is going on with the constructor here.
385
386 2002-03-01  Bill Haneman <bill.haneman@sun.com>
387
388         * libspi/accessible.c (spi_accessible_new ()) :
389         Added check to see if AtkObject is an SpiRemoteObject before
390         creating an SpiAccessible.
391         
392 2002-05-01  Bill Haneman <bill.haneman@sun.com>
393
394         * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
395         Enable keygrabs using the Control modifier, now that they are
396         working properly (they were previously disabled).
397
398         * test/simple-at.c:
399         Change the command keygrab for this demo to "Control+Alt", so as
400         to conflict with fewer other key commands on the system; this
401         means that the quit command for "simple-at" is now "Ctrl-Alt-q".
402
403         Removed a pointlessly-chatty keylistener for unshifted keys
404         (shifted keys are still reported).
405         
406 2002-02-01  Bill Haneman <bill.haneman@sun.com>
407
408         * libspi/remoteobject.h:
409         * libspi/remoteobject.c:
410         Added definitions for special AtkObject subtype, required for
411         support of remote components (specifically, used by BonoboControl
412         accessibility implementation).
413         
414 2002-01-02 Marc Mulcahy  <marc.mulcahy@sun.com>
415
416         * cspi/spi.h: synched relation types with ATK
417
418         * cspi/spi_accessible.c: Added implementations of
419         AcccessibleRelation_* methods
420
421         * idl/Accessibility_Relation.idl: added getRelationTypeName
422         method.  Synched known relation types with ATK.  Allowed for
423         relation type extension with the RELATION_EXTENDED type.
424         
425         * libspi/relation.c: Provided implementations for
426         AccessibleRelation methods.
427
428 2002-01-01  Bill Haneman <bill.haneman@sun.com>
429
430         API tweaks for today's API 'freeze'.
431
432         * idl/*:
433         Added placeholder functions to allow future compatible expansion
434         of the IDL interfaces.
435
436         * idl/Accessibility_Registry.idl:
437         Changed generateKeyEvent to generateKeyboardEvent.  Changed
438         signature of this method to accept an optional keystring in
439         parameter (for complex text input synthesis) and changed use of
440         simple 'boolean' parameter in registerKeystrokeListener to a
441         struct, EventListenerMode.
442
443         * cspi/spi_accessible.c:
444         * cspi/spi.h:
445         * cspi/spi_streamablecontent.c:
446         Added references to AccessibleStreamableContent interface, and
447         definition and implementation of AccessibleStreamableContent 
448         C bindings.
449
450         * cspi/spi_registry.c:
451         * cspi/spi.h:
452         Changed generateKeyEvent API to generateKeyboardEvent,
453         taking a new (optional) keystring parameter to support complex
454         text input.
455         
456         * at-bridge/*:
457         * atk-bridge/*:
458         Renamed directory (to better reflect its actual purpose, bridging
459         from at-spi to ATK).  The .so module is also now named
460         libatk-bridge.so.
461
462         * idl/Accessibility_Hypertext.idl:
463         * libspi/accessible.c:
464         * libspi/hypertext.h:
465         * libspi/hypertext.c:
466         Changed Accessibility_Hypertext to *not* derive from
467         Accessibility_Text.
468
469         * cspi/spi_registry.c:
470         Added list of legal event type names for 'window' events, which
471         completes the registry event API.
472
473 2001-12-22  Marc Mulcahy  <marc.mulcahy@sun.com>
474
475         * at-bridge/bridge.c: Added registration for separate
476         "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
477         signals.  If either of the first two parameters to the generic
478         bridge signal handler are ints, they are passed on as event
479         details.  This allows an AT to determine what text was inserted.
480
481 2001-12-21  Bill Haneman <bill.haneman@sun.com>
482
483         * registryd/deviceeventcontroller.c:
484         Fixed regressions in generateKeyEvent caused by the removal of
485         gdk_init from registryd; we now use pure X calls to connect to the
486         display, which makes sense because deviceeventcontroller already
487         uses a fair bit of X API (should eventually be migrated to a
488         'portability layer').
489
490         * registryd/desktop.c:
491         Fixed minor regression in spi_desktop_init, changed the way the
492         desktop name is being set to work with new spi_base API
493         (gobject-based, rather than AtkObject-based).
494
495         * registryd/Makefile.am:
496         Minor revision of makefile to use XTST_LIBS variable rather than
497         hard-wiring the Xtst LD_ADD element.
498
499         * test/keysynth-demo.c:
500         Tweaked an output message; added initialization of the
501         'keystrings' member of the "switch listener" key_set.
502
503         * libspi/relation.c:
504         Squashed compile-time warning.
505
506         * libspi/accessible.c:
507         Cosmetic and formatting fixes, renamed a static method.
508         
509 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
510
511         * libspi/accessible.c 
512         * libspi/action.c
513         * libspi/application.c 
514         * libspi/base.c 
515         * libspi/base.h
516         * libspi/component.c 
517         * libspi/editabletext.c
518         * libspi/hyperlink.c 
519         * libspi/hypertext.c
520         * libspi/image.c 
521         * libspi/selection.c 
522         * libspi/table.c
523         * libspi/text.c 
524         * libspi/value.c 
525         * registryd/desktop.c:
526         Changed SpiBase to contain a GObject pointer rather than an AtkObject
527
528 2001-12-17  Bill Haneman <bill.haneman@sun.com>
529
530         * idl/Accessibility_Registry.idl:
531         Added boolean member 'is_text' to DeviceEvent.  This is for the
532         use of key events, and helps prevent ambiguity between composed
533         key strings and keysym names, since both may potentially be
534         returned in the 'event_string' member.
535
536         * at-bridge/bridge.c:
537         * registryd/deviceeventcontroller.c:
538         Use the 'is_text' member when notifying device event listeners.
539         Knon issue: composed characters are not dealt with correctly by
540         the global key listener implementation yet.
541         
542 2001-12-17  Bill Haneman <bill.haneman@sun.com>
543
544         * at-bridge/bridge.c:
545         Namespaced local static methods to spi_atk_bridge_* where
546         previously named bridge_*, and spi_* elsewhere.
547
548         * at-bridge/bridge.c:
549         * cspi/bonobo/cspi-bonobo-listener.c:
550         Added demarshalling/conversion for string member of
551         Accessibility_DeviceEvent to AccessibleKeystroke.
552
553         * registryd/deviceeventcontroller.c:
554         Added code to fill the Accessibility_DeviceEvent key string value
555         member for global key events (i.e. from XGrabKey), to match
556         behavior of Accessibility_DeviceEvent from the toolkit key events
557         from the bridge.  Fixed timestamp in global key event notifications.
558
559         * test/simple-at.c:
560         Added printout of key event's string value to
561         report_ordinary_key_event, for demo/debugging purposes.
562
563 2001-12-15  Bill Haneman <bill.haneman@sun.com>
564
565         * idl/Accessibility_Registry.idl:
566         Removed Accessibility_KeyStroke structure in favor of generic
567         Accessibility_DeviceEvent structure.
568         Changed Accessibility_ControllerEventMask from a struct to an
569         unsigned long.
570
571         * at-bridge/bridge.c:
572         Changed APIs to use DeviceEvent structure as above, and removed
573         bogus casting between these event structures.
574
575         * cspi/spi-listener.h:
576         Added keystring member of AccessibleKeystroke structure, to enable
577         matching on event "names" rather than only hardware codes and
578         keysyms.
579
580         * cspi/spi.h:
581         Added keystrings member of AccessibleKeySet struct, to allow
582         matching on event names (as above).
583         Added declarations for SPI_createAccessibleKeySet and
584         SPI_freeAccessibleKeySet.  Due to changes in libspi, we now pass
585         event modmasks directly as unsigned ints rather than structs with
586         refcounts, in the DeviceEventController methods.
587
588         * cspi/spi_registry.c:
589         Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
590
591         * cspi/spi-roletypes.h:
592         Added documentation of newly added SPI Roles.
593
594         * cspi/bonobo/cspi-bonobo-listener.c:
595         Changes in support of API changes above.
596         
597         * libspi/accessible.c:
598         Converted APIs to use DeviceEvent structure (see IDL changes
599         above). 
600
601         * registryd/deviceeventcontroller.c:
602         Added DEControllerGrabMask structure to track keygrabs not only by
603         modmask but by keyset as well; this allows us to do "global"
604         (i.e. X) keygrabs on a per-key or keyset basis rather than always
605         grabbing on AnyKey and then filtering after-the-fact.
606         Bugfixes for event filtration mean that we don't get false matches
607         on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
608
609         * registryd/deviceeventcontroller.c:
610         Namespaced a number of static methods to use spi_ prefix.  Major
611         revision to internals of global (i.e. X) key grabs.
612
613         * registryd/deviceeventcontroller.h:
614         Removed keymask_list and added keygrabs_list to
615         SpiDeviceEventController struct.
616
617         * test/simple-at.c:
618         Added use of SPI_createAccessibleKeySet API when creating a
619         listener for only one key.  Attach a listener to "shift spacebar
620         SPI_KEY_RELEASE" as a demonstration.  Changed (incorrect) usage of
621         X key event names to SPI key event names, so that listeners are
622         registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
623         
624         * test/keysynth-demo.c:
625         Changed (incorrect) use of X key event names (KeyPressed,
626         KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
627         
628
629 2001-12-12  Bill Haneman <bill.haneman@sun.com>
630
631         * libspi/accessible.c:
632         Convert all AtkRole enumerations to Accessibility_Role enums when
633         getting a role from an AtkObject.
634         
635         * cspi/spi_accessible.c:
636         Complete the conversion of Accessibility_Role enums at runtime to
637         AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
638         role enums correctly match those given in spi-roletypes.h.  
639         Re-synchronize the local names list for AccessibleRole_getName ().
640         AccessibleRole_getName is now deprecated, since it duplicates the
641         more reliable Accessible_getRoleName.
642         Added some role types from Accessibility_Role.idl.
643
644         * idl/Accessibility_Role.idl:
645         Added some role types used by AtkRole.
646
647 2001-12-12  Bill Haneman <bill.haneman@sun.com>
648         
649         * cspi/spi.h:
650         * cspi/spi_registry.c:
651         * cspi/spi_event.c:
652         * cspi/cspi-bonobo-listener.c:
653         Namespaced all methods that did not begin with an "SPI_" or
654         "Accessible" prefix to "SPI_".  
655
656         * cspi/spi_main.c:
657         Homogenized internal function namespace to "cspi_" for statics.
658         
659         * test/*.c:
660         Patched tests to use the new CSPI API.
661
662         * docs/reference/cspi/at-spi-cspi-sections.txt:
663         Updated docs to reflect namespace changes, and added a number of
664         methods to the documentation.
665         
666         * registryd/registry.c:
667         Changed use of strings and string hashes in listener event
668         matching and parse_event_string to use GQuark, which is guaranteed
669         unique.
670         
671         * registryd/registry.h:
672         Squashed annoying warning.
673
674         * idl/Accessibility_Role.idl:
675         Extended range of available Accessibility_Role values.
676
677         * cspi/spi_accessible.c:
678         Re-ordered role names. 
679
680 2001-12-12  Bill Haneman <bill.haneman@sun.com>
681
682         * idl/Accessibility_Value.idl:
683         Revert use of union back to CORBA_double, since the double type is
684         more efficient and can contain the other types without loss of
685         precision.
686
687         * idl/Accessibility_Accessible.idl:
688         Added method Accessibility:Accessible:getRoleName, to complement
689         Accessibility:Accessible:getRole.
690
691         * cspi/spi_accessible.c:
692         * cspi/spi.h:
693         Added C binding for above, Accessible_getRoleName (), and changed
694         signature of Accessible_getRole () to return an AccessibleRole.
695
696         * cspi/spi-roletypes.h:
697         Changed AccessibleRole_getName to return a char * instead of a
698         const char *.  This method is now at least temporarily deprecated 
699         in favor of asking Accessibles for their RoleNames directly.
700
701         * libspi/value.c:
702         Revert to match Accessibility_Value.idl;
703
704         * cspi/spi_value.c:
705         * cspi/spi.h:
706         Change signature of AccessibleValue methods to use double rather
707         than float.
708
709         * cspi/spi.h:
710         * cspi/spi_accessible.c:
711         Changed Accessible_getRole to return an AccessibleRole enum rather
712         than a UTF-8 string.  The UTF-8 string can still be obtained via
713         AccessibleRole_getName ().
714         
715         * test/test-simple.c:
716         Add test_action.  Small fixup to match API change to Accessible_getRole.
717
718         * libspi/action.c:
719         Bugfix for get_action_from_servant ().
720
721 2001-12-11  Michael Meeks  <michael@ximian.com>
722
723         * libspi/libspi.h: remove registry.h and
724         desktop.h, deviceeventcontroller.h
725
726         * libspi/Makefile.am: remove registry.[ch],
727         desktop.[ch], deviceeventcontroller.[ch]
728
729         * registryd/Makefile.am: add registry.[ch],
730         desktop.[ch], rename registryd.c to registry-main.c.
731         add deviceeventcontroller.[ch]
732
733 2001-12-11  Bill Haneman <bill.haneman@sun.com>
734
735         * test/simple-at.c:
736         Replace setenv() call with putenv ().
737
738         * libspi/component.c:
739         Bugfix in AccessibleComponent_getExtents (),
740         (from Adi Dascal).
741         
742 2001-12-11  Michael Meeks  <michael@ximian.com>
743
744         * libspi/image.c (impl_getImageExtents): impl.
745         (spi_image_class_init): upd.
746
747         * cspi/spi_image.c
748         (AccessibleImage_getImageDescription): fix daft bug
749         of mine (doh).
750
751         * test/test-simple.c (global_listener_cb): update
752         to only quit if not --poke
753         (main): catch --poke.
754         (validate_accessible): upd. dumping, call test_image
755         (test_image): impl.
756
757         * libspi/Makefile.am (IDL_DEPS): fixup the IDL
758         dependencies.
759
760         * idl/Accessibility.idl: update all IDL includes.
761
762         * idl/*.idl - rename to namespace - this sucks, blame
763         mjs' bad decision for oafd.
764
765         * test/test-simple.c (create_test_window): add more tests.
766         (create_tree): split this out.
767         (validate_accessible): bugfix.
768
769 2001-12-11  Michael Meeks  <michael@ximian.com>
770
771         * cspi/bonobo/cspi-bonobo-listener.c: 
772         (cspi_kestroke_listener_unref),
773         (cspi_event_listener_unref): impl. undoing previous
774         homenous environment - for Bill.
775
776         * cspi/spi_table.c (long_seq_to_array): use
777         malloc instead.
778
779         * cspi/spi_main.c: split out all bonoboish bits into
780         bonobo/
781
782         * cspi/spi-impl.h: upd. typedefs.
783
784         * cspi/spi_registry.c: update to lowlevel API,
785         return booleans to indicate success in some places.
786
787         * cspi/spi_event.c: update to lowlevel API.
788
789         * cspi/bonobo/Makefile.am: add.
790
791         * cspi/bonobo/cspi-lowlevel.h: add
792
793         * cspi/bonobo/cspi-bonobo.c: add
794
795         * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
796
797         * cspi/Makefile.am: remove spi-listener-impl.[ch],
798         (SUBDIRS): add bonobo, link in the libs.
799
800         * cspi/spi-util.c: kill this file.
801
802         * TODO: merge in my bits.
803
804 2001-12-11  Michael Meeks  <michael@ximian.com>
805
806         * test/test-simple.c (test_value, test_table, main):
807         remove unused variables causing warnings.
808
809         * configure.in: cleanup checks - require gail.
810
811 2001-12-11  Bill Haneman  <bill.haneman@sun.com>
812
813         * idl/Value.idl:
814         Changed Value interface to use SValue (scalars) rather than
815         assuming all values are floats.  This allows floats, doubles,
816         longs, shorts, and unsigned values to be manipulated.
817         Introduced Accessibility:SValue union.
818
819         * libspi/value.c:
820         Updated to use new API above, and to work correctly with GValues
821         of different types in AtkValue.
822
823         * cspi/spi_value.c:
824         Updated to use new API above.  cspi's API is as yet unchanged.
825
826         * TODO: 
827         Updated the Value revision action item.
828         
829 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
830
831         * test/test-simple.c:
832         Added test_table (GtkTreeView widget in test window to follow).
833         Un-commented test_value, added GtkRange widget.
834         Added GtkTreeView widget with GtkListStore.  It passes regression
835         test but leaks one SPI object for some reason.
836
837         * libspi/value.c:
838         Fixed bug in impl__set_currentValue.
839
840 2001-12-10  Michael Meeks  <michael@ximian.com>
841
842         * cspi/spi_text.c: audit for exception handling,
843         tolerating NULL object references safely etc.
844
845         * cspi/spi_value.c: ditto.
846
847         * cspi/spi_table.c (AccessibleTable_getSummary),
848         (AccessibleTable_getAccessibleAt),
849         (AccessibleTable_getRowHeader),
850         (AccessibleTable_getColumnHeader),
851         (AccessibleTable_getCaption): fix bugs hidden by
852         incorrect casts.
853         (long_seq_to_array): impl.
854         (AccessibleTable_getSelectedRows),
855         (AccessibleTable_getSelectedColumns): use it.
856
857 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
858
859         * TODO:
860         Added a TODO list (rough and short for now).
861
862         * cspi/spi_hyperlink.c:
863         * cspi/spi_hypertext.c:
864         Fixed macro name typos, and remove use of obsolete macro in 
865         AccessibleHyperlink_getLink.
866
867         * cspi/spi_action.c:
868         * cspi/spi_accessible.c:
869         * cspi/spi_application.c:
870         * cspi/spi_component.c:
871         * cspi/spi_selection.c:
872         * cspi/spi_text.c:
873         * cspi/spi_value.c:
874         Documentation fixes (removed return values from ref/unref methods).
875
876 2001-12-10  Michael Meeks  <michael@ximian.com>
877
878         * cspi/spi_action.c: audit for exception handling,
879         tolerating NULL object references safely etc.
880
881         * cspi/spi_accessible.c: ditto.
882
883         * cspi/spi_component.c: ditto.
884
885         * cspi/spi_editabletext.c: ditto.
886
887         * cspi/spi_hyperlink.c: ditto.
888
889         * cspi/spi_hypertext.c: ditto.
890
891         * cspi/spi_image.c: ditto.
892
893         * cspi/spi_selection.c: ditto.
894
895 2001-12-10  Michael Meeks  <michael@ximian.com>
896
897         * configure.in: use cspi/libspi.pc.in instead.
898
899         * Makefile.am (pkgconfig_DATA): upd. to match.
900
901         * test/simple-at.c (report_focus_event): kill hacks around
902         bad return values, use putenv not setenv
903
904         * libspi/desktop.c (impl_desktop_get_child_at_index): don't
905         fire ChildGone - I killed it.
906
907         * libspi/component.c
908         (impl_accessibility_component_get_extents): remove
909         bogus return.
910
911         * idl/Accessible.idl: kill ChildGone exception.
912
913         * cspi/*.[ch]: kill int return from ref / unref.
914         
915         * cspi/spi_main.c (cspi_object_add_check): fold into
916         (cspi_object_add): here.
917
918         * cspi/spi_component.c (AccessibleComponent_getExtents):
919         handle exceptions elegantly.
920
921         * cspi/spi-private.h (cspi_check_ev_return),
922         (cspi_return_if_fail): impl.
923
924         * cspi/spi_accessible.c: use extensively.
925         (AccessibleStateSet_equals): add direct compare check.
926
927         * cspi/spi_selection.c: tolerate NULL objs, and check
928         exceptions before return.
929
930         * cspi/spi-util.c (cspi_warn_ev): rename to
931         (cspi_check_ev): this & don't pass ev in; no point.
932
933 2001-12-10  Michael Meeks  <michael@ximian.com>
934
935         * test/test-simple.c: use putenv not setenv
936         (get_environment_vars): more chatty if you're not using
937         the fun bits.
938
939         * test/simple-at.c: do the setenv so more people see the
940         nice demo easily.
941
942 2001-12-10  Bill Haneman <bill.haneman@sun.com>
943
944         * libspi/registry.c:
945         Changed check of CORBA_environment on notification to be a warning
946         instead of an error for the moment, since we can recover from this
947         error when caused by a queued notification from a dead app.
948         
949         * libspi/value.c:
950         Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
951         used by all current implementors of AtkValue), and coerce to
952         CORBA_float. (Proper general case fix may require change to Value.idl).
953
954 2001-12-09  Bill Haneman <bill.haneman@sun.com>
955
956         * cspi/spi.h:
957         * cspi/spi_event.c:
958         * cspi/spi_accessible.c:
959         Documentation fixes: added user_data params to documentation for 
960         listeners and callbacks.  
961
962         * cspi/spi_accessible.c: 
963         Changed AccessibleStateSet_compare to return a
964         StateSet rather than return the difference set into a third parameter.
965         
966         
967 2001-12-09  Bill Haneman <bill.haneman@sun.com>
968
969         * configure.in:
970         Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
971         remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
972         it). 
973
974         * Makefile.am:
975         Remove subdirectory po from SUBDIRS for now.
976
977         * at-bridge/bridge.c:
978         Beefed up a couple of debug printouts.
979         One-line fix for signal notification name formatting.
980
981         * libspi/accessible.c:
982         Added assertion to spi_accessible_new ().
983
984         * libspi/application.c:
985         Put #ifdef qualifiers around a printf.
986
987         * libspi/value.c:
988         Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
989
990         * registryd/Makefile.am:
991         * util/Makefile.am:
992         Replaces use of XML_I18N_MERGE_SERVER_RULE with
993         INTLTOOL_SERVER_RULE macro.
994
995         * test/simple-at.c:
996         Added an event listener for several ATK signals, for
997         testing and debugging.  Removed a few g_warnings.
998         Added test output if focussed item implements the Value interface.
999
1000         * test/test-simple.c:
1001         Added test_value () function (known not to pass at the moment, so
1002         not actually called yet.
1003         
1004 2001-12-08  Michael Meeks  <michael@ximian.com>
1005
1006         * at-bridge/bridge.c (bridge_focus_tracker),
1007         (emit_eventv): fix the same ref. leak.
1008         (register_atk_event_listeners): don't leak.
1009
1010         * cspi/spi-listener-impl.c (cspi_event): more 
1011         protection from client code.
1012
1013         * test/test-simple.c (test_desktop): unref the app.
1014
1015         * test/Makefile.am: upd. TESTS.
1016
1017         * at-bridge/bridge.c (bridge_exit_func): release the registry.
1018
1019         * test/keysynth-demo.c (keysynth_exit): unref the listeners.
1020
1021         * cspi/spi_accessible.c (Accessible_queryInterface): constify.
1022
1023         * cspi/spi_registry.c: constify in strings.
1024         (deregisterGlobalEventListenerAll): don't release the ref.
1025
1026         * cspi/spi.h: start removing redundant / conflicting
1027         gtkdoc comments, making the API readable at a glance :-)
1028         
1029         * cspi/spi_event.c (AccessibleEventListener_unref): impl.
1030
1031         * test/keysynth-demo.c (keysynth_exit, main): upd.
1032
1033         * test/simple-at.c (main, simple_at_exit): upd.
1034
1035         * test/test-simple.c (unutterable_horror): kill.
1036         (utterable_normal_derefs): kill.
1037         (main): upd & do a setenv before gtk_init, so that we
1038         can use memprof - and to save the pain of remembering
1039         this, if we're running under memprof - don't exit.
1040
1041         * cspi/spi_main.c (SPI_exit): return exit status
1042         for cspi.
1043         (SPI_event_quit): impl.
1044         (SPI_event_main): simplify.
1045         (cspi_is_gnome_app): kill.
1046         (SPI_init): kill isGNOMEapp arg.
1047
1048         * at-bridge/bridge.c (register_atk_event_listeners):
1049         re-instate the unref.
1050         (bridge_exit_func): don't re-activate the registry,
1051         protect vs. theoretical re-entry, use the
1052         AT_BRIDGE_SHUTDOWN env. var to determine whether to
1053         assert a clean shutdown - for regression tests.
1054
1055 2001-12-08  Abel Cheung  <maddog@linux.org.hk>
1056
1057         * configure.in: Comment out dummy i18n support for now,
1058           otherwise it fails to build.
1059         * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
1060           EXTRA_DIST. They are missing in tarball.
1061
1062 2001-12-07  Michael Meeks  <michael@ximian.com>
1063
1064         * util/magnifier.c: kill bonobo activation reg. race.
1065
1066         * libspi/component.c
1067         (impl_accessibility_component_get_extents): make it match
1068         it's sig.
1069
1070         * libspi/registry.c (_registry_notify_listeners):
1071         re-remove X headers & reconcile conflicts.
1072         (spi_listener_struct_free): bad conflict resolve.
1073         (impl_accessibility_registry_register_application):
1074         more bad merging fixed.
1075         (impl_accessibility_registry_deregister_application): ditto.
1076         (spi_registry_new): ditto.
1077         (spi_registry_init): don't have an applications field.
1078
1079 [ merge fixups2 branch to here ]
1080 2001-12-07  Michael Meeks  <michael@ximian.com>
1081
1082         * test/simple-at.c (report_focus_event),
1083         (report_focussed_accessible): remove g_warning debug.
1084
1085 2001-12-07  Michael Meeks  <michael@ximian.com>
1086
1087         * test/test-simple.c (validate_tree): comment out some checks.
1088         (test_desktop): app now not registered idly - horay.
1089
1090 2001-12-07  Michael Meeks  <michael@ximian.com>
1091
1092         * cspi/spi_registry.c
1093         (registerAccessibleKeystrokeListener): clean, stop it leaking
1094         great swathes of memory, and device event controller references.
1095         ensure we always pass valid sequences.
1096         (deregisterAccessibleKeystrokeListener): ditto.
1097         (generateKeyEvent): upd.
1098
1099         * at-bridge/bridge.c (bridge_key_listener): handle
1100         registry dead exception gracefully.
1101         (bridge_focus_tracker, emit_eventv): free ev.
1102
1103         * test/simple-at.c (report_focus_event): fix polarity.
1104
1105         * libspi/application.c (notify_listeners): kill the ev
1106         argument, and make sure we init the ev we use.
1107         (spi_application_object_event_listener): split out a chunk
1108         (get_atk_object_ref): here & fixup.
1109         (reverse_lookup_name_for_toolkit_event): make const.
1110         (spi_application_toolkit_event_listener): fixup, kill leaks
1111         ref problems etc.
1112
1113         * at-bridge/bridge.c (register_atk_event_listeners):
1114         don't unref the noop object - causes grief.
1115
1116         * libspi/registry.c: remove the X headers.
1117         turn off the debug churn.
1118
1119         * libspi/accessible.c (spi_accessible_new_return): only
1120         release the ref if we are supposed to [doh]
1121
1122         * test/simple-at.c (report_button_press, report_focus_event):
1123         guard vs. unexpected exit.
1124
1125         * at-bridge/bridge.c (gtk_module_init): prune printf.
1126         (bridge_exit_func): fix app unref.
1127
1128         * libspi/Makefile.am: don't install registry or desktop.h
1129
1130         * libspi/*.h: update includes.
1131
1132         * libspi/application.h: don't include ourself, or
1133         other redundant headers.
1134
1135 2001-12-06  Michael Meeks  <michael@ximian.com>
1136
1137         * libspi/accessible.c
1138         (get_accessible_from_servant): impl.
1139         Upd. all CORBA impl.s to use it killing cut and paste.
1140
1141         * cspi/spi_main.c (cspi_cleanup): guard vs. double
1142         invokes.
1143         (SPI_init): register atexit cleanup handler here.
1144
1145 2001-12-06  Michael Meeks  <michael@ximian.com>
1146
1147         * at-bridge/bridge.c (gtk_module_init): g_error on
1148         activation exception
1149
1150 2001-12-06  Michael Meeks  <michael@ximian.com>
1151
1152         * at-bridge/bridge.c (gtk_module_init): some sort of
1153         confusing merge clash - reverted.
1154         (bridge_idle_init): ditto.
1155
1156         * test/test-simple.c (main, utterable_normal_derefs):
1157         merge from Bill - somehow not committed.
1158
1159 2001-12-06  Michael Meeks  <michael@ximian.com>
1160
1161         * libspi/value.c (spi_value_class_init): upd.
1162         (spi_value_finalize): kill.
1163
1164         * libspi/table.c (spi_table_finalize): kill.
1165         (spi_table_interface_new): upd.
1166         (spi_table_class_init): upd.
1167         (get_table_from_servant): impl.
1168         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1169
1170         * libspi/selection.c (spi_selection_finalize): kill.
1171         (spi_selection_interface_new): upd.
1172         (spi_selection_class_init): upd.
1173         (get_selection_from_servant): impl.
1174         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1175
1176         * libspi/relation.c (spi_relation_finalize): kill.
1177         (spi_relation_class_init, spi_relation_new): upd
1178
1179         * libspi/image.c (spi_image_finalize): kill.
1180         (spi_image_class_init): upd.
1181         (spi_image_interface_new): upd.
1182         (get_image_from_servant): impl.
1183         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1184
1185         * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
1186         (spi_hyperlink_finalize): kill.
1187         (spi_hyperlink_new): upd.
1188         (get_hyperlink_from_servant): impl.
1189         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1190
1191         * libspi/hypertext.c (spi_hypertext_interface_new): upd.
1192         (spi_hypertext_finalize): kill.
1193         (spi_hypertext_class_init): upd.
1194         (get_hypertext_from_servant): impl.
1195         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1196
1197         * libspi/editabletext.c (spi_editable_text_finalize): kill.
1198         (spi_editable_text_interface_new): upd.
1199         (get_editable_text_from_servant): impl.
1200         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1201         
1202         * libspi/text.c (get_text_from_servant): impl.
1203         All impls - update to use it killing more cut and paste,
1204         also fix bad string returns on duff args ( a somewhat
1205         impossible case to handle - but hey ).
1206         (spi_text_construct): impl.
1207         (spi_text_interface_new): upd.
1208         (spi_text_object_finalize): kill.
1209
1210         * libspi/component.c
1211         (accessibility_component_object_finalize): kill.
1212         (spi_component_class_init): upd.
1213         (get_component_from_servant): impl. helper to kill cut & paste.
1214         (impl_accessibility_component_contains): 
1215         (impl_accessibility_component_get_accessible_at_point): 
1216         (impl_accessibility_component_get_position): 
1217         (impl_accessibility_component_get_extents): 
1218         (impl_accessibility_component_get_mdi_z_order): 
1219         (impl_accessibility_component_get_layer): 
1220         (spi_component_interface_new): upd.
1221
1222         * libspi/action.c (spi_action_finalize): kill.
1223         (spi_action_class_init): upd. inherit from SpiObject.
1224         (spi_action_interface_new): upd.
1225         (get_action_from_servant): impl. helper to reduce cut & paste.
1226         (impl_getKeyBinding, impl_getName, impl_doAction),
1227         (impl_getDescription): Use it everywhere.
1228
1229         * cspi/spi_main.c (get_live_refs): a pointer hash.
1230         (spi_object_hash, spi_object_equal): comment out.
1231         There are issues with CORBA object hashing that need
1232         solving.
1233
1234         * libspi/application.c (spi_application_init),
1235         (spi_application_new): upd.
1236
1237         * libspi/accessible.c (spi_accessible_object_finalize): kill.
1238         (spi_accessible_class_init): upd.
1239         s/accessible/object/ in epv methods.
1240
1241 2001-12-05  Bill Haneman <bill.haneman@sun.com>
1242
1243         * at-bridge/bridge.c:
1244         Reorder the bridge initialization into the bridge gtk_module_init,
1245         an immediate call to bridge_register_app, and an idle_add for
1246         register_atk_event_listeners (the only code that *must* wait until
1247         GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
1248         the activation, creates the application's Accessible object, and
1249         queues the bridge_idle_init function.  Restored call to
1250         Accessibility_Registry_deregisterApplication().  
1251         Prior to making this call we obtain a new reference to the
1252         registry, which is a temporary hack that helps us handle apps that
1253         shut down the bonobo mainloop before we get there.
1254
1255         * libspi/registry.c:
1256         Fix string leakage in debug block, and don't segv if a an app
1257         dies before its event notifications have been propagated.
1258
1259         * cpi/spi_util.c:
1260         Modify cspi_check_ev() to call g_warning() rather than g_error(),
1261         as stopgap measure until we get proper exception handling when 
1262         objects die during or before interrogation.  
1263
1264         * cspi/spi_main.c:
1265         * cspi/spi.h:
1266         Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
1267         Also changed default value of is_gnome_app to TRUE.
1268
1269         * test/simple-at.c:
1270         * test/keysynth-demo.c:
1271         Changed use of SPI_init and SPI_event_main to reflect API change above.
1272
1273         * test/simple-at.c:
1274         Made report_focus_event check the warning value from getName
1275         before reporting on focussed accessible; simplifies handling of
1276         notifications from dead objects.
1277
1278         * test/test-simple.c: (Changes not in this patch since source is
1279         not in CVS ?)
1280         
1281 2001-12-05  Michael Meeks  <michael@ximian.com>
1282
1283         * registryd/registryd.c (main): protect against
1284         bonobo-activation startup race condition.
1285
1286         * cspi/spi_main.c (cspi_object_add_check): cope
1287         with the exception elegantly.
1288
1289         * idl/Accessible.idl: decl. ChildGone
1290
1291         * libspi/desktop.c (spi_desktop_dispose): impl.
1292         (spi_desktop_class_init): upd.
1293         (spi_desktop_add_application),
1294         (spi_desktop_remove_application),
1295         (abnormal_application_termination): impl.
1296         (impl_desktop_get_child_at_index): re-impl.
1297
1298         * libspi/registry.c
1299         (impl_accessibility_registry_deregister_application),
1300         (impl_accessibility_registry_register_application): 
1301         kill excessive debug clutter.
1302
1303         * test/test-simple.c (test_misc): test some NULL
1304         tolerance. (main): upd.
1305
1306         * cspi/spi_main.c (cspi_accessible_is_a): a NULL
1307         implements no interfaces - so let's not crash.
1308
1309         * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
1310
1311         * libspi/accessible.c (spi_accessible_new_return): impl.
1312         helper to calm the cut and paste, to cope with
1313         NULL AtkObjects effectively and efficiently, and to kill
1314         the referencing bugs.
1315
1316         * libspi/table.c (impl_getAccessibleAt),
1317         (impl_getRowHeader, impl_getColumnHeader): upd.
1318
1319         * libspi/hyperlink.c (impl_getObject): upd.
1320
1321         * libspi/accessible.c
1322         (impl_accessibility_accessible_get_child_at_index): upd.
1323
1324         * libspi/component.c
1325         (impl_accessibility_component_get_accessible_at_point): upd.
1326
1327         * test/test-simple.c (test_editable_text, test_text): impl.
1328         some simple tests.
1329
1330         * cspi/spi_editabletext.c
1331         (AccessibleEditableText_insertText): constify.
1332
1333         * test/test-simple.c (focus_me): make more robust.
1334
1335         * libspi/accessible.c: remove some printfs in methods that
1336         we test and work fine, so we can get a clean tree dump.
1337
1338         * test/test-simple.c (validate_accessible),
1339         (validate_tree): make tree dumping pretty too.
1340
1341         * at-bridge/bridge.c (bridge_signal_listener): upd. so
1342         it builds without debug on.
1343
1344         * test/test-simple.c (validate_accessible): fix the most
1345         ludicrous bug.
1346
1347         * cspi/spi_main.c (spi_object_release): leave the nicely
1348         blanked memory around if in debug mode.
1349
1350         * cspi/spi-listener-impl.c (cspi_event): use add_check.
1351
1352 [committed to fixups2]
1353 2001-12-05  Michael Meeks  <michael@ximian.com>
1354
1355         * libspi/editabletext.c
1356         (spi_editable_text_class_init): g_type_class_peek_parent,
1357         not interface peek - so we finalize cleanly.
1358
1359         * libspi/accessible.c (spi_accessible_new): kill debug.
1360
1361         * test/test-simple.c (validate_accessible): fix ref.
1362         leak, print strings before freeing them; sigh, comment a
1363         chunk out due to strangeness.
1364         (validate_tree): unref the child after use.
1365
1366         * cspi/spi_component.c (AccessibleComponent_getLayer):
1367         add missing break statement, switch on zlayer not the
1368         uninitialized retval.
1369
1370         * cspi/spi_main.c (cspi_object_add): add assert, local ref
1371         before (possibly re-entering) remote unref.
1372
1373         * test/simple-at.c (main): unref the desktop.
1374
1375         * cspi/spi_accessible.c (cspi_accessible_is_a): move 
1376         into:
1377         
1378         * cspi/spi_main.c (cspi_accessible_is_a): here to 
1379         isolate bonobo API usage more.
1380
1381         * libspi/registry.c (impl_accessibility_registry_register_application): 
1382         prune bogus comment.
1383
1384 2001-12-04  Michael Meeks  <michael@ximian.com>
1385
1386         * test/test-simple.c (validate_tree): upd.
1387         IndexInParent check to make it more lucid.
1388         (validate_accessible): dump the tree.
1389
1390         * libspi/accessible.c (de_register_public_ref),
1391         (get_public_refs): impl.
1392         (spi_accessible_new): make more efficient & intuitive.
1393         Now IndexInParent check works.
1394
1395 2001-12-04  Michael Meeks  <michael@ximian.com>
1396
1397         * cspi/spi-util.h: remove.
1398
1399         * cspi/spi.h: move SPI_freeString here
1400
1401         * libspi/component.c (impl_accessibility_component_get_layer): 
1402         warning fixage.
1403         (impl_accessibility_component_get_mdi_z_order): ditto,
1404         return -1 on error - is this ok ?
1405
1406         * test/test-simple.c (test_application): impl.
1407
1408         * cspi/spi_accessible.c (Accessible_getApplication),
1409         (Accessible_isApplication): impl.
1410
1411         * libspi/registry.c (spi_listener_struct_free): release
1412         the CORBA reference too.
1413
1414         * libspi/accessible.c
1415         (impl_accessibility_accessible_get_parent): fix ref leak.
1416
1417         * libspi/registry.c (spi_registry_new): make the registry
1418         immortal - we don't want it to go away ever.
1419
1420         * libspi/application.c
1421         (spi_accessible_application_finalize): impl. cleanup.
1422
1423         * cspi/spi_registry.c
1424         (deregisterGlobalEventListenerAll),
1425         (deregisterGlobalEventListener),
1426         (deregisterAccessibleKeystrokeListener): fix ref leak.
1427
1428         * cspi/spi_main.c (SPI_init): remove redundant ref.
1429
1430         * test/test-simple.c (unutterable_horror): impl. to force a
1431         clean shutdown.
1432         (main): use it.
1433
1434         * libspi/registry.c
1435         (impl_accessibility_registry_deregister_application): release
1436         the application when we de-register it.
1437
1438         * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
1439         until we have the infastructure to get it right.
1440
1441 2001-12-03  Michael Meeks  <michael@ximian.com>
1442
1443         * libspi/Makefile.am: only build eventlistener.[ch]
1444
1445         * libspi/accessible.c
1446         (impl_accessibility_accessible_get_child_at_index): don't leak.
1447
1448         * at-bridge/bridge.c (bridge_exit_func): cope with an exit
1449         before we hit the idle handler.
1450
1451         * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
1452         debugging than exit.
1453
1454         * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
1455
1456         * libspi/listener.c (impl_notify_event): check source
1457         not NIL before unref.
1458
1459         * libspi/registry.c (impl_registry_notify_event): ditto.
1460
1461         * libspi/eventlistener.c
1462         (impl_accessible_event_notify_event): unref the source.
1463
1464         * libspi/accessibleeventlistener.c
1465         (impl_accessible_event_notify_event): unref the source.
1466
1467         * idl/Event.idl: remove 'hash_id' attribute - of no
1468         concievable use.
1469
1470         * libspi/application.c (notify_listeners): upd list
1471         iteration & sig.
1472         (spi_application_object_event_listener), 
1473         (spi_application_toolkit_event_listener): upd to do correct
1474         CORBA ref counting.
1475
1476         * libspi/registry.c
1477         (_registry_notify_listeners): update.
1478         (parse_event_type): this method also leaks like a sieve.
1479         (impl_accessibility_registry_deregister_global_event_listener): 
1480         fix ETYPE_WINDOW case.
1481
1482         * libspi/application.c
1483         (impl_accessibility_application_register_object_event_listener): 
1484         kill leak.
1485
1486         * libspi/hyperlink.c (impl_getObject): fix ref mistake.
1487
1488         * libspi/hypertext.c (impl_getLink): ditto.
1489
1490         * cspi/spi_main.c (cspi_object_add): remove
1491         bogus CORBA_Object_duplicate.
1492
1493         * cspi/spi-listener-impl.c (cspi_event): dup/ref
1494         on the object_add.
1495
1496         * cspi/spi_accessible.c
1497         (Accessible_getRelationSet): fix leak / referencing issue.
1498
1499         * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
1500         (cspi_object_add, cspi_object_unref): upd.
1501         (spi_object_release, get_live_refs): impl.
1502         (cspi_cleanup): simplify.
1503
1504         * *.[ch]: s/boolean/SpiBoolean/
1505
1506         * cspi/spi_accessible.c (role_names): actualy order so it
1507         corresponds with the enum !
1508
1509         * test/test-simple.c (test_roles): check some role strings
1510         vs. enums to detect offset errors.
1511
1512 2001-12-01  Michael Meeks  <michael@ximian.com>
1513
1514         * cspi/spi_main.c (cspi_object_add_check): impl. helper.
1515
1516         * cspi/spi_accessible.c (Accessible_getChildAtIndex):
1517         check ev before 
1518         (Accessible_getChildAtIndex): use cspi_add_check so we
1519         check the ev before using a (possibly) invalid value.
1520
1521         * libspi/accessible.c
1522         (impl_accessibility_accessible_get_parent): don't segv
1523         on a NULL parent.
1524
1525         * at-bridge/bridge.c (gtk_module_init): upd.
1526         (bridge_property_event_listener): don't leak strings
1527         and events !
1528         (bridge_state_event_listener),
1529         (bridge_property_event_listener): don't use a static
1530         buffer in case of recursive event emission &
1531         re-enterancy - split out the swathe of cut and paste
1532         into:
1533         (emit_eventv): and fix 2 ref leaks here & comply to the
1534         coding style.
1535         (bridge_register_app): rename to 
1536         (bridge_idle_init): this and kill arg parsing, split
1537         various inits & bonobo-activation registration to module
1538         init time, kill referencing error.
1539         (bridge_exit_func): fix the same leak.
1540         (bridge_focus_tracker): don't leak event structures
1541         and strings.
1542         (bridge_signal_listener): more leakage and cut & paste
1543         fixage.
1544         (bridge_key_listener): return the result - FIXME is
1545         this polarity correct ?
1546         (accessibility_keystroke_from_atk_key_event): rename
1547         (accessibility_init_keystroke_from_atk_key_event): and stop
1548         leakage.
1549         (gtk_module_init): return a value - not that it is checked by
1550         Gtk - but hey.
1551         (bridge_key_listener): register my horror at casting between
1552         IDL defined structs.
1553         (bridge_get_registry): kill - not used.
1554
1555         * cspi/spi_accessible.c (Accessible_getRole): make return const.
1556
1557         * test/test-simple.c (test_roles): impl.
1558         (test_desktop, validate_accessible, validate_tree): impl.
1559
1560         * cspi/spi_accessible.c (role_names): fixup bogus
1561         MAX_ROLES setup, make constants const for efficient linkage
1562         (AccessibleRole_getName): conform to coding style, make
1563         return 'const'
1564
1565 2001-11-30  Michael Meeks  <michael@ximian.com>
1566
1567         * cspi/spi.h: add missing prototype.
1568
1569         * libspi/registry.c (spi_listener_struct_new): fix sig.
1570
1571         * test/Makefile.am: add test-simple
1572
1573         * test/test-simple.c: add
1574
1575         * test/test.sh: add.
1576
1577         * cspi/spi_main.c (SPI_init): make SPI_inited module global,
1578
1579         * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
1580         do it straight - since otherwise we often get an activation race.
1581
1582 [ work before Bill duplicated a chunk of it ... ]
1583 2001-11-30  Michael Meeks  <michael@ximian.com>
1584
1585         * libspi/keystrokelistener.c
1586         (spi_keystroke_listener_class_init): fixup arg
1587         count (doh).
1588
1589         * libspi/eventlistener.c
1590         (spi_event_listener_class_init): ditto.
1591
1592         * tests/test.sh: add.
1593
1594         * cspi/spi-listener-impl.h: update macros.
1595
1596         * cspi/spi-listener-impl.c
1597         (cspi_event_listener_remove_callback): add
1598         correct pre-conditions.
1599
1600         * cspi/spi_main.c (SPI_exit): guard vs. double
1601         exits, exit the mainloop nicely.
1602         (SPI_event_main): make more sense.
1603         (SPI_init): move the atexit evilness here so we
1604         always do it (yuck).
1605         (SPI_event_main): upd.
1606
1607         * test/simple-at.c: update for listener changes.
1608
1609         * registryd/registryd.c (main): prune kruft.
1610
1611         * libspi/libspi.h: upd.
1612
1613         * libspi/eventlistener.[ch]: rename broken macros.
1614
1615         * libspi/accessibleeventlistener.[ch]: remove.
1616
1617         * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
1618
1619         * test/test-simple.c: Add - automated tests.
1620
1621         * cspi/spi-listener-impl.c (cspi_event),
1622         (cspi_key_event): add user_data to invoke.
1623         (cspi_keystroke_listener_finalize): impl.
1624         (cspi_keystroke_listener_class_init): upd.
1625
1626         * cspi/spi_event.c
1627         (createAccessibleEventListener),
1628         (AccessibleEventListener_addCallback),
1629         (createAccessibleKeystrokeListener),
1630         (AccessibleKeystrokeListener_addCallback): upd.
1631
1632         * libspi/deviceeventcontroller.c
1633         (spi_device_event_controller_check_key_event): add public proto.
1634
1635         * libspi/registry.c
1636         (impl_accessibility_registry_deregister_global_event_listener): 
1637         always init listeners.
1638         (_registry_notify_listeners): yes it is.
1639
1640         * cspi/spi-listener-impl.c (cspi_key_event): 
1641         move debug to here.
1642         (cspi_event_listener_finalize): impl.
1643         (cspi_event_listener_class_init): hook up.
1644         (event_handler_new, event_handler_free),
1645         (event_list_remove_by_callback): impl.
1646         (cspi_event_listener_remove_callback),
1647         (cspi_keystroke_listener_remove_callback),
1648         (cspi_keystroke_listener_add_callback),
1649         (cspi_event_listener_add_callback): upd.
1650
1651         * libspi/keystrokelistener.c
1652         (keystroke_listener_object_finalize): kill
1653         (spi_keystroke_listener_class_init): upd.
1654         (spi_keystroke_listener_add_callback),
1655         (spi_keystroke_listener_remove_callback): kill,
1656         use signals.
1657         (impl_key_event): prune drasticaly.
1658
1659         * libspi/eventlistener.c
1660         (spi_event_listener_add_callback),
1661         (spi_event_listener_remove_callback): kill, use
1662         signals.
1663         (impl_accessible_event_notify_event): upd.
1664         (spi_event_listener_object_finalize): remove.
1665
1666         * libspi/Makefile.am: use eventlistener.[ch]
1667
1668 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
1669
1670         * libspi/registry.c (_registry_notify_listeners):
1671         Changed listener loop iteration to use preferred convention.
1672         Got rid of string memory leaks caused be calling g_strconcat
1673         inside function calls.
1674
1675         * libspi/registry.c (parse_event_type):
1676         Stopped g_strconcat memory leaks, free the g_strsplit return,
1677         g_strdup the split pieces when used, etc.
1678
1679 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
1680
1681         * idl/State.idl: 
1682         Change method 'compare' to return a 'difference set' rather than
1683         taking a StateSet as an out parameter (more Java-friendly).
1684
1685         * idl/Accessible.idl:
1686         Added CORBA struct 'BoundingBox', to faciliate API changes below:
1687         
1688         * idl/Component.idl:
1689         * idl/Image.idl:
1690         Changed methods 'getExtents' and 'getImageExtents' in these
1691         interfaces to return a BoundingBox structure.  
1692         (getPosition and getSize are redundant and possibly should be
1693         removed, rather than creating a corresponding Point struct.)
1694
1695         * cspi/spi_component.c:
1696         Modify implementation of getExtents to reflect the above IDL
1697         change.
1698         
1699         * cspi/spi_image.c:
1700         * cspi/spi.h:
1701         Add (missing) AccessibleImage_getExtents () API.
1702
1703         * docs/reference/cspi/at-spi-cspi-sections.txt:
1704         Added AccessibleImage_getImageExtents () to docs.
1705         
1706 2001-12-03  Bill Haneman  <bill.haneman@sun.com>
1707
1708         * idl/Component.idl:
1709         Added two methods, getLayer () and getMDIZOrder (), to reflect
1710         the new ATK methods atk_object_get_layer and
1711         atk_object_get_mdi_z_order. (Which arguably should be part of the
1712         AtkComponent API and AtkObject).  Also added an enum,
1713         ComponentLayer, for the first method's return value.
1714
1715         * libspi/component.c:
1716         Added implementations for these methods.
1717
1718         * cspi/spi_component.c:
1719         * cspi/spi.h:
1720         Added cspi binding methods for above, 
1721         AccessibleComponent_getLayer() and
1722         AccessibleComponent_getMDIZOrder().
1723         Added cspi enum 'AccessibleComponentLayer'.
1724
1725         * docs/reference/cspi/at-spi-cspi-sections.txt:
1726         Added above methods to docs.
1727
1728         * cspi/spi-impl.h:
1729         * cspi/spi*.[ch]:
1730         Changed typedef for 'boolean' type (and all references to it) to
1731         SPIBoolean, to avoid keyword clashes with C++.
1732
1733         * test/simple-at.c:
1734         Changed usages of 'boolean' to SPIBoolean.
1735
1736         * test/keysynth-demo.c:
1737         Changed usages of 'boolean' to 'gboolean' (since this is a gnome
1738         app), except where SPIBoolean is required by the callbacks API.
1739         
1740 2001-12-02  Bill Haneman  <bill.haneman@sun.com>
1741
1742         * cspi/spi_registry.c:
1743         Removed obsolete X event loop for passive keygrabs (which now
1744         lives in libspi).
1745
1746         * registryd/registryd.c:
1747         Removed unnecessary call to gdk_init() [cruft]. This also allows
1748         removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
1749         * configure.in.
1750
1751 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
1752
1753         * docs/reference/cspi:
1754         Included docs for SPI_freeString in generated documentation.
1755
1756         * cspi/spi-util.c:c
1757         Renamed spi_freeString to SPI_freeString, for consistency.  Added
1758         documentation for this function.
1759
1760         * cspi/spi-util.h:
1761         Renamed spi_freeString to SPI_freeString, for consistency.  
1762         Removed obsolete method declaration string_from_corba_string.
1763
1764         * test/keysynth-demo.c:
1765         Small tweak to comments.
1766
1767         * test/simple-at.c:
1768         Stopped leaking the strings returned from CSPI. 
1769
1770 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
1771
1772         Merged Michael's branch (see his ChangeLog entries below).
1773         
1774         * at-bridge/bridge.c: Explicitly hold a ref to the registry while
1775         bridge is alive, release on exit.
1776         
1777         * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
1778         Fix type check macro.
1779         
1780         * cspi/spi_event.c:
1781         Added AccessibleKeystrokeListener_unref() method to reduce leakage.
1782         
1783         * cspi/spi_main.c: 
1784         Added is_gnome_app static, and method cspi_is_gnome_app(), 
1785         so we can call the appropriate shutdown routine at exit in SPI_exit.
1786         
1787         * cspi/spi_main.c (cspi_object_ref):
1788         Duplicate the corba object passed in, since we're keeping it around.
1789         
1790         * cspi/SPI_exit.c, cspi_cleanup:
1791         Moved the releasing of the live refs to its own function, so we
1792         can put it in g_atexit ().  Call the appropriate shutdown API
1793         depending on whethe calling client is a gnome app or not
1794         (bonobo_main_quit or CORBA_ORB_shutdown).
1795         
1796         * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
1797         Unref the listener when this method is called, after
1798         deregistration.  Updated the API docs to note this behavior.
1799
1800         * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
1801         Bugfixes: Ref the bonobo object when returning a parent or child 
1802         reference, or an AccessibleRelation.  Generally made sure
1803         BonoboObject refcount is incremented whenever we return an
1804         Accessible.
1805
1806         * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
1807         Fixed typo/bug in signal declaration.
1808         
1809         * libspi/accessibleeventlistener.h:
1810         Fixed a type macro.
1811
1812         * libspi/application.c (spi_application_new):
1813         Fixed leak in initialization.
1814
1815         * libspi/desktop.c:
1816         Remembered to increment bonobo-object refcount when returning
1817         children (applications) from desktop object.
1818         Added (empty) finalize method.
1819
1820         * libspi/deviceeventcontroller.c:
1821         Hold a ref to listeners inside DEControllerKeyListeners.
1822         Added dec_key_listener_free() method.  Use prepend instead of
1823         append in key_listener list.  Fixed some refcount madness and
1824         leaks in the listener registration/deregistration - deregistration
1825         now calls dec_key_listener_free() on listeners, and on the
1826         temporarily constructed dec_key_listener() used to perform the search/match.
1827
1828         * libspi/hypertext.c (spi_hypertest_finalize):
1829         Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
1830         class.  Also fixed spi_hypertext_interface_new() and
1831         SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
1832
1833         * libspi/hypertext.h: 
1834         Removed pointless and duplicate AtkObject pointer from
1835         SpiHypertextClass.
1836
1837         * libspi/keystrokelistener.c:
1838         Fixed incorrect type of keystroke_listener_parent_class,
1839         renamed keystroke_listener_object_finalize to
1840         spi_keystroke_listener_object_finalize.
1841         Fixed typo in signal declaration
1842         (spi_keystroke_listener_class_init).
1843
1844         * libspi/registry.c:
1845         Added funcsions spi_listener_struct_new() and
1846         spi_listener_struct_free() to help with memory management issues.
1847         We also now use these methods instead of gnew + poking stuff into
1848         the struct, and to decrement listener counts/free the listeners
1849         when deregistering them.
1850         Fix more refcount bugs in getDesktop() and
1851         getDeviceEventController().  
1852
1853         * test/simple-at.c:
1854         De-ref the desktop after enumerating the applications.  Explicitly
1855         decrement the refcounts on the created listeners on exit (using
1856         _unref for keystroke listeners, and via the
1857         deregisterGlobalEventListenerAll command for other event
1858         listeners).
1859         
1860 2001-11-27  Michael Meeks  <michael@ximian.com>
1861
1862         * cspi/spi-listener.h: fixup enum.
1863
1864 2001-11-27  Michael Meeks  <michael@ximian.com>
1865
1866         * cspi/spi-listener-impl.c (cspi_event_listener_new),
1867         (cspi_keystroke_listener_new): Use the cspi variants.
1868
1869 2001-11-26  Michael Meeks  <michael@ximian.com>
1870
1871         * test/keysynth-demo.c: fix 2 compile warnings, missing
1872         type in decl. etc.
1873
1874         * test/simple-at.c (report_focussed_accessible),
1875         (report_focus_event, report_button_press),
1876         (check_property_change, is_command_key),
1877         (report_ordinary_key_event, report_command_key_event): upd.
1878
1879         * util/mag_client.h: include pre-requisites.
1880
1881         * libspi/accessibleeventlistener.c
1882         (spi_event_listener_object_finalize): free any lingering
1883         callbacks.
1884         
1885         * libspi/keystrokelistener.c
1886         (keystroke_listener_object_finalize): ditto.
1887
1888         * cspi/spi-listener-impl.[ch]: Add to implement cspi style
1889         callbacks, with cspi types.
1890         
1891         * cspi/spi_event.c (createAccessibleEventListener): chain to
1892         (AccessibleEventListener_addCallback): here.
1893         (createAccessibleKeystrokeListener): chain to 
1894         (AccessibleKeystrokeListener_addCallback): here.
1895
1896         * libspi/keystrokelistener.c
1897         (spi_keystroke_listener_class_init): add signal.
1898         (impl_key_event): emit the event.
1899         (boolean_handled_accumulator): impl.
1900         (marshal_BOOLEAN__POINTER): add, gack.
1901
1902         * libspi/accessibleeventlistener.c
1903         (spi_event_listener_class_init): add signal.
1904         (impl_accessible_event_notify_event): emit the signal &
1905         make the loop efficient.
1906         (spi_event_listener_add_callback): prepend the callback.
1907
1908         * libspi/accessibleeventlistener.h: add an 'event' signal,
1909         decl type on callback.
1910
1911         * libspi/keystrokelistener.h: ditto.
1912
1913         * cspi/spi-listener.h: make methods typesafe and
1914         make them use the new event typedefs.
1915
1916         * test/simple-at.c (report_focussed_accessible):
1917         include mag_client.h
1918         Use *(void *)text_interface not the other thing.
1919         
1920         * configure.in: add gtk to registryd bits - since we use
1921         gdk there ( why ? )
1922
1923         * util/magnifier.c: include libbonobo.h
1924         
1925 2001-11-25  Bill Haneman  <bill.haneman@sun.com>
1926
1927         * test/keysynth-demo.c:
1928         Turned this into a simple scanning keyboard, to demonstrate the
1929         use of g_timeout_add () as a means of creating timers for
1930         scanning, and the use of GtkStyle for visually indicating when
1931         virtual keyboard elements are selected.
1932
1933         keysynth-demo now listens to any keyboard keys with zero-valued
1934         keycodes (i.e. 'unused' keys) and interprets them as
1935         single-switches.
1936
1937         Reworked the shiftlatch code so that shift-down state isn't held
1938         for long periods (it's only synthesized immediately prior to
1939         the keysynth event it's modifying).  Note that shiftlatch in this
1940         demo is a convenience, not intended to take the place of AccessX 
1941         which is the better choice for getting 'sticky' modifier keys.
1942
1943         * libspi/deviceeventcontroller.c:
1944         * at-bridge/bridge.c:
1945         * cspi/spi_registry.c:
1946         Removed some debug print stuff, and put other verbosity in #ifdef
1947         blocks.
1948
1949         * util/magnifier.c:
1950         * util/mag_image.h:
1951         Implemented some more of the magnifier IDL for the simple
1952         magnifier: namely, getZoomRegionParams. 
1953         Added mag_x and mag_y members to MagnifierData struct, aid of this
1954         implementation.
1955         Added GtkWindow::realize signal handler to magnifier, to keep it
1956         from receiving keyboard focus from the WM.
1957
1958 2001-11-23  Mark McLoughlin  <mark@skynet.ie>
1959
1960         * cspi/spi-private.h: my guess at what michael forgot
1961         before he ran off to NZ :-)
1962
1963 2001-11-23  Michael Meeks  <michael@ximian.com>
1964
1965         * cspi/spi_event.c (AccessibleEventListener_removeCallback):
1966         comment out non existant method invoke so we link.
1967
1968         * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
1969         use bonobo_exception_get_text for more friendly warnings.
1970
1971         * cspi/spi.c (Obj_Add): move into spi_main & rename
1972         spi_object_add; kill spi.c
1973
1974         * cspi/spi_registry.c
1975         (deregisterGlobalEventListener),
1976         (deregisterGlobalEventListenerAll),
1977         (registerGlobalEventListener): fix exception leaks.
1978
1979         * cspi/spi_main.c (spi_exception): impl. helper, so we
1980         don't leak exceptions.
1981
1982         * cspi/spi_selection.c
1983         (AccessibleSelection_deselectSelectedChild): return the
1984         success state.
1985
1986         * cspi/spi_main.c (spi_ev): impl; hack - gack.
1987         (spi_registry): ditto.
1988         (SPI_init): guard against double inits.
1989
1990         * cspi/*.c: use spi_ev (), and spi_registry () where
1991         appropriate - a temporary hack until we have something
1992         better. Use spi_object_add
1993
1994 2001-11-22  Michael Meeks  <michael@ximian.com>
1995
1996         * cspi/Makefile.am: re organise, install the headers.
1997
1998         * cspi/*.h: add G_BEGIN/END_DECLS
1999
2000 2001-22-11  Bill Haneman  <bill.haneman@sun.com>
2001
2002         * test/simple-at.c:
2003         Added non-preemptive keylistener for key events with no modifiers
2004         and shift-only modifier.
2005
2006         * libspi/keystrokelistener.c:
2007         Removed some verbose diagnostics printout.
2008
2009         * cspi/spi_registry.c:
2010         Fixed a bug that caused all key listeners to be registered as
2011         pre-emptive.
2012         
2013         * libspi/deviceeventcontroller.c:
2014         Fixed bug that caused XGrabKey (preemptive key grab) to be called
2015         for non-preemptive key masks.
2016
2017
2018 2001-22-11  Bill Haneman  <bill.haneman@sun.com>
2019
2020         * docs/reference/idl/at-spi-idl-docs.sgml:
2021         * docs/reference/idl/at-spi-idl-sections.txt:
2022         * docs/reference/idl/at-spi-idl-overrides.txt:
2023         Added missing files.
2024
2025         * docs/reference/Makefile.am:
2026         removed idl from SUBDIRS until we can figure a way to get gtk-doc
2027         to scan the IDL files :-(
2028
2029         * docs/reference:
2030         * docs/cspi:
2031         * docs/idl:
2032         Added .cvsignore files.
2033         
2034 2001-21-11  Bill Haneman  <bill.haneman@sun.com>
2035
2036         * libspi/deviceeventcontroller.c:
2037         * libspi/keystrokelistener.c:
2038         * cspi/spi_event.c:
2039         * cspi/spi_registry.c:
2040         Added filters for KeySets, KeyEventSeq, and event types to key
2041         event dispatching, so listeners should only receive those events
2042         that they requested :-)
2043
2044 2001-21-11  Bill Haneman  <bill.haneman@sun.com>
2045
2046         * configure.in:
2047         * docs/Makefile.am:
2048         * docs/reference:
2049         * docs/reference:Makefile.am:
2050         * docs/reference/cspi:
2051         * docs/reference/cspi:Makefile.am:
2052         * docs/reference/cspi:tmpl:
2053         * docs/reference/cspi:tmpl:*.sgml:
2054         * docs/reference/idl:
2055         * docs/reference/idl:Makefile.am:
2056         * docs/reference/idl:at-spi-idl-sections.txt:
2057         * docs/reference/idl:at-spi-idl-docs.sgml:
2058         * docs/reference/idl:tmpl:
2059         * docs/reference/idl:tmpl:*.sgml:
2060
2061         Restructured docs directory to allow separate 'reference' docs
2062         section, and forked idl and cspi docs.  Added the sgml template
2063         files to CVS.  Added the first sections/structural sgml for the
2064         IDL docs.
2065
2066 2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
2067
2068         * configure.in, libspi/Makefile.am: find libXtst.
2069
2070 2001-11-21  Michael Meeks  <michael@ximian.com>
2071
2072         * test/accessx-gui.c: s/spi_value/value/ - doh.
2073
2074         * libspi/base.[ch]: add.
2075
2076 2001-18-11  Bill Haneman <bill.haneman@sun.com>
2077
2078         * idl/Accessible.idl:
2079         * idl/Application.idl:
2080         * idl/Registry.idl:
2081         * idl/Action.idl:
2082         Started gtk-doc cleanup on IDL.
2083
2084         * libspi/deviceeventcontroller.c:
2085         Added and connected non-preemptive key notification from the
2086         toolkits (in addition to the pre-emptive support from XServer
2087         which we had before, but which causes 'focus flashing').  Filters
2088         are presently limited to key modifiers and global/non-global,
2089         KeySets are presently ignored, as are KeyEvent masks.
2090
2091         Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
2092         structs into the persistant structure rather than just storing
2093         pointers to things that might not persist across servant
2094         invocations.
2095
2096         The XGrabKey call now does async keygrabs, because synchronous
2097         ones were deadlocking with GDK_event code in a very nasty way.
2098
2099         Added boolean to internal method notify_keylisteners, to indicate
2100         whether the event came from the 'toolkit source' or the 'global
2101         (XServer) source' - this is used in the notification process to
2102         determine which listeners to send the event to.
2103
2104         deviceeventcontroller.c is now warning-free.
2105         
2106         * libspi/registry.c:
2107         Fixed regression in application de-registration.
2108         Also fixed some really brain-dead weirdness having to do with
2109         event dispatching - event structs are now duplicated before being
2110         re-marshalled in the dispatch to listeners.  This also fixes a
2111         Solaris build problem.
2112         
2113         
2114 2001-20-11  Michael Meeks  <michael@ximian.com>
2115
2116         * libspi/registry.c
2117         (impl_accessibility_registry_deregister_global_event_listener): 
2118         segv. protection.
2119
2120         * libspi/deviceeventcontroller.c
2121         (spi_device_event_controller_check_key_event): return
2122         FALSE on no virtual method.
2123
2124         * libspi/*..h: make includes work on a correctly pathed install.
2125
2126         * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
2127
2128         * libspi/application.h: kill unused ( and whacked out )
2129         gboolean *spi_application_set_id (AtkObject *app, long id);
2130
2131 2001-20-11  Michael Meeks  <michael@ximian.com>
2132
2133         * libspi/*.[ch]: further convert to bonobo's type func
2134         macros, remove redundnant casts etc.
2135
2136         * libspi/text.c s/accessibility_text/spi_text/g,
2137         re-order to de-cruft.
2138
2139         * libspi/hypertext.c: re-order to kill a huge slew
2140         of redundant forward decls.
2141
2142         * libspi/relation.c: ditto.
2143
2144         * libspi/image.c: ditto.
2145
2146         * */.cvsignore: update
2147         
2148 2001-20-11  Michael Meeks  <michael@ximian.com>
2149
2150         * libspi/deviceeventcontroller.c
2151         (_controller_register_with_devices): use g_getenv,
2152         kill stdlib.h include.
2153
2154         * libspi/keystrokelistener.c
2155         (spi_keystroke_listener_get_type): kill
2156         (spi_keystroke_listener_class_init),
2157         (spi_keystroke_listener_init): rename to this.
2158
2159         * libspi/text.c (impl_getAttributes): fix warning / bug.
2160
2161         * libspi/*.[ch]: more headers, includes and over commenting.
2162         
2163 2001-20-11  Michael Meeks  <michael@ximian.com>
2164
2165         * libspi/*.[ch]: fixup headers, includes and over commenting.
2166
2167         * libspi/image.c (impl__get_imageDescription): const
2168         correctness warning fix. remove redundant casting.
2169
2170         * libspi/table.c (impl_getRowDescription): ditto.
2171         (impl_getColumnDescription): ditto.
2172
2173         * libspi/libspi.h: add.
2174
2175 2001-19-11  Michael Meeks  <michael@ximian.com>
2176
2177         * libspi/editabletext.c (impl_setAttributes): fix warnings.
2178
2179         * libspi/component.c (accessibility_component_get_type): 
2180         rename to (spi_component_get_type): and macroify.
2181         (accessibility_component_init): rename to
2182         (spi_component_init): this
2183         (accessibility_component_class_init): rename to
2184         (spi_component_class_init): this
2185
2186         * libspi/action.c (spi_action_get_type): kill, use the macro.
2187
2188         * libspi/deviceeventcontroller.c (_compare_listeners): re-order
2189         to avoid prototype.
2190
2191         * libspi/application.c (spi_application_object_event_listener),
2192         (impl_accessibility_application_register_object_event_listener):
2193         warning fixes / const understanding updates.
2194
2195         * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
2196         warning fixes.
2197
2198 2001-18-11  Bill Haneman <bill.haneman@sun.com>
2199
2200         * libspi/spi_accessible.c: Added docs and C bindings for
2201         AccessibleStateSet. (No implementations yet).  Documentation
2202         coverage for C bindings now 100%. Made docs for event listeners
2203         more explicit.
2204         
2205         * idl/Registry.idl:
2206         Added methods 
2207             boolean notifyListenersSync (in DeviceEventListener listener,
2208                                      in DeviceEvent event);
2209
2210             oneway void notifyListenersAsync (in DeviceEventListener listener,
2211                                           in DeviceEvent event);
2212
2213         Added DeviceEventListener and DeviceEvent structs (may deprecate
2214         KeyStroke and KeystrokeListener in favor of this generic
2215         event/listener framework for devices).
2216
2217         * libspi/deviceeventcontroller.c:
2218
2219         Changed some key listener code to take masks, etc., and paved the
2220         way for integration of toolkit/non-preemptive key events. Changed
2221         signatures of some internal methods.
2222
2223         * at-bridge/bridge.c:
2224         Fixed regression connecting to interface signals, apparently
2225         caused by GTK+ changes.
2226
2227         Added an internal bridge_state_listener to deal with
2228         property-change:accessible-state signals.
2229
2230         Changed the key_listeners GList to store structs (including masks,
2231         etc.) instead of just CORBA_Objects (required for full
2232         implementation of key listener API).
2233
2234         Connected the bridge to all currently supported Atk signals.
2235         Events now supported: 
2236             object:property-change
2237             object:property-change:accessible-name
2238             object:property-change:accessible-state
2239             object:property-change:accessible-description
2240             object:property-change:accessible-parent
2241             object:property-change:accessible-value
2242             object:property-change:accessible-role
2243             object:property-change:accessible-table-caption
2244             object:property-change:accessible-table-column-description
2245             object:property-change:accessible-table-column-header
2246             object:property-change:accessible-table-row-description
2247             object:property-change:accessible-table-row-header
2248             object:property-change:accessible-table-summary
2249             object:children-changed
2250             object:visible-data-changed
2251             object:selection-changed
2252             object:text-selection-changed
2253             object:text-changed
2254             object:text-caret-moved
2255             object:row-inserted
2256             object:row-reordered
2257             object:row-deleted
2258             object:column-inserted
2259             object:column-reordered
2260             object:column-deleted
2261             object:model-changed        
2262
2263 2001-16-11  Bill Haneman <bill.haneman@sun.com>
2264
2265         * libspi/hyperlink.c,h:
2266         Fixed some broken stuff in hyperlink.
2267         
2268         * libspi/relation.h:
2269         * libspi/relation.c:
2270         * cspi/spi_accessible.c:
2271         Initial implementations of AccessibleRelation methods, and docs.
2272
2273         * libspi/accessible.c:
2274         Fixed a bug that caused SEGV  if an accessible
2275         object's description is NULL, and a client
2276         requests it.  An empty string is now returned.
2277
2278         * cspi/spi_editabletext.c:
2279         * cspi/spi_hypertext.c:
2280         * cspi/spi_image.c:
2281         * cspi/spi_hyperlink.c:
2282         * cspi/spi_table.c:
2283         Added docs.  
2284
2285         Doc coverage now 95%.
2286
2287 2001-16-11  Bill Haneman <bill.haneman@sun.com>
2288
2289         One last namespacing revision:
2290         * libspi/accessibleeventlistener.[ch]:
2291         Renamed SpiAccessibleEventListener to SpiEventListener,
2292         (no need for two namespaces ;-)
2293
2294         And lots of documentation fixes:
2295
2296         * docs/at-spi-docs.sgml:
2297         Fixed 'underscore vs. hyphen' bug that was preventing
2298         the gtk-doc API docs from being automatically generated.
2299
2300         * cspi/spi-impl.h
2301         * cspi/spi-listener.h
2302         * cspi/spi.h
2303         * cspi/spi_accessible.c
2304         * cspi/spi_action.c
2305         * cspi/spi_application.c
2306         * cspi/spi_component.c
2307         * cspi/spi_editabletext.c
2308         * cspi/spi_event.c
2309         * cspi/spi_hypertext.c
2310         * cspi/spi_main.c
2311         * cspi/spi_registry.c
2312         * cspi/spi_selection.c
2313         * cspi/spi_text.c
2314         * cspi/spi_value.c
2315         * docs/Makefile.am
2316         * docs/at-spi-docs.sgml
2317         * docs/at-spi-sections.txt
2318         
2319         Added and fixed up gtk-doc documentation in cspi.
2320         
2321         Interfaces now (fully) documented (subject to revision and enhancement):
2322         SPI_main
2323         Event Listener Support
2324         Registry API
2325         AccessibleApplication
2326         Accessible
2327         AccessibleAction
2328         AccessibleComponent
2329         AccessibleEditableText
2330         AccessibleSelection
2331         AccessibleText
2332         AccessibleValue
2333
2334         still pending:
2335         AccessibleStateSet
2336         AccessibleRelationSet
2337         AccessibleImage
2338         AccessibleTable
2339         AccessibleHyperlink
2340         
2341 2001-14-11  Bill Haneman <bill.haneman@sun.com>
2342
2343         * at-bridge/bridge.c:
2344         Initial work for toolkit-level key snooper connection by bridge.
2345
2346         * cspi/spi-impl.h:
2347         * cspi/spi_*.h:
2348         * cspi/spi_*.c:
2349         New typedefs and fixes to support new namespacing, and cleaner
2350         separation of cspi bindings from libspi bonobo implementation.  
2351         Removed inconsistent and extraneous Spi* namespace prefix that
2352         had crept into cspi headers.
2353         Lots of comment fixes that sed had missed.
2354
2355         * cspi/spi-roletypes.h:
2356         * cspi/spi-statetypes.h:
2357         Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
2358         to AccessibleRoleType.
2359         
2360         * libspi/accessibleeventlistener.h:
2361         Fixed minor namespacing weirdness.
2362
2363         * libspi/deviceeventcontroller.c:
2364         Reordered some internal API for device listeners.
2365         Changed the key registry final boolean to 'is_system_global'
2366         rather than 'is_synchronous', which is more descriptive of its 
2367         actual meaning.
2368         Added spi_device_event_controller_new().
2369         Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
2370          
2371         * libspi/keystrokelistener.[ch]:
2372         Namespaced KeystrokeListener to SpiKeystrokeListener.
2373         Changed uses of keymasks to use SPI_ prefix, and did other
2374         knock-on fixups.
2375
2376         * libspi/keymasks.h:
2377         Namespaced keymask constants with SPI_ prefix.
2378
2379         * libspi/registry.c:
2380         Some warning fixes, and knock-on fixes from namespace changes.
2381
2382         * test/Makefile.am:
2383         Added rules for accessx-gui test program.
2384
2385         * test/accessx-gui.c:
2386         Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
2387         utility.  It doesn't actually use at-spi, but it's still cool and
2388         useful ;-)
2389
2390         * test/keysynth-demo.c:
2391         * test/simple-at.c:
2392         * test/at.c:
2393         * test/app.c:
2394         Fixes so that these test clients work properly with the namespaced
2395         libraries. (Incompletely tested for technical reasons, fixes may follow)
2396         
2397
2398 2001-13-11  Michael Meeks  <michael@ximian.com>
2399
2400         * libspi/application.c
2401         (impl_accessibility_application_get_version),
2402         (impl_accessibility_application_get_toolkit_name):
2403         warning fixes.
2404         (impl_accessibility_application_set_id),
2405         (impl_accessibility_application_get_id): remove
2406         redundant casting code.
2407
2408         * libspi/action.c (impl_getDescription): fix warnings.
2409
2410         * libspi/accessible.c
2411         (impl_accessibility_accessible_get_parent),
2412         (impl_accessibility_accessible_get_child_at_index),
2413         (impl_accessibility_accessible_get_state),
2414         (impl_accessibility_accessible_get_relation_set):
2415         warning fixes & include action.h
2416
2417 2001-13-11  Michael Meeks  <michael@ximian.com>
2418
2419         * *.[ch] fix bits I screwed up:
2420
2421                 s/([^ \tb(\*\&\?\",])spi_/\1/g;
2422                 s/([^ \tb(\*\&\?\",])Spi/\1/g;
2423         
2424 2001-13-11  Michael Meeks  <michael@ximian.com>
2425
2426         * *.[ch] Namespace libspi into spi_ and Spi.
2427
2428 2001-13-11  Michael Meeks  <michael@ximian.com>
2429
2430         * Makefile.am: dist & install at-spi-1.0.pc
2431
2432         * libspi/Makefile.am: install into at-spi-1.0
2433
2434         * idl/Makefile.am (idldir): install into at-spi-1.0
2435
2436         * at-spi-1.0.pc.in: add.
2437
2438         * configure.in: build it.
2439
2440 2001-12-11  Bill Haneman <bill.haneman@sun.com>
2441
2442         * test/keysynth-demo.c:
2443         Use a 'realize' signal-handler to set the WM properties for
2444         the virtual keyboard, rather than making it a "POPUP" type
2445         override-redirect window (thanks to anders carlsson for that
2446         tip!)
2447
2448 2001-11-11  Bill Haneman <bill.haneman@sun.com>
2449
2450         * test/Makefile.am:
2451         * test/keysynth-demo.c:
2452         Added new test of key synthesis, which creates a simple
2453         (mouse-operated) onscreen keyboard.  It inserts key events into
2454         the currently-focused window, thus it does not grab keyboard focus
2455         itself.
2456
2457         * cspi/spi_registry.c:
2458         Added C binding for AT-SPI generateKeyEvent.
2459
2460         * libspi/deviceeventcontroller.c:
2461         Added call to XFilterEvent so that key listener works with XIM (we
2462         hope).  Added event_synth_type to generateKeyEvent, so that we can
2463         produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
2464         synthesize a press/release pair for KeySyms.    
2465         
2466 2001-11-09  Bill Haneman <bill.haneman@sun.com>
2467
2468         * libspi/Makefile.am: 
2469         * registryd/Makefile.am:
2470         (temporary) hack to include libXtst in libspi and registryd.
2471         (Needed for keystroke synthesis, see below).
2472
2473         * idl/Registry.idl:
2474         Improved API for registerKeystrokeListener, in accordance with
2475         discussions with Gnopernicus team and X server research.
2476
2477         * libspi/registry.c:
2478         * libspi/deviceeventcontroller.c:
2479         * libspi/accessible.c:
2480         * libspi/keystrokelistener.c:
2481         Changes and fixes to support keylisteners for potentially
2482         consumed key events (that is, 'passive grabs').
2483         Added implementation for generateKeyEvent() [untested].
2484
2485         * cspi/spi.h:
2486         Changes to registerKeystrokeListener() API, as above.
2487         Added deregisterGlobalEventListenerAll(), and 
2488         deregisterKeystrokeListener(), which are needed for clean exit of
2489         clients.
2490         Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
2491         and a macro ALL_KEYS which may be used in place of a KeySet pointer.
2492         
2493         * cspi/spi_registry.c:
2494         Added implementations of function prototypes mentioned above.
2495         
2496         * registryd/registryd.c:
2497         Added the key listener event source as a g_timeout(), to allow
2498         receipt of key events that are not caught by GDK (since GDK
2499         doesn't support passive keygrabs, this was necessary).
2500
2501         * test/simple-at.c:
2502         Changed to attach a keylistener to 'Alt' keys, and
2503         respond to the following keycommands: Alt-M (toggle magnifier);
2504         Alt-F (toggle speech); Alt-Q (quit).
2505         Added an exit routine to deregister the listeners, and a key
2506         listener that prints some key info to the console when a key
2507         matches the listener mask (and is thus received by the listener).
2508         
2509         * util/idl/Magnifier.idl:
2510         Changes to magnifier API to support multiple zoom regions,
2511         non-uniform scaling in x and y, markDirty, and a host of other
2512         features that would be useful to magnification.
2513
2514         * util/mag_image.h:
2515         * util/mag_client.c:
2516         * util/mag_client.h:
2517         * util/mag_control.c:
2518         * util/magnifier.c:
2519         Source code changes to support the above IDL changes.
2520         
2521         * util/mag_image.c:
2522         As above, and also changes to use a (slower) generic conversion
2523         path for colormap conversions, since the fast RGB conversions have been
2524         reported to fail for 16-bit displays.
2525
2526 2001-10-26  Michael Meeks  <michael@ximian.com>
2527
2528         * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
2529
2530 <2001-10-26  Laszlo Peter <laca@ireland.sun.com>
2531
2532         * at-bridge/Makefile.am: fix LDFLAGS.
2533
2534 <2001-10-09  Bill Haneman <bill.haneman@sun.com>
2535
2536         * at-bridge/bridge.c:
2537         Re-worked listeners for toolkit events, now we have signal
2538         and property listeners. Added a private method
2539         register_atk_event_listeners(), which registers with the
2540         various atk and gtk signals we need to monitor in order to emit
2541         our at-spi events.
2542         Added emission hook for AtkObject:property-change events, to
2543         support the 'property listeners'.
2544         Fixed some alloc()s of Accessibility_Event structs to use CORBA
2545         allocation.
2546
2547         * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
2548         which emit warnings and exit, respectively, if CORBA errors occur
2549         during remote calls, and we now use these methods to check most of
2550         our CORBA calls in the C bindings.
2551
2552         * cspi/spi_accessible.c:
2553         Changed AccessibleSelection_refSelectedChild() to
2554         AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
2555         now increment refcounts.
2556
2557         * cspi/spi_component.c:
2558         Fixed some long pointer casts (dangerous!) to pass pointers to
2559         CORBA_longs of the proper type to the CORBA stubs, and copy the
2560         data into the longs that were passed into the C bindings code.
2561         
2562         * at-bridge/bridge.c:
2563         
2564         * libspi/accessible.c:
2565         Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
2566         hyperlinks, AtkHyperlink is an object type.     
2567
2568         * libspi/application.c:
2569         Added various conversions to and from "generic" event types and
2570         atk-specific types; this is really part of the 'bridge'
2571         implementation but is valid for all AtkObject-based accessibility 
2572         implementations.
2573
2574         * libspi/editabletext.c:
2575         Fixed nasty bug wherein editable text's finalize method was
2576         unref'ing tha AtkObject reference that the text parent class was
2577         about to unref _again_.  There was also a nasty inheritance bug
2578         that meant that the AccessibleEditableText class was corrupt.
2579
2580         * libspi/selection.c:
2581         Provided implementations for some selection API that was broken.
2582         
2583         * idl/Application.idl:
2584         Added registerObjectEventListener () method.
2585
2586         * THROUGHOUT:
2587         Fixed a number of return values that were Bonobo_Unknowns from
2588         bonobo_object_corba_objref(), which I
2589         forgot to dup before returning.  Changed instances of 
2590         bonobo_object_corba_objref (bonobo_object(o)) to
2591         BONOBO_OBJREF(o), for concision and clarity.
2592         
2593 <2001-10-13  Louise Miller <louise.miller@sun.com>
2594
2595         * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
2596         idl/Event.idl, idl/Registry.idl
2597         Changed these files to include Bonobo_Unknown.idl instead
2598         of Bonobo.idl
2599
2600 <2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
2601
2602         * libspi/component.c libspi/component.h:
2603                 Fixed typo.  Added assertions for object checks in 
2604         AccessibleComponent code.
2605
2606 <2001-10-09  Bill Haneman <bill.haneman@sun.com>
2607
2608         * idl/Accessible.idl:
2609                 Added 'isEqual (Accessible *object)' 
2610         method for Accessible. (Not Yet Implemented).
2611         
2612         * idl/Registry.idl:
2613                 Changed signature of registerKeystrokeListener() to
2614         take a KeySet and KeyEventSeq so that specific keys and event
2615         types could be requested for monitoring, and added a flag
2616         is_synchronous so that either synchronous or asynchronous
2617         notification could be requested.  (However this is not all
2618         implemented yet). This also meant adding two new typedefs,
2619         KeyEventSeq and KeySet.
2620
2621         * idl/Relation.idl: 
2622                 Added two new relations, RELATION_TOOLTIP_FOR and
2623         RELATION_LEAFNODE_OF.
2624
2625         * idl/State.idl:
2626                 Added new state, STATE_HAS_TOOLTIP.
2627         
2628         * libspi/text.c, editabletext.c:
2629                 Added new assertions to all casts of bonobo-objects from
2630         CORBA servants, to prevent Text API calls on non-text objects.
2631                 Changed suspect casts of int-pointer types, so that we
2632         always send a valid CORBA_long pointer to the CORBA APIs that use
2633         in/out long parameters.  We then have to copy from the CORBA_long
2634         into the regular long or int for return to the C bindings, or
2635         vice-versa when returning parameters from ATK calls to the bonobo wrappers.
2636         
2637         * cspi/spi_text.c:
2638         * libspi/deviceeventcontroller.c:
2639                 Cleaned these sources up.
2640         * idl/Text.idl:
2641                 Changed return type for getCharacterAtOffset to
2642         CORBA_unsigned_long, to allow for 32-bit characters.
2643         
2644                 
2645 <2001-10-08  Bill Haneman <bill.haneman@sun.com>
2646
2647         * util/Makefile.am:
2648         * idl/Makefile.am:
2649                 Fixed 'make dist' so that distro compiles...
2650         * libspi/keymasks.h:
2651                 new file.
2652         * cspi/spi-listener.c:
2653                 KeystrokeListenerCB now returns a boolean.
2654         * cspi/spi.h:
2655                 Added KeyEventType struct, and KeyStroke.
2656                 Also added createKeystrokeListener(),
2657         KeystrokeListener_addCallback(),
2658         KeystrokeListener_removeCallback(), and added a keymask to
2659         registerKeystrokeListener().
2660         * cspi/spi_accessible.c:
2661                 Changed numerous return types for interfaces from
2662         AccessibleComponent to Accessible<InterfaceName>; this was
2663         probably a cut-and-paste error.
2664         * cspi/spi_event.c:
2665                 Implementations of new KeystrokeListener api (from spi.h,
2666         above).
2667         * idl/Registry.idl:
2668                 Changes to key modifier mapping.
2669                 Created ControllerEventMask struct.
2670                 Made DeviceEventController derive from Bonobo::Unknown.
2671         * idl/Text.idl:
2672                 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
2673         * libspi/deviceeventcontroller.c:
2674                 Added a number of new internal (private) methods.
2675         * libspi/editabletext.c:
2676         * libspi/editabletext.h:
2677                 Fixed a number of bugs related to the fact that
2678         editabletext inherits from text.  Fixed the EditableText struct,
2679         the init() call, and use correct casts when calling Text methods
2680         from an EditableText object.  Removed (duplicate) atko from the
2681         EditableText structure, we use the one in the parent Text
2682         structure via the casts mentioned above.
2683         * libspi/keystrokelistener.[ch]:
2684         * libspi/registry.c:
2685                 Changes in support of keyboard handling (above).
2686         
2687         Keyboard handling, though partly functional, is still not
2688         recommended for at-spi client use as there is considerable 
2689         work yet to be done.
2690
2691         * libspi/text.c:
2692                 Changed some places where pointers to various int types
2693         are cast to be pointers to CORBA_long types and vice-versa:
2694         pointer casting is not safe so we pass pointers of the correct
2695         types and then cast the result before putting it into the target
2696         pointers.
2697
2698         * libspi/text.h: minor typos corrected.
2699         * test/simple-at.c: 
2700                 We now speak not only the name of a Text element, but the
2701         first sentence of its content, when it receives focus.
2702                 I also changed the text compression to 75% from 50%.
2703         * util/Accessibility_Util.server.in:
2704                 Changed the default magnifier type to be a 3x vertical
2705         splitscreen magnifier (was previously a 2x horizontal one).
2706
2707 <2001-10-03  Bill Haneman <bill.haneman@sun.com>
2708
2709         * libspi/keystrokelistener.h:
2710         * libspi/keystrokelistener.c:
2711                 Initial functional implementations of KeystrokeListener.
2712         * idl/Registry.idl:
2713         
2714 <2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
2715
2716         Fixed string handling for NULL strings in libspi.
2717         Added spi_freeString to free strings returned by C bindings.
2718
2719 <2001-09-30  Bill Haneman <bill.haneman@sun.com>
2720
2721         * libspi/keystrokelistener.h:
2722         * libspi/keystrokelistener.c:
2723                 Began (no-op) implementations of KeystrokeListener
2724                         (see below).
2725         * libspi/deviceeventcontroller.c:
2726         * libspi/deviceeventcontroller.h:
2727                 Began creating implementations of DeviceEventController,
2728                         to handle keystroke and mouse event listening and
2729                         synthesis.
2730         * libspi/accessible.c:
2731                 Stubbed-in the implementations for
2732                         Accessibility_Accessible_getState and
2733                         Accessibility_Accessible_getRelationSet.
2734         * libspi/registry.c:
2735                 Improved de-registration process and fixed some bugs, 
2736                         deregistration now works correctly.
2737         * libspi/desktop.c:
2738                 Added initialization of applications list (to NULL).
2739         * util/magnifier.c:
2740                 Reduced speech compression from 0.5 to 0.7, for demo.
2741                 Changed call to gdk_window_set_decorations()
2742                         to gtk_window_set_decorated().
2743         * at-bridge/bridge.c:
2744                 Bridge now deregisters when app exits, via
2745                         registration of a cleanup function
2746                         with the g_atexit() call.
2747                         Required making 'app' static, renamed 'this_app'.
2748                 Fixed broken use of bonobo_init, passing argv wrongly.
2749
2750 <2001-09-27  Bill Haneman <bill.haneman@sun.com>
2751
2752         * util:
2753         * util/Makefile.am: 
2754                 Created a new directory for 
2755                         accessibility-related utilities, primarily for
2756                         testing and demo purposes, but with possible
2757                         end-user utility.
2758         
2759         * util/magnifier.c:
2760         * util/magnifier.h:
2761         * util/mag_image.c:
2762         * util/mag_image.h:
2763                 Onscreen magnifier utility that
2764                         is implemented as a bonobo service.
2765         
2766         * util/mag_client.c:
2767         * util/mag_client.h:
2768                 Client-side support (simple C bindings) 
2769                         for Magnification service
2770         
2771         * util/mag_control.c:
2772                 Client program example for 
2773                         Magnification service
2774         
2775         * util/Accessibility_Magnifier.server.in:
2776                 Bonobo-activation file for the 
2777                         Magnification service.
2778         
2779         * util/idl:
2780         * util/idl/Magnifier.idl:
2781                 IDL defining the bonobo Magnification
2782                         service interface.
2783
2784         * test/simple-at.c:
2785                 Modifications to use the bonobo-activated magnifier
2786                         above, in place of trying to connect to an existing
2787                         magnifier that uses socket-listening IPC.
2788
2789                 If env variable MAGNIFIER is set, a magnifier service
2790                         will be started if one does not exist.
2791         
2792 <2001-09-25  Bill Haneman <bill.haneman@sun.com>
2793         * at-bridge/bridge.c:
2794                 applied patch from Marc to build and run 
2795                 against new glib and gtk+ (seemed like a change 
2796                 to bonobo_init signature was made ?)
2797         * test/simple-at.c:
2798                 made festival-server support turned off by default.
2799                 Added support for a simple magnifier (off by default)
2800                 which will be added to a 'util' directory later.
2801         * at-bridge/Makefile.am:
2802                 Changed "application.h" header from a 'source'
2803                 to a 'dependency' of libat-bridge.
2804
2805 <2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
2806         * cspi/Makefile.am:
2807                 Added spi-util.c.
2808
2809         * cspi/spi-util.c:
2810                 Fixed typo
2811
2812         * cspi/spi.c:
2813                 Added interface implementation c files to list of
2814                         includes so they are included in libcspi.
2815
2816         * cspi/spi.h:
2817                 Changed prototype of AccessibleAction_doAction to return a
2818                         boolean.
2819                 Changed prototype of AccessibleTable_getCaption to
2820                         return an Accessible.
2821                 Changed prototype of AccessibleTable_getSelectedRows
2822                         and AccessibleTable_getSelectedColumns to
2823                         return a long (returns the number of selected rows
2824                         or columns respectively).
2825                 Changed name of AccessibleText_refRunAttributes to
2826                         AccessibleText_getAttributes.
2827                 Changed prototype of AccessibleText_getCharacterExtents to
2828                         return a void rather than a boolean. 
2829                 Added support for a AccessibleCoordType parameter
2830                         specifying what type of coordinates are desired.
2831                 Added an AccessibleCordType parameter to
2832                         AccessibleText_getPointAtOffset.
2833
2834         * cspi/spi_accessible.c:
2835                 Added code to return the outstanding interfaces from
2836                         Accessible_queryInterface.
2837
2838         * cspi/spi_action.c:
2839                 Fixed typos.
2840                 Corrected call to getNActions to call the c binding
2841                         for an attribute.
2842
2843         * cspi/spi_editabletext.c:
2844                 Fixed typos.
2845                 Changed name from setRunAttributes to setAttributes.
2846
2847         * cspi/spi_hyperlink.c:
2848                 Fixed typos.
2849                 Changed call to getNAnchors to correctly call the c
2850                         binding for an attribute.
2851
2852         * cspi/spi_hypertext.c:
2853                 Fixed typos.
2854                 Changed getImageDescription to correctly call the
2855                         binding for an attribute.
2856
2857         * cspi/spi_selection.c:
2858                 Changed getNSelectedChildren to correctly call the c
2859                         binding for the attribute.
2860                 Changed refSelectedChild to getSelectedChild.
2861
2862         * cspi/spi_table.c:
2863                 Fixed typos.
2864                 Changed getCaption to return an Accessible.
2865                 Fixed calls which retrieve attributes.
2866                 Changed refAt to getAccessibleAt.
2867                 Changed getNSelectedRows and getNSelectedColumns to
2868                         return longs.
2869
2870         * cspi/spi_text.c:
2871                 Changed getCharacterExtents and getPointAtOffset to accept an
2872                         AccessibleCoordType.
2873                 Fixed typos.
2874                 Changed calls which retrieve attributes.
2875                 Changed refRunAttributes to getAttributes.
2876
2877         * cspi/spi_value.c:
2878                 Fixed typos.
2879
2880         * idl/Hyperlink.idl:
2881                 Changed n_anchors attribute to nAnchors to keep naming
2882                         convention consistent.
2883
2884         * idl/Table.idl:
2885                 Made Table inherit from Bonobo::Unknown.
2886                 Added nSelectedColumns and nSelectedRows attributes.
2887
2888         * idl/Value.idl:
2889                 Made Value inherit from Bonobo::Unknown.
2890
2891         * libspi/hyperlink.c:
2892                 Change for nAnchors attributte name change.
2893
2894 <2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
2895         * cspi/Makefile.am:
2896                 Added spi-util.c.
2897
2898         * cspi/spi-util.c:
2899                 Fixed typo
2900
2901         * cspi/spi.c:
2902                 Added interface implementation c files to list of
2903                         includes so they are included in libcspi.
2904
2905         * cspi/spi.h:
2906                 Changed prototype of AccessibleAction_doAction to return a
2907                         boolean.
2908                 Changed prototype of AccessibleTable_getCaption to
2909                         return an Accessible.
2910                 Changed prototype of AccessibleTable_getSelectedRows
2911                         and AccessibleTable_getSelectedColumns to
2912                         return a long (returns the number of selected rows
2913                         or columns respectively).
2914                 Changed name of AccessibleText_refRunAttributes to
2915                         AccessibleText_getAttributes.
2916                 Changed prototype of AccessibleText_getCharacterExtents to
2917                         return a void rather than a boolean. 
2918                 Added support for a AccessibleCoordType parameter
2919                         specifying what type of coordinates are desired.
2920                 Added an AccessibleCordType parameter to
2921                         AccessibleText_getPointAtOffset.
2922
2923         * cspi/spi_accessible.c:
2924                 Added code to return the outstanding interfaces from
2925                         Accessible_queryInterface.
2926
2927         * cspi/spi_action.c:
2928                 Fixed typos.
2929                 Corrected call to getNActions to call the c binding
2930                         for an attribute.
2931
2932         * cspi/spi_editabletext.c:
2933                 Fixed typos.
2934                 Changed name from setRunAttributes to setAttributes.
2935
2936         * cspi/spi_hyperlink.c:
2937                 Fixed typos.
2938                 Changed call to getNAnchors to correctly call the c
2939                         binding for an attribute.
2940
2941         * cspi/spi_hypertext.c:
2942                 Fixed typos.
2943                 Changed getImageDescription to correctly call the
2944                         binding for an attribute.
2945
2946         * cspi/spi_selection.c:
2947                 Changed getNSelectedChildren to correctly call the c
2948                         binding for the attribute.
2949                 Changed refSelectedChild to getSelectedChild.
2950
2951         * cspi/spi_table.c:
2952                 Fixed typos.
2953                 Changed getCaption to return an Accessible.
2954                 Fixed calls which retrieve attributes.
2955                 Changed refAt to getAccessibleAt.
2956                 Changed getNSelectedRows and getNSelectedColumns to
2957                         return longs.
2958
2959         * cspi/spi_text.c:
2960                 Changed getCharacterExtents and getPointAtOffset to accept an
2961                         AccessibleCoordType.
2962                 Fixed typos.
2963                 Changed calls which retrieve attributes.
2964                 Changed refRunAttributes to getAttributes.
2965
2966         * cspi/spi_value.c:
2967                 Fixed typos.
2968
2969         * idl/Hyperlink.idl:
2970                 Changed n_anchors attribute to nAnchors to keep naming
2971                         convention consistent.
2972
2973         * idl/Table.idl:
2974                 Made Table inherit from Bonobo::Unknown.
2975                 Added nSelectedColumns and nSelectedRows attributes.
2976
2977         * idl/Value.idl:
2978                 Made Value inherit from Bonobo::Unknown.
2979
2980         * libspi/hyperlink.c:
2981                 Change for nAnchors attributte name change.
2982
2983
2984 <2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
2985
2986         implementations-- made server implementations own AtkObject pointers
2987         rather than their respective AtkInterrface pointers to fix
2988         refcounting.  AtkHyperlink is still broken.
2989
2990 <2001-09-04  Bill Haneman <bill.haneman@sun.com>
2991         * cspi/spi_accessible.c:
2992                 Added method Accessible_Role_getName(),
2993                         and requisite string array (role_names).
2994                 Added conversion string_from_corba_strin() call
2995                         to Accessible_getName and _getDescription.
2996         * libspi/accessible.c:
2997                 Added implementation for Accessible_getRole()
2998         * test/simple-at.c:
2999                 Added festival support, used if environment variable
3000                         FESTIVAL is set.
3001         
3002 2001-09-04  Bill Haneman <bill.haneman@sun.com>
3003
3004         * at-bridge/bridge.c:
3005             Now allocate Accessibility_Event using
3006             Accessibility_Event__alloc() instead of g_new0().
3007         * libspi/accessibleeventlistener.c:
3008             Initialize AccessibleEventListener->callbacks to NULL.
3009             Fixed accessible__event_listener_init() param, changed to
3010             "AccessibleEventListener *" type.
3011             Changed a bonobo_object_release_unref() call to
3012             Accessibility_Accessible_unref().
3013         * libspi/listener.c:
3014             Changed Bonobo_Unknown_unref to (equivalent) 
3015             Accessibility_Accessible_unref.
3016         * libspi/registry.c:
3017             Changed bonobo_object_release_unref to 
3018             Accessibility_Accessible_unref.
3019         
3020 <2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
3021         
3022         * Added files:
3023             spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
3024             spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
3025             spi-util.c spi-util.h
3026             Implementations for C bindings to remaining accessibility 
3027             interfaces.
3028
3029 <2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
3030         
3031         * idl/Action.idl:
3032             changed return value of Action from void to boolean to 
3033             bring in line with ATK.
3034
3035         * idl/Text.idl:
3036             Changed getText funcions to return "out" start and end offsets.
3037             Changed getAttributes to take and offset and return the start 
3038             and end offset of the attribute run.
3039             Changed getOffsetAtPoint and getCharacterExtents to take an 
3040              enum describing whether coordinates are window or screen.
3041
3042         * Added files:
3043             libspi/action.c libspi/action.h libspi/editabletext.c 
3044             libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
3045             libspi/hypertext.c libspi/hypertext.h libspi/image.c 
3046             libspi/image.h libspi/selection.c libspi/selection.h
3047             libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
3048             libspi/value.c libspi/value.h
3049             Added server implementations for outstanding ATK interfaces 
3050             not yet implemented.
3051  
3052 2001-09-04  Bill Haneman <bill.haneman@sun.com>
3053
3054         * idl/Action.idl:
3055                 Added (missing) getName() method. 
3056                 Made nActions an attribute.
3057         * idl/EditableText.idl:
3058                 Changed order of params in setAttributes.
3059         * idl/Hyperlink.idl:
3060                 Removed getAnchor, added getURI.
3061         * idl/Image.idl:
3062                 Changed attributes to methods, for efficiency
3063                 (so that getting extents can be done in one call)
3064         * idl/Selection.idl:
3065                 Changed nSelectedChildren to attribute, and re-indented.
3066         * idl/Table.idl: changed nrows, ncolumns, caption, summary 
3067                 to attributes.
3068         * idl/Text.idl: reformatted to match our coding style.
3069                 (temporarily?) removed getRowColumnAtOffset().
3070                 Changed text selection API to support multi-select and
3071                 non-contiguous selections, as in ATK.
3072         * idl/Value.idl: changed some methods to attributes.
3073
3074 2001-08-24  Mark McLoughlin <mark@skynet.ie>
3075
3076         * libspi/listener.c(impl_notify_event):
3077         BonoboUnkown_unref the source instead
3078         of bonobo_object_release_unref - the ORB
3079         handles the releasing.
3080
3081         * configure.in: require ORBit-2.3.94 for
3082         this behaviour.
3083
3084 2001-08-21  Bill Haneman <bill.haneman@sun.com>
3085
3086         Tagged CVS repository 'EA_1_0'.
3087         * README.EARLY_ACCESS:
3088         Alphabetized acknowledgements list, and
3089         added someone.
3090         Listed some known dependencies of at-spi.
3091
3092 2001-08-20  Bill Haneman <bill.haneman@sun.com>
3093
3094         * docs/at-spi-docs.sgml:
3095         * docs/at-spi-sections.txt:
3096         * docs/at-spi-overrides.txt: (Added zero-length file)
3097         Documentation improvements - gtk-doc should build
3098         docs for all implemented C bindings now.
3099         * cspi/Makefile.am:
3100         * cspi/spi_main.c:
3101         * cspi/spi.c: (New file)
3102         * cspi/spi_event.c: (New file)
3103         * cspi/spi_registry.c: (New file)
3104         * cspi/spi_accessible.c: (New file)
3105         * cspi/spi_application.c: (New file)
3106         * cspi/spi_component.c: (New file)
3107         Split spi_main.c into six parts, and included them from
3108         "spi.c".  This is a bit of a hack, probably temporary,
3109         but required by gtk-doc, apparently.
3110         
3111 2001-08-20  Bill Haneman <bill.haneman@sun.com>
3112
3113         * docs/Makefile.am:
3114         * docs/at-spi-docs.sgml:
3115         * docs/at-spi-sections.txt:
3116         * configure.in:
3117         Initial checkins/modifications for gtk-doc generation.
3118         * cspi/spi.h:
3119         * cspi/spi.c:
3120         Added (missing) interface query methods to Accessible's C binding.
3121         * cspi/spi-impl.h:
3122         Added GenericInterface type definition.
3123         * test/simple-at.c:
3124         Added query for AccessibleComponent interface to focus event handler.
3125         Added printout of bounding box for focussed component.
3126         * libspi/component.c:
3127         Added partial implementation for AccessibleComponent to C binding.
3128         * idl/Application.idl:
3129         * libspi/registry.c:
3130         * libspi/listener.c:
3131         * libspi/application.c:
3132         * libspi/application.h:
3133         Changed "ID" attribute type from string to long.
3134
3135 2001-08-19  Bill Haneman <bill.haneman@sun.com>
3136
3137         * cspi/spi.h:
3138         * cspi/spi.c:
3139         Made method naming consistent: methods taking object args
3140         start with uppercase, other methods (except those using
3141         acronyms) start with lowercase.  Underscores delimit between
3142         object names and method names:
3143         SPI_init() - uppercase since it starts with an acronym.
3144         getDesktopCount () - lowercase start since no object param0.
3145         Accessible_getName() - uppercase object type name, studlyCaps method
3146                                name.
3147
3148         *cspi/spi.h:
3149         Added gtk-doc documentation for all currently implemented
3150         methods in the C bindings API.
3151
3152 2001-08-18  Bill Haneman <bill.haneman@sun.com>
3153
3154         * Makefile.am : changed build order to build test last.
3155         * cspi/spi.h :
3156         * cspi/spi_main.c :
3157         Changed "createEventListener" to "CreateEventListener".
3158         * libspi/accessibleeventlistener.c :
3159         Bugfix for addition of callbacks.
3160         * test/Makefile.am :
3161         * test/simple-at.c :
3162         Added new test that uses the C bindings API.
3163         * idl/Event.idl :
3164         * libspi/listener.c :
3165         * libspi/registry.c :
3166         * libspi/accessibleeventlistener.c :
3167         * at-bridge/bridge.c :
3168         Renamed member "target" of Accessibility_Event to "source",
3169         which is more descriptive.
3170         
3171
3172 2001-08-18  Bill Haneman <bill.haneman@sun.com>
3173
3174         * Makefile.am: 
3175         * configure.in :
3176         * cspi/Makefile.am :
3177         Added makefile support for at-spi/cspi directory.
3178         * cspi/spi.h : 
3179         * cspi/spi-impl.h :
3180         * cspi/spi-listener.h : (NEW FILE)
3181         Added support for/use of spi-listener.h.
3182         * cspi/spi_main.c :
3183         C bindings now build successfully, with no warnings.
3184         * libspi/accessibleeventlistener.h : (NEW FILE)
3185         * libspi/accessibleeventlistener.c : (NEW FILE)
3186         * libspi/Makefile.am :
3187         Added new object type "AccessibleEventListener"
3188         which inherits from Listener, and allows attachment
3189         of in-process callbacks (so that a client with a listening
3190         object instance can add functionality to the local 
3191         implementation, dynamically).
3192
3193 2001-08-18  Bill Haneman <bill.haneman@sun.com>
3194
3195         * libspi/accessible.c: 
3196         Add implementation for get_index_in_parent().
3197         * cspi/spi.h : 
3198         Added #include of "spi-roletypes.h", and
3199         added enumerated type AccessibleCoordType.
3200         Added definition for KeystrokeListener (function type).
3201
3202         ADDED FILES:
3203         * cspi/spi-statetypes.h :
3204         * cspi/spi-roletypes.h :
3205         * cspi/spi-impl.h :
3206         Added these headers, used by spi.h.
3207         * cspi/spi_main.c : 
3208         Added code (NOTE: not yet built by make).
3209
3210 2001-08-18  Mark McLoughlin <mark@skynet.ie>
3211
3212         * libspi/Makefile.am: generate imodule
3213         at the same time as other idl compiler 
3214         generated files. 
3215
3216 2001-08-17  Bill Haneman <bill.haneman@sun.com>
3217         * libspi/registry.c :
3218         * libspi/application.c :
3219         * idl/Application.idl :
3220         Made registration with toolkit an application method,
3221         which is required since each app has its own toolkit static
3222         environment.  Thus the bridge must register for 
3223         notification of toolkit events from each application in turn.
3224         Toolkit notifications are now successfully registered for, and
3225         sent to the listening at client.
3226         * test/at.c :
3227         Changed toolkit event string to use hyphens rather than underscores.
3228         * libspi/listener.c :
3229         listner now gives more info in debug mode - it reports the
3230         name of the event received, as well as the name of the source.
3231         
3232
3233 2001-08-16  Bill Haneman <bill.haneman@sun.com>
3234
3235         * libspi/registry.c :
3236         added more implementation for toolkit events.
3237         Fixed bug such that toolkit event registrations
3238         (via atk) use the whole event name string, not 
3239         just minor+detail.
3240         Removed a useless call to an ORBit_ method.
3241         * at-bridge/bridge.c :
3242         Removed unused local sbuf[] variable.
3243         * test/at.c :
3244         We now register for Gtk:GtkWidget:button_press_event 
3245         events as well as "focus:" events.
3246         * cspi/spi.h :
3247         Add some more API from Registry.idl that was missing,
3248         for keystroke listening, keystroke and mouse event
3249         synthesis, and enumeration of accessible desktops.
3250
3251 2001-08-16  Michael Meeks  <michael@ximian.com>
3252
3253         * configure.in: use AM_GLIB_GNU_GETTEXT.
3254
3255         * Makefile.am (SUBDIRS): kill intl.
3256
3257 2001-08-15  Michael Meeks  <michael@ximian.com>
3258
3259         * registryd/Makefile.am: s/oaf/server/ relocate info file.
3260
3261         * configure.in: upd.
3262
3263         * configure.in: depend on a recent bonobo-activation that
3264         will find our server files ...
3265
3266 2001-08-16  Bill Haneman <bill.haneman@sun.com>
3267
3268         * libspi/accessible.c : accessible_new() :
3269         Now we add the Component interface via bonobo_object_add_interface,
3270         if the contained AtkObject implements AtkComponent.
3271         * libspi/accessible.h : now include "component.h"
3272         * libspi/component.h :
3273         * libspi/component.c : added files - implementation of
3274         bonobo wrapper object for Accessibility/Component
3275         * libspi/listener.c :
3276         Added test code to check for Accessibility/Component:1.0
3277         interface and report whether it is implemented by the
3278         event source.
3279         * libspi/registry.c :
3280         Now we check for not only the hash of the whole event 
3281         string before relaying the event, we also check the
3282         "minor" event string (without the detail string).
3283         This allows event listeners to be registered against
3284         all events of a certain major+minor type, or just
3285         against a specific major+minor+detail type.
3286         * libspi/accessible.c :
3287         Added implementations for Accessible:get_parent(),
3288         Accessible:getChildCount(), and Accessible:getChildAtIndex().
3289         * libspi/registry.c :
3290         * libspi/listener.c :
3291         Replaced calls to Accessibility_Accessible_ref() and
3292         Accessibility_Accessible_unref() with 
3293         calls to bonobo_object_dup_ref() and 
3294         bonobo_object_release_unref(), so that the CORBA object
3295         is dup-ed and released when relayed, as well as the bonobo object.
3296
3297 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3298
3299         * libspi/Makefile.am,
3300           registryd/Makefile.am,
3301           at-bridge/Makefile.am.
3302           test/Makefile.am, configure.in:
3303         reverse previous changes.
3304
3305         * /idl/Image.idl: fix typo.
3306
3307         * test/Makefile.am: put DEBUG_FLAGS
3308         in CFLAGS.
3309
3310 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3311
3312         * test/app.c: use argv[0] instead of
3313         g_type_prgname.
3314
3315 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3316
3317         * libspi/Makefile.am,
3318           registryd/Makefile.am,
3319           at-bridge/Makefile.am.
3320           test/Makefile.am, configure.in:
3321         cleanup, replace individual LIBS/CFLAGS with
3322         AT_COMMON_{LIBS|CFLAGS}.
3323
3324         * README: format.
3325
3326 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3327         
3328         * configure.in, libspi/Makefile.am:
3329         Change IDL path checking for bonobo-activation
3330         as opposed to oaf.
3331
3332 2001-08-15  Bill Haneman <bill.haneman@sun.com>
3333
3334         * registryd/registry.c : separated event listeners to use
3335         3 separate lists (focus, window, toolkit).  Began testing
3336         event names against hashes before relaying events.
3337         * test/at.c : now register for events of type "focus:"
3338         * test/app.c : now generate events of type "focus:"
3339         * at-bridge/bridge.c : register with ATK for focus events,
3340         and we now relay those focus events to any "focus:" listeners.
3341         This now works with the bridge as a GTK_MODULE when running test/at.
3342         * libspi/registry.c :
3343         * libspi/listener.c : 
3344         now we ref event sources before propagating, and unref on receipt.
3345         * libspi/registry.c : 
3346         some changes to internal structs, to support event typestring hashes.
3347         * text/app.c : changed the way the appname is generated.
3348         * cspi : added directory that will hold the C bindings library for 
3349                 non-CORBA/bonobo-savvy clients.
3350         * cspi/spi.h : header file that contains the function prototypes for the C binding.
3351         * idl/Component.idl : added in parameter to indicate coord system for
3352                 geometry-related calls.
3353         * idl/Hyperlink.idl : added readonly n_links attribute
3354         * idl/Image.idl : changed methods to attributes.
3355         
3356 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3357
3358         * at-bridge/Makefile.am: link against
3359         ../libspi/libspi.la instead of -lspi.
3360
3361         * at-spi/test/app.c: include 
3362         bonobo-activation.h. Use a default appname
3363         if one is not provided.
3364
3365 2001-08-14  Bill Haneman <bill.haneman@sun.com>
3366
3367         * idl/Registry.idl : temporarily changed register_Application
3368         to oneway, to work around issue with initial registration 
3369         re-entrancy.
3370         * idl/Application.idl : changed attribute "id" from readonly 
3371         to read-write, since it needs to be assigned by Registry.
3372         * registryd/registryd.c : added call to set application id 
3373         on registration.
3374         * registryd/registry.c : changed de-registration procedure to
3375         use CORBA_Object_hash() to find matching object ref in application
3376         lists and listener lists.
3377         * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
3378         began distinguishing between event types (work in progress).
3379
3380 2001-08-13  Bill Haneman <bill.haneman@sun.com>
3381
3382         CHANGES:
3383         * libspi/application.c:
3384         Added implementations for get/set id, get_toolkitName,
3385         get_version.
3386         * registryd/registryd.c :
3387         * test/at.c :
3388         * test/app.c :
3389         * Makefile.am :
3390         Converted from use of OAF to bonobo-activation.
3391         * libspi/desktop.h :
3392         * libspi/desktop.c :
3393         * test/app.c :
3394         Removed references to atksimpleobject, since base atkobject
3395         implementation now provides functionality we need.
3396         * libspi/atksimpleobject.c :
3397         * libspi/atksimpleobject.h :
3398         Removed.
3399         
3400         ADDITIONS:
3401         * at-bridge
3402         * at-bridge/Makefile.am
3403         * at-bridge/bridge.c
3404         * configure.in
3405         * Makefile.am
3406         Added directory "bridge" and contents, and added dependencies
3407         in Makefile.am/configure.in.  
3408         Initial checkin of "at-bridge".
3409         This code is a GTK_MODULE which automatically registers
3410         GTK+ apps with the accessibility registry, using an object
3411         reference to the root ATK object.
3412         
3413 2001-08-10  Mark McLoughlin <mark@skynet.ie>
3414
3415         * po/Makefile.in.in: Remove. Again. If this
3416         doesn't get autogenerated - you need to update
3417         gnome-common.
3418
3419 2001-08-07  Mark McLoughlin <mark@skynet.ie>
3420
3421         * po/Makefile.in.in: Add. Again.
3422
3423 2001-07-31  Bill Haneman <bill.haneman@sun.com>
3424
3425         * libspi/accessible.c : added support for 'description' property.
3426         * libspi/accessible.c
3427         * libspi/desktop.c
3428         * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
3429             (since the two are now equivalent in libbonobo)
3430         * idl/Action.idl
3431         * idl/Component.idl
3432         * idl/Hyperlink.idl
3433         * idl/Image.idl
3434         * idl/Selection.idl
3435         * idl/Table.idl
3436         * idl/Text.idl
3437         * idl/Value.idl : changed these 'secondary' interfaces to inherit from
3438              Bonobo::Unknown as does Accessibility::Accessible.
3439         * idl/StreamableContent.idl : as above, and replaced internal InputStream
3440              interface with Bonobo::Stream, since it was redundant with it.
3441              (The Stream returned by a StreamableContext object is expected to
3442              implement only a subset of Bonobo::Stream)
3443
3444 2001-07-28  Anders Carlsson  <andersca@gnome.org>
3445
3446         * libspi/accessible.c (accessible_object_finalize): Change
3447           g_free to g_object_unref since the AtkObject is a GObject.
3448
3449 2001-07-30  Bill Haneman <bill.haneman@sun.com>
3450
3451         * idl/Accessibility.idl: add new IDL files
3452         
3453         Added:
3454         * idl/Action.idl: Definitions of actionable UI object
3455         * idl/Component.idl: Definitions of UI component geometry, etc.
3456         * idl/Hyperlink.idl: Defs of hyperlink behavior
3457         * idl/Image.idl: Def of accessible image
3458         * idl/Selection.idl: Definition of UI object with selectable children
3459         * idl/StreamableContent.idl: Definition of UI object with streamable backing data
3460         * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
3461         * idl/Text.idl: Interface defs for UI elements with complex textual content
3462         * idl/Value.idl: Definition of UI element that is a value controller or display
3463         
3464 2001-07-27  Michael Meeks  <michael@ximian.com>
3465
3466         * po/Makefile.in.in: remove autogenerated file from CVS.
3467
3468         * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
3469         type library.
3470
3471         * idl/Registry.idl: include guard.
3472
3473         * idl/Accessibility.idl: Add, and include all the other IDL
3474         files.
3475
3476         * idl/*.idl: remove mass of pragmas etc.
3477
3478 2001-07-26  Michael Meeks  <michael@ximian.com>
3479
3480         * registryd/Makefile.am (registryd_SOURCES): remove
3481         redundant at_.
3482
3483 2001-07-27  Mark McLoughlin <mark@skynet.ie>
3484
3485         * libspi/.cvsignore, registryd/.cvsignore,
3486           test/.cvsignore: updated.
3487
3488         * po/Makefile.in.in: gettext update.
3489
3490 2001-07-25  Bill Haneman <bill.haneman@sun.com>
3491
3492         * initial CVS checkin
3493
3494 2001-06-29  Michael Meeks  <michael@ximian.com>
3495
3496         * configure.in: add AM_CONFIG_HEADER to gen config.h
3497
3498         * acconfig.h: add.
3499