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