* cspi/spi-accessible.c: Correct names of roles returned by
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
1 2002-10-08  Padraig O'Briain  <padraig.obriain@sun.com>
2
3         * cspi/spi-accessible.c: Correct names of roles returned by
4         AccessibleRole_getName(). Fixes bug #95055.
5
6 2002-10-03  Padraig O'Briain  <padraig.obriain@sun.com>
7
8         * cspi/spi_main.c (report_leaked_ref): Report address of leaked
9         object.
10
11         * registryd/registry.c
12         (desktop_remove_application: Write diagnostic message to stderr for
13         consistency.
14
15         (impl_accessibility_registry_deregister_global_event_listener):
16         Correct size of lists array. This addresses bug #94555).
17
18 2002-09-24  Padraig O'Briain  <padraig.obriain@sun.com>
19
20         * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
21         in some role names.
22
23 2002-09-19  Padraig O'Briain  <padraig.obriain@sun.com>
24
25         * registryd/Makefile: Add CLEANFILES so that .server file is removed
26         on make clean
27
28         * registryd/registry.c (impl_registry_notify_event): Remove
29         unnecessary call to parser_event_type().
30
31         * docs/reference/cspi/tmpl/spi_component.sgml:
32         Add reference to SPI_LAYER_WINDOW.
33
34 2002-09-17  Padraig O'Briain  <padraig.obriain@sun.com>
35
36         * registryd/registry.c
37         (desktop_add_application): Remove leak.
38         (desktop_remove_application): Remove leak.
39         (parser_event_type): Remove leak.
40
41 2002-09-16  Padraig O'Briain  <padraig.obriain@sun.com>
42
43         * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
44         bogus call to CORBA_string_dup(). Also removed unnecessary
45         g_string_dup/g_free calls.
46         
47 2002-09-13  Bill Haneman <bill.haneman@sun.com>
48
49         * registryd/deviceeventcontroller.c:
50         spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
51
52         * test/event-listener-test.c:
53         main: commented out three redundant listeners, to reduce output
54         noise. (They still are potentially useful for testing).
55         
56
57 2002-09-13  Michael Meeks  <michael@ximian.com>
58
59         * Update all the copyrights to include Ximian.
60
61 2002-09-06  Mark McLoughlin  <mark@skynet.ie>
62
63         * cspi/spi.h: add SPI_LAYER_WINDOW.
64
65         * cspi/spi_component.c: (AccessibleComponent_getLayer):
66         add Accessibility_LAYER_WINDOW case.
67
68         * idl/Accessibility_Component.idl: add LAYER_WINDOW.
69
70         * libspi/component.c: (impl_accessibility_component_get_layer):
71         add ATK_LAYER_WINDOW case.
72
73 2002-08-28  Bill Haneman <bill.haneman@sun.com>
74
75         * configure.in: incremented micro version.
76
77         * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
78
79 2002-08-20  Bill Haneman <bill.haneman@sun.com>
80
81         * HACKING: 
82         Clarified and reworded our commit policy.
83
84         * NEWS:
85         Started an API "todo" addition list for 2.2.
86
87         * libspi/text.c:
88         (impl_getSelection):
89         Free char pointer from atk_text_get_selection, which was being leaked.
90
91 2002-08-19  Bill Haneman <bill.haneman@sun.com>
92
93         * AUTHORS: 
94         Small revision to author acknowledgement.
95
96 2002-08-19  Padraig O'Briain  <padraig.obriain@sun.com>
97
98         * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
99         If signal has detail add it to the type of the event.
100         (bug #90838)
101         
102 2002-08-12  Michael Meeks  <michael@ximian.com>
103
104         * test/test-simple.c (global_listener_cb): bin bogosity.
105         (test_keylisteners): disable, still doesn't work reliably,
106         certainly not on my system anyway.
107
108         * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
109         don't leak a reference on the DEC. This round-trip
110         fetching of the DEC per keystroke sucks, it should be
111         cached.
112
113         * cspi/spi-private.h,
114         * cspi/cspi-lowlevel.h,
115         * cspi/bonobo/cspi-bonobo-listener.[ch],
116         * cspi/bonobo/cspi-bonobo.c: get the copyright
117         notices better - there is still a large amount of
118         work in at-spi falsely attributed solely to Sun.
119
120         * cspi/spi_main.c (cspi_object_ref): kill bogus
121         hash lookup, just increment the ref.
122         (SPI_freeString): make explicit the fact that we
123         handle NULL strings just fine.
124         (report_leaked_ref): obey coding standards.
125         (cspi_object_hash, cspi_object_equal): kill retval.
126         (cspi_object_release): only release if not on loan.
127         (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
128         (cspi_object_borrow, cspi_object_return): impl.
129
130         * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
131         use cspi_object_borrow / return.
132
133 2002-08-12  Darren Kenny  <darren.kenny@sun.com>
134
135         * cspi/bonobo/cspi-bonobo-listener.c: 
136         (cspi_event):
137         Don't call cspi_oject_new() because this is creating a new Accessible
138         every single time that an event is fired. This causes ATs like at-poke
139         to nolonger recognise the source of the event and thus ignore it.
140         Re-use the object from the cache, ref it and then unref it after the
141         listeners have been called.
142
143 2002-08-06  Darren Kenny  <darren.kenny@sun.com>
144
145         * test/event-listener-test.c: 
146         Added command-line options to disable mouse events (m) and
147         show usage (h). 
148
149 2002-07-31  Padraig O'Briain  <padraig.obriain@sun.com>
150
151         * configure.in: Update required versions of ATK, GTK+ and GAIL
152
153         * cspi-1.0.pc.in: Add dependency for X include files
154
155         * cspi/Makefile.am:
156         * cspi/bonobo/Makefile.am: 
157         Add $(X_CFLAGS) so that X include files 
158         are picked up even if not in standard place (bug #71686)
159
160 2002-06-25  Bill Haneman  <bill.haneman@sun.com>
161
162         * registryd/deviceeventcontroller.c: fix for 84261
163         (spi_dec_mouse_moved):
164         Added test of mouse button mask, so that we can detect mouse
165         button release.  Unfortunately we can't otherwise detect mouse
166         button release events without consuming the mouse press event,
167         because of the way XGrabButton works.  This means that our mouse
168         release events have a latency dependent on the polling period
169         while the mouse button is down.  At least in this case we only
170         have to poll while the button is down, and not at other times.
171         If the button masks don't match with what the last press event
172         reported, we report the appropriate button release event.
173         (spi_dec_ungrab_mouse):
174         New method (not yet called).
175         (spi_device_event_controller_forward_mouse_event):
176         New method, sends mouse press event from GdkFilter.
177         (spi_dec_init_mouse_listener):
178         Added code to call XGrabButton, redirecting mouse button events to
179         the root window and our Gdk event loop.
180         (global_filter_fn):
181         Added code to filter mouse button events, and reordered.
182         
183         * test/event-listener-test.c:
184         (main):
185         Added registration for mouse events of type "mouse:button".
186
187 2002-06-25  Bill Haneman  <bill.haneman@sun.com>
188
189         * registryd/deviceeventcontroller.c: partial fix for 84261
190         (spi_dec_poll_mouse_idle):
191         New method, a timeout which checks to see if the mouse
192         has moved.
193         (spi_dec_poll_mouse_moving):
194         A timeout to be called when mouse motion is underway.
195         (spi_dec_poll_mouse_moved):
196         A method which fires an event if the mouse has moved, and reports
197         whether or not it did so. 
198         (spi_dec_init_mouse_listener):
199         A method which sets up the timeouts above.
200         (spi_device_event_controller_new):
201         Now calls spi_dec_init_mouse_listener.
202
203         * registryd/registry.c:
204         (spi_registry_init):
205         Now we initialize the device event controller when the registry is
206         initialized, instead of waiting until a client has requested a key
207         event notification; this is because we need the event controller
208         for mouse events, but the mouse event registration API is a
209         "registry" call and doesn't explicitly call the 
210         deviceeventcontroller.
211         We now report mouse motion events with a 100 ms idle latency and
212         a 20 ms granularity when motion is in progress.
213
214         * test/event-listener-test.c:
215         (main):
216         We now register the "detail listener" for events of type 
217         "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
218         delivered only for the first mouse event received, and thereafter
219         "mouse:abs" events are delivered.)
220
221         * cspi/spi_registry.c:
222         DOCS: Documented the above mouse event typestrings.
223         
224 2002-06-21  Bill Haneman  <bill.haneman@sun.com>
225
226         Happy Summer Solstice...
227
228         * registryd/deviceeventcontroller.c: [fix for bug 84100]
229         (spi_controller_notify_keylisteners):
230         Changes to remove a listener from the listener list, freeing its
231         open keygrabs, if a notification to that listener fails.  This
232         means that although a dead listener can continue to hold a passive
233         keygrab, a maximum of one dispatch to such a listener can fail
234         before the listener is removed from the list, thus the keygrab
235         will be released on the next occurrence.
236         As part of this fix:
237         (spi_notify_keylisteners):
238         Renamed to spi_controller_notify_keylisteners, as the controller
239         instance must now be passed as an argument.
240         The copied 'notify' GList is now a list of DEControllerKeyListener
241         objects, since we need more than just the CORBA reference if a
242         notify fails and we need to deregister the listener.
243         (impl_notify_listeners_sync):
244         (impl_notify_listeners_async):
245         (spi_device_event_controller_forward_key_event):
246         Modify use of notify_keylisteners in accordance with above
247         changes.
248         (spi_deregister_controller_key_listener):
249         New method introduced by refactoring, from 
250         impl_deregister_keystroke_listener.
251         (impl_deregister_keystroke_listener):
252         Call spi_deregister_controller_key_listener.
253         (spi_key_listener_clone):
254         New method to copy a key listner without doing a 'ref' on the
255         remote object instance; used to create a notifier list.
256         (spi_key_listener_data_free):
257         New method, frees data without unreffing the source.
258         Used in refactor.
259         (spi_key_listener_clone_free): new method.
260         (spi_key_listener_free): 
261         refactored to call spi_key_listener_data_free.
262         
263 2002-06-20  Bill Haneman  <bill.haneman@sun.com>
264
265         * registryd/registry.c: [fix for bug 86048]
266         (notify_listeners_cb):
267         Clear CORBA system exceptions which occur when notifying
268         listeners, before returning to the source of the original event,
269         since the event source doesn't care if the relayed notify failed.
270         In other words, don't complain to the atk-bridge if the registry
271         could not notify all its listeners, that's no fault of the
272         application and thus should not appear to be an error from the
273         application's perspective.
274         
275         * cspi/spi_main.c: [fix for bug 85980]
276         (cspi_object_ref):
277         Replaced use of bonobo_object_dup_ref with call to the wrapper
278         method, csou_dup_ref (); this silences a compiler warning and
279         provided more portability.
280         (cspi_registry):
281         Ping the registry before return, and restart if necessary.
282
283         * cspi/bonobo/cspi-bonobo.c:
284         (cspi_ping):
285         New internal method.
286         (cspi_dup_ref):
287         Fixed this method to return an object reference, as it should have
288         all along.
289
290         * cspi/cspi-lowlevel.h:
291         Added internal definition for cspi_ping() and fixed 
292         return type of cspi_dup_ref().
293         
294
295 2002-06-19  Bill Haneman  <bill.haneman@sun.com>
296
297         * atk-bridge/bridge.c:  [fix for bug 85305]
298         (spi_atk_bridge_register_application):
299         New method where the initial application registry calls have been
300         moved; it allows an application to re-register in response to
301         certain error conditions (such as a registry restart, see below).
302         (atk_bridge_init):
303         Moved some initialization code to the method
304         spi_atk_bridge_get_registry, below.
305         (spi_atk_bridge_get_registry):
306         New, private accessor function for the Accessibility_Registry
307         instance.  If the registry has not been started before, or has
308         died (as detected by failure of a CORBA exception), it is
309         restarted before return, and spi_atk_bridge_register_application
310         is called again to register with the new bridge instance.
311         (spi_atk_emit_eventv):
312         Set registry_died on error; use spi_atk_bridge_get_registry () to
313         access the registry.
314         
315         * registryd/registry.c:
316         (impl_accessibility_registry_register_global_event_listener):
317         Set listener's event_type_quark to etype.minor instead of
318         etype.major (fix for bug 84856).
319
320         * test/event-listener-test.c:
321         (report_detail_event):
322         Change the output string so that user/tester can tell that the
323         'detail listener' was called instead of the 'generic listener'.
324         
325 2002-06-18  Bill Haneman  <bill.haneman@sun.com>
326
327         Fixes for bugs 84900, 84908, 84897, 84898.
328
329         * NEWS: updated.
330         
331         * configure.in:
332         Revved version to 1.1.0 
333         (reserving the 1.0.X branch for gnome-2-0-0 branch, this
334         version is going to HEAD which will be used for gnome-2-0-1 and later.)
335         
336         * idl/Accessibility_Registry.idl:
337         (EventListener::notifyEvent):
338         Removed 'oneway' directive after extensive consulation with
339         ORBit2 team and others.  This means also that unref() of the event
340         source can and should be done synchronously after emission, rather
341         than remotely in the client, after servicing the notify call on
342         the listener side.
343
344         NOTE: This change speeds up listener performance considerably, but
345         introduces new latency on the application side.  We may want to
346         add an event queue to the atk-bridge.
347
348         * atk-bridge/bridge.c:
349         (spi_atk_bridge_focus_tracker):
350         Do a local unref() on the event source after emission.
351         
352         * registryd/registry.c:
353         (desktop_remove_application):
354         Do an unref() on the event source after emission.
355         (desktop_add_application):
356         Do an unref() on the event source after emission.
357         (notify_listeners_cb):
358         When relaying an event, don't automatically add the event source
359         to the local object cache, just CORBA_dup it instead.  Likewise,
360         if this method reenters, release the ref rather than calling
361         unref() as well.
362         (impl_registry_notify_event):
363         No longer call remote unref() on the event source after dispatch.
364
365         * libspi/eventlistener.c:
366         (impl_accessible_event_notify_event):
367         Removed remote unref ()
368         
369         * cspi/bonobo/cspi-bonobo-listener.c:
370         (cspi_event):
371         We now call cspi_object_new() instead of cspi_object_add() on
372         receipt of an event; thus we only have an implicit object ref
373         while the cspi_event method is being executed.  If we need to keep
374         a reference to the object, the listener must call ref() on the
375         object.  Thus also we don't need to call cspi_object_unref() after
376         invoking the listener callbacks in this method.
377         
378         * cspi/spi_main.c:
379         (cspi_object_new):
380         New internal API for creating a new cspi object, without adding it
381         to the object cache.
382         (cspi_object_add):
383         Now uses cspi_object_new() to create the cspi object instance.
384         (cspi_object_ref):
385         Now checks to see if the object is in the internal object cache,
386         and adds it if necessary before incrementing its refcount (note
387         that new objects are added with a refcount of 1).
388         (report_leaked_ref):
389         New method which gives some information on leaked object instances
390         if leak detection is turned on.
391
392         * test/event-listener-test.c:
393         (timing_test_event):
394         New method, used for testing event delivery timing for special
395         events of type "object:test".  It reports elapsed time and
396         events/sec every 500 events.
397         (main):
398         Added a new listener, 'test listener', to check timing of event
399         receipt as noted above.
400         (report_event):
401         Added some timing output here also, reports elapsed time every 100
402         events.
403
404         * test/stress-test.c:
405         Emit events of type "object:test", for use with "event-listener-test".
406
407         * test/test-simple.c:
408         (global_listener_cb):
409         Call Accessible_ref() on the event source before calling
410         validate_accessible, since the validation process does pointer
411         comparisons on the event source, meaning that the event source
412         needs to be added to the local object cache first.  Any use of
413         such pointer comparisons between Accessible objects requires that
414         the caller hold an explicit reference to those objects.
415         We also must therefore call Accessible_unref() when leaving this method.
416
417 2002-06-13  Bill Haneman  <bill.haneman@sun.com>
418
419         * registryd/deviceeventcontroller.c:
420         (spi_controller_update_key_grabs):
421         Fix for #84735, subsequent keygrab listeners not informed of
422         registration failure.
423
424         * libspi/base.c:
425         (spi_base_construct):
426         Add an assertion on construct, to make sure the GObject passed in
427         is really a GObject.
428         (spi_base_init):
429         Explicitly initialize object->gobj pointer to NULL;
430
431         * cspi/bonobo/cspi-bonobo-listener.c:
432         (cspi_object_add_ref):
433         New method, can specify whether to dup-ref a bonobo object passed
434         in if it's newly added to the object cache.
435         (cspi_object_add):
436         Now calls cspi_object_add_ref with second param of "FALSE".  This
437         prevents us from doing a pointless dup-ref followed by
438         release-unref for all those cases where the object is already in
439         our object cache (fix for #85205).
440
441         * atk-bridge/bridge.c:
442         (spi_atk_bridge_idle_init):
443         Removed this method, we don't need to initialize in an idle
444         handler anymore;
445         (atk_bridge_init):
446         Changed to call spi_atk_register_event_listeners directly, not via an
447         idle handler. (fix for #81139)
448         (gnome_accessibility_module_shutdown):
449         Removed conditional around deregistration of listeners, since we
450         don't use the idle handler and thus have always registered when
451         shutdown is called.
452         (spi_init_keystroke_from_atk_key_event):
453         Changed references to Accessibility_KEY_PRESSED to 
454         Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
455         
456 2002-06-12  Bill Haneman  <bill.haneman@sun.com>
457
458         (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
459         
460         * configure.in:
461         Revved to 1.0.1
462
463         * test/stress-test.c:
464         Added file.
465
466         (may have been an incomplete commit yesterday?)
467
468 2002-06-12  Bill Haneman  <bill.haneman@sun.com>
469
470         * test/Makefile.am:
471         Added target for new stress-test.
472         
473         * test/stress-test.c:
474         New test, sends 1000 focus notifies in quick succession.
475
476         * test/key-listener-test.c:
477         Now we report whether a keylistener registration
478         request succeeded or failed.
479
480         * test/event-listener-test.c:
481         Uncommented some listeners which are now implemented.
482
483
484 2002-06-06  Bill Haneman  <bill.haneman@sun.com>
485
486         * registryd/deviceeventcontroller.c:
487         (spi_controller_update_key_grabs):
488         Fix for #82509, lack of failure notification when
489         ALL_WINDOWS keygrabs fail due to XGrabKey
490         failure: we synchronize the server when 
491         registering a passive grab, to make sure we get the
492         error message before the call returns.
493
494 2002-06-03  Bill Haneman  <bill.haneman@sun.com>
495
496         * test/test-simple.c:
497         (key_listener_cb):
498         Removed #ifdef KEY_IMPL_WORKS guards.
499         (test_keylisteners):
500         Removed #ifdef KEY_IMPL_WORKS guards.
501         Fixed bug which was causing a hang waiting for a 
502         "press" event (which was already overwritten by a "release" 
503         event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
504         (key_listener_cb):
505         Added code to set globals 'key_press_received' and
506         'key_release_received'.
507
508         * TODO:
509         Added section "1.1 API Proposed Additions" which
510         lists API additions desired for at-spi-1.1 (only one so far).
511         Updated TODO list a little.
512         
513 2002-06-02  Bill Haneman  <bill.haneman@sun.com>
514
515         AT-SPI 1.0 API FINAL: at-spi 1.0 is now
516         API frozen.
517         
518         * configure.in: Revved to 1.0.0.
519
520         * idl/Accessibility_Registry.idl:
521         (registerKeystrokeListener):
522         Added boolean return value.
523         
524         * registryd/registry.c:
525         (notify_listeners_cb): Minor fix to debug output.
526
527         * registryd/Accessibility_Registry.server.in.in:
528         Revved version number in OAFIID to 1.0.
529
530         * registryd/registryd.c:
531         (main):
532         Use new OAFIID version.
533
534         * cspi/bonobo/cspi-bonobo.c:
535         (cspi_init):
536         Use new OAFIID version.
537
538         * test/at.c:
539         (main):
540         * test/app.c:
541         (main):
542         * atk-bridge/bridge.c:
543         (atk_bridge_init):
544         Use new OAFIID version.
545
546         * registryd/deviceeventcontroller.c:
547         (impl_register_keystroke_listener):
548         Added CORBA_boolean return value.
549         (spi_controller_register_device_listener):
550         Added gboolean return value.
551         (spi_controller_register_global_keygrabs):
552         Added gboolean return value.
553         (spi_key_set_contains_key):
554         Added implementation for many more control keys,
555         for instance F1-F12, arrow keys, End, Home, Page_Up,
556         Page_Down, Escape.
557         [TODO: some still not implemented]. 
558         
559         * text/screen-review-test.c:
560         (text_chunk_pad_string):
561         New function: it provides mapping between coordinate
562         positions of text chunks and character positions in the
563         screen-review-line output string.
564         (text_chunk_to_string):
565         New function, calls text_chunk_pad_string with various
566         pad/delimiter characters. Pushbuttons are delimited with
567         square brackets, Frames with vertical 'pipe' lines, and 
568         other text with double quotes.
569         (text_chunk_list_to_string):
570         Calls new function text_chunk_to_string.
571         (toplevel_composite):
572         New function to composite layers CANVAS through
573         POPUP in each toplevel (other layers are composited
574         across toplevels, i.e. BACKGROUND and OVERLAY).
575         (review_buffer_composite):
576         Revise to use new methods.
577         
578         
579         
580         
581
582 2002-05-31  Laszlo Peter  <laca@sun.com>
583
584         * configure.in: add the Xtst libdir to the runpath on Solaris,
585         since it's not in the default library search path.
586
587 2002-05-29  jacob berkman  <jacob@ximian.com>
588
589         * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
590
591 2002-05-29  Bill Haneman  <bill.haneman@sun.com>
592
593         * test/screen-review-test.c:
594         (text_chunk_pad_string):
595         Added method, which pads the string according to the 
596         text bounds of the chunk.  It also takes a 3-character
597         string as a param which indicates the characters to be 
598         used for start, padding, and end delimitation of the chunk.
599         (text_chunk_to_string):
600         Changed to use text_chunk_pad_string.
601         
602         * configure.in: Fixed bug in AC_OUTPUT that was
603         causing path substitution in Accessibility_Registry.server
604         to fail.
605
606 2002-05-23  Bill Haneman  <bill.haneman@sun.com>
607
608         * text/screen-review-test.c:
609         (guess_string_clip):
610         New method which attempts a best-guess at clipping
611         text from components (like Java labels) which don't
612         actually implement AccessibleText.  This inaccurate
613         clip is based on the assumption that the label is
614         justified left-and-right, and monospaced.
615         (text_chunk_get_clipped_string):
616         We now call guess_string_clip() for text-containing
617         components that don't implement AccessibleText.
618
619         * test/screen-review-test.c:
620         (review_buffer_get_text_chunk):
621         We now pull "name" from labels if they do not implement
622         AccessibleText (i.e. for Java labels).
623         (get_screen_review_line_at):
624         Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
625
626         * configure.in:
627         Replaceded AC_OUTPUT target
628         registryd/Accessibility_Registry.server with 
629         registryd/Accessibility_Registry.server.in.
630
631         * registryd/Accessibility_Registry.server.in:
632         Removed (this is now a Makefile target).
633
634         * registryd/Accessibility_Registry.server.in.in:
635         Added (source for target above).  We now use $(libexecdir) as
636         prefix for the executable at-spi-registryd.
637
638         * registry/Makefile.am: 
639         Now install at-spi-registryd into $(libexecdir), and build .server
640         file with path (see above).
641         
642 2002-05-22  Bill Haneman  <bill.haneman@sun.com>
643
644         * test/screen-review-test.c:
645         (text_chunk_get_clipped_string):        
646         We now check to see if words fall within clip bounds 
647         before resorting to character-by-character clip bounds testing.
648
649         * TODO: Added a section for "2.2 Proposed API Additions".
650
651 2002-05-21  Bill Haneman  <bill.haneman@sun.com>
652
653         * test/screen-review-test.c:
654         * test/Makefile.am:
655         Added a screen review benchmarking and test program to test
656         directory.
657
658         * cspi/spi_accessible.c:
659         * cspi/spi_main.c:
660         Made some of the debug strings passed to cspi_check_ev a
661         little more specific.
662
663 2002-05-21  Padraig O'Briain  <padraig.obriain@sun.com>
664
665         * test/screen-review-test.c: Fix crashes in debug statements
666
667 2002-05-20  Bill Haneman  <bill.haneman@sun.com>
668
669         * test/screen-review-test.c: Added this file.
670
671 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
672
673         * atk-bridge/bridge.c: changed "object:state-change" to
674         "object:state-changed" to match docs.
675
676 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
677
678         * atk-bridge/bridge.c: Hooked up state-change event details.
679
680 2002-05-11  Bill Haneman <bill.haneman@sun.com>
681
682         * registryd/registry.c:
683         Fixed quarking bug in event string parsing; now events with
684         detail parameters get matched correctly to listeners.
685         [Bugzilla 80608].
686
687         * util/idl/Magnifier.idl: remove.
688         * util/idl: remove
689         * util/*.[ch]: Remove.
690         Magnification utilities and IDL are now in module gnome-mag.
691
692 2002-05-10  Bill Haneman <bill.haneman@sun.com>
693
694         * registryd/deviceeventcontroller.c:
695         Fixed bug in grab key conversion which was causing keycode grabs
696         to be converted to AnyKey grabs.
697
698         * NEWS:
699         updated NEWS file to reflect recent spin-off of gnome-mag.
700
701 2002-05-09  Marc Mulcahy <marc.mulcahy@sun.com>
702
703         * cspi/spi_accessible.c: Added exception checks.  Fixed completely
704         busted AccessibleStateSet_compare.  Removed redundant casts.
705         
706         * cspi/spi-action.c: Removed redundant casts.
707
708         * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
709
710         * cspi/spi_component.c: Fixed typos and casting error.
711
712         * cspi/spi_editabletext.c: Removed redundant casts.
713
714         * cspi/spi_hyperlink.c: Fixed casting and exception checking.
715
716         * cspi/spi_hypertext.c: Eliminated redundant casts.
717
718         * cspi/spi_image.c: Eliminated redundant casts.
719
720         * cspi/spi_registry.c: Eliminated redundant casts.
721         SPI_deregisterGlobalEventListenerAll () removed retval variable.
722         * cspi/spi_selection.c: Removed redundant casts.
723         * cspi/spi_text.c: Eliminated redundant casts.  Fixed exception
724         handling.  Screen geometry and text offsets were being returned as 0
725         on error which is technically valid-- changed these to return -1.
726         Added marshaller for text boundary types to fix bug with boundary
727         types being passed incorrectly to atk.
728                         
729 2002-05-09  Bill Haneman <bill.haneman@sun.com>
730
731         
732         * cspi/spi_registry.c:
733         Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
734         which was uncovered by the recent key changes.
735
736 2002-05-09  Bill Haneman <bill.haneman@sun.com>
737
738         * test/event-listener-test.c:
739         * test/Makefile.am:
740         Added new test, "event-listener-test"; 
741         this code does two things; it benchmarks traversal time 
742         for the accessible hierarchy for the first running accessible 
743         app, and it connects listeners for all supported event types.  
744         It is thus useful as an example event listener and for 
745         diagnostics/debugging of event generation.
746         
747 2002-05-08  Bill Haneman <bill.haneman@sun.com>
748
749         * test/Makefile.am:
750         Removed unnecessary dependency on libutil.
751
752         * configure.in:
753         Revved micro version: 0.13.1
754
755 2002-05-08  Bill Haneman <bill.haneman@sun.com>
756
757         * configure.in: 
758         Removed util/Makefile from targets.
759
760         * Makefile.am:
761         Removed util subdir from SUBDIRS (temporarily, 
762         pending removal of magnifier-only code
763         from UTIL).
764
765         * test/simple-at.c:
766         #ifdef-ed out magnifier dependencies, since
767         magnifier IDL, headers, and binary now live in
768         module gnome-mag and we don't want at-spi to depend 
769         on gnome-mag.  A magnifier demo which can run alongside
770         simple-at is forthcoming in the gnome-mag module.
771         
772         NOTE: Split magnifier binary, IDL, and magnification
773         activation code from at-spi into module gnome-mag.
774
775 2002-05-03  Marc Mulcahy <marc.mulcahy@sun.com>
776  
777         * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
778         cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
779  
780 2002-05-03  Bill Haneman <bill.haneman@sun.com>
781
782         * configure.in:
783         Revved to version 0.13.0
784         
785         * idl/Accessibility_Registry.idl:
786         Changed definition of KeySet from sequence of longs to sequence of
787         KeyDefinitions, and added KeyDefinition struct.
788         Required for fix to bug 80616.
789
790         * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
791         Changed AccessibleKeySet to Accessibility_KeySet marshalling code
792         to use new definition (see above).  
793
794         * registryd/deviceeventcontroller.c: handle_keygrab(), 
795         spi_keyset_contains_key():
796         Changed to make use of new struct; this allows matching based on
797         string key-name, for instance "Tab".  This also allows matching of
798         composed characters, non-alphanumeric characters in a way that
799         doesn't involve dependencies on X keysym codes directly, etc.
800         
801         * test/key-listener-test.c:
802         Added test for Alt-Tab key using "string" specification of keyset,
803         and modified one of the tests to use a keycode-based keyset.
804         Thus this test both tests and demonstrates the creation and use of
805         keysets of three forms:  specified via keycode array, 
806         keysym array, and string array. (The string case only contains a
807         single string, i.e. a string array of length 1).        
808
809         * test/simple-at.c:
810         Turned on PRINT_TREE option by default.  Also fixed a
811         string-freeing bug in the PRINT_TREE code.  
812         Added a listener to window:minimize events.
813         
814 2002-05-08  Padraig O'Briain  <padraig.obriain@sun.com>
815
816         * atk-bridge/bridge.c:
817         (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
818         for window:activate and window:deactiveate
819         (atk_bridge_property_event_listener atk_bridge_signal_listener
820         atk_bridge_window_event_listener) Tidy debug code
821
822 2002-05-02  Marc Mulcahy <marc.mulcahy@sun.com>
823
824         * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
825         Fixed handling for NULL return value from ATK.
826
827         * libspi/action.c libspi/component.c libspi/editabletext.
828         libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
829         libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
830         Removed redundant casts.
831         
832         * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
833         Fixed off by one bug.
834         
835         *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
836         function not present in idl)
837         
838 2002-05-02  jacob berkman  <jacob@ximian.com>
839
840         * atk-bridge/Makefile.am: make atk-bridge a real module
841
842 2002-04-26  Radek Doulik  <rodo@ximian.com>
843
844         * libspi/stateset.c (spi_init_state_type_tables): fix size of
845         atk_state_types table
846
847 2002-04-22  jacob berkman  <jacob@ximian.com>
848
849         * util/Makefile.am: 
850         * libspi/Makefile.am: add deps on the built files to help
851         automake, and don't version the ORBit typelib
852
853 2002-04-19  Padraig O'Briain  <padraig.obriain@sun.com>
854
855         * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h 
856         cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
857         cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c 
858         cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
859         cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
860         cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
861         cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
862         libspi/accessible.h libspi/accessible.h libspi/base.h 
863         libspi/component.h libspi/editabletext.h libspi/hyperlink.h 
864         libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
865         libspi/relation.h libspi/remoteobject.h libspi/selection.h 
866         libspi/spi-private.h libspi/statetset.h libspi/table.h
867         libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
868         util/mag_client.h util/mag_control.c util/mag_image.c
869         util/mag_image.h util/magnifier.c util/magnifier.h: 
870         Add missing file headers; standardize existing ones
871
872 2002-04-18  Marc Mulcahy  <marc.mulcahy@sun.com>
873
874         * atk-bridge/bridge.c: Added window event support.
875
876 2002-04-18  Michael Meeks  <michael@ximian.com>
877
878         * libspi/relation.c (impl_getNTargets): impl.
879         (impl_getTarget): impl.
880
881         * libspi/Makefile.am: fix stateset install.
882
883 2002-04-17  Bill Haneman <bill.haneman@sun.com>
884
885         * NEWS:
886         Started putting useful info in this file.
887         
888 2002-04-17  Marc Mulcahy <marc.mulcahy@sun.com>
889  
890         * atk-bridge/bridge.c: 
891         Propagate state-changed notifications to ATs
892  
893         * cspi/spi_registry.c: update docs to reflect actual behavior of
894         state-change events.
895
896 2002-04-17  Bill Haneman <bill.haneman@sun.com>
897
898         * configure.in:
899         Incremented version to 0.12.1
900         
901         * util/mag_client.h:
902         Add missing declaration for magnifier_exit, 
903         used by mag_control.c - Forte compiler didn't like
904         the implicit redeclaration of the function :-(
905
906
907 2002-04-16  Bill Haneman <bill.haneman@sun.com>
908
909         * configure.in:
910         Revved version to 0.12 due to API change (see below).
911
912         * cspi/spi-roletypes.h:
913         removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE 
914         definition from the inline docs, and added docs
915         for SPI_ROLE_LAST_DEFINED.
916
917         * cspi/spi.h:
918         * cspi/spi_streamablecontent.c:
919         Added missing seek_type parameter to
920         (so far unused) method, 
921         AccessibleStreamableContent_seek().
922         [ RT approval JodyG. ]
923
924         * cspi/spi_event.c:
925         Fixed docs for SPI_createAccessibleKeystrokeListener.
926
927         * cspi/spi_registry.c:
928         Fixed docs for SPI_KEYSET_ALL_KEYS.
929         
930         * docs/reference/cspi/at-spi-cspi-sections.txt:
931         Added a number of missing APIs to SECTIONS.
932         
933 2002-04-16  Bill Haneman <bill.haneman@sun.com>
934
935         * registryd/Makefile.am:
936         * cspi/Makefile.am:
937         * cspi/bonobo/Makefile.am:
938         Add $(X_LIBS) to makefiles.
939
940 2002-04-15  Bill Haneman <bill.haneman@sun.com>
941
942         * configure.in:
943         Revved version to 0.11.
944
945         * libspi/component.c:
946         Added implementation for grabFocus.
947
948         * idl/Accessibility_Component.idl
949         (Accessibility_Component_grabFocus):
950         Made this method return boolean to indicate success or failure, to
951         be consistent with cspi and the corresponding ATK method.
952         
953         * idl/Accessibility_Selection.idl
954         (Accessibility_Selection_selectAll) :
955         Made these methods return boolean to indicate success or
956         failure, to be consistent with cspi and the corresponding ATK methods.
957         
958         * idl/Accessibility_EditableText.idl 
959         (Accessibility_EditableText_setTextContents,
960          Accessibility_EditableText_insertText,
961          Accessibility_EditableText_cutText,
962          Accessibility_EditableText_deleteText,
963          Accessibility_EditableText_pasteText):
964         Made these methods return boolean to indicate
965         success or failure.
966
967         * cspi/spi_editabletext.c:
968         Made these methods return booleans.
969
970         * libspi/selection.c:
971         * libspi/component.c:
972         * libspi/editabletext.c:
973         Connected the boolean returns from ATK
974         to the server-side code referenced above.
975         
976 2002-04-14  Bill Haneman <bill.haneman@sun.com>
977
978         * idl/Accessibility_Table.idl: Added missing methods,
979         Accessibility_Table_addRowSelection,
980         Accessibility_Table_addColumnSelection,
981         Accessibility_Table_removeRowSelection,
982         Accessibility_Table_removeColumnSelection.
983
984         * cspi/spi_table.c:
985         Added C wrappers for above IDL:
986         AccessibleTable_addRowSelection,
987         AccessibleTable_addColumnSelection,
988         AccessibleTable_removeRowSelection,
989         AccessibleTable_removeColumnSelection.
990         
991         * libspi/table.c:
992         Added server-side implementation code for IDL above, connecting
993         to pre-existing ATK api.
994         
995 2002-04-13  Marc Mulcahy <marc.mulcahy@sun.com>
996
997         * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
998
999         * libspi/accessible.c: Added implementation fo
1000         Accessibility_Accessible_get_state.
1001         
1002         * libspi/libspi.h: Added stateset.h to the list of includes.
1003
1004         * libspi/stateset.c: Fixed broken implementation.
1005
1006 2002-04-13  Bill Haneman <bill.haneman@sun.com>
1007
1008         * util/magnifier.c:
1009         Added implementation code for Accessibility_Magnifier_exit ().
1010
1011         * util/mag_control.c:
1012         Added test code for above method; you can
1013         now kill an existing magnifier via 
1014         ./mag_control q, from the util directory.
1015
1016         * test/key-listener-test.c:
1017         * test/Makefile.am:
1018         Added a new test, for our key listener API.
1019
1020 2002-04-11  Bill Haneman <bill.haneman@sun.com>
1021
1022         * test/app.c, test/keysynth-demo.c:
1023         * util/magnifier.c:
1024         Replace use of snprintf with g_snprintf.
1025         (fix for bugzilla 78249)
1026
1027 2002-03-27  Michael Meeks  <michael@ximian.com>
1028
1029         * Version 0.10.0
1030
1031         * util/Makefile.am (INCLUDES): fix.
1032         (DONT_DIST_SOURCE): don't distribute the
1033         generated files.
1034
1035         * libspi/Makefile.am (dist-hook): ditto.
1036
1037 2002-03-27  Padraig O'Briain  <padraig.obriain@sun.com>
1038
1039         * libspi/hypertext.c:
1040         Fix warnings when yelp is used with atk-bridge
1041
1042 2002-03-21  Michael Meeks  <michael@ximian.com>
1043
1044         * libspi/application.c (spi_application_new):
1045         use spi_accessible_construct so we use the AtkObject
1046         cache correctly.
1047
1048 2002-03-19  Michael Meeks  <michael@ximian.com>
1049
1050         * registryd/registry.c (desktop_remove_application),
1051         (desktop_add_application): clean coding style.
1052
1053         * registryd/desktop.c (spi_desktop_remove_application),
1054         (spi_desktop_add_application): kill re-enterency hazards.
1055         (spi_desktop_dispose): remove bogus redundant cast
1056         obscuring bug; fix bug too.
1057         (spi_desktop_init): make the desktop object immortal.
1058
1059 2002-03-16 Bill Haneman <bill.haneman@sun.com>
1060
1061         * test/simple-at.c:
1062         Added a #define-guarded tree-traversal step
1063         when enumerating the apps (diagnostic tool).
1064
1065 2002-03-15 Bill Haneman <bill.haneman@sun.com>
1066
1067         * idl/Accessibility_Role.idl:
1068         Added ROLE_DRAWING_AREA which seemed to be missing from the
1069         previous commit.
1070
1071 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1072
1073         * cspi/spi-roletypes.h cspi/spi_accessible.c
1074         idl/Accessibility_Role.idl libspi/accessible.c: synched up role
1075         types with ATK.
1076
1077         * registryd/desktop.c registryd/desktop.h registryd/registry.c:
1078         Added signals to SpiDesktop and callbacks in SpiRegistry to notify
1079         AT when applications are added and removed from the desktop.  This
1080         reverts the previous broken implementation using the backing
1081         AtkObject for the SpiDesktop.
1082         
1083         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
1084
1085         * registryd/desktop.c: emit the "children-changed::add" and
1086         "children-changed::remove" signals on the backing ATK object for
1087         the desktop so AT can tell when applications are started and shut
1088         down.
1089
1090         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
1091
1092         * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
1093
1094         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
1095
1096         * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
1097
1098         * cspi/spi_accessible.c: Implemented c bindings for stateset support
1099
1100         * cspi/state-types.h: synched with IDL and ATK
1101
1102         2002-03-13  Bill Haneman <bill.haneman@sun.com>
1103
1104         * libspi/accessible.c 
1105         (impl_accessibility_accessible_get_child_at_index):
1106         Change return value for g_return_if_fail ()
1107         to CORBA_OBJECT_NIL instead of "0" (!)
1108
1109         * registryd/Makefile.am:
1110         * registryd/Accessibility_Register.server.in:
1111         Changed name of executable, "registryd",
1112         to something more informative:
1113         "at-spi-registryd".
1114
1115 2002-03-13  Michael Meeks  <michael@ximian.com>
1116
1117         * atk-bridge/bridge.c (atk_bridge_init): don't register
1118         if we're in a bonobo-component, rather than a bonobo app.
1119
1120 2002-03-13  Michael Meeks  <michael@ximian.com>
1121
1122         * atk-bridge/bridge.c (gtk_module_init): split
1123         out body to (atk_bridge_init): here, since otherwise
1124         we get symbol conflicts and oddness when invoked
1125         from (gnome_accessibility_module_init): here (upd.)
1126
1127 2002-03-11  Bill Haneman  <bill.haneman@sun.com>
1128
1129         * HACKING:
1130         New file.  Explicitly allow "build sheriff" putbacks provided
1131         they are tested on Solaris.
1132         
1133         * docs/reference/cspi/Makefile.am:
1134         Added '-' to the "cp" command for index.sgml.
1135         ("patch by thomasvs, soon coming to a GUADEC near you")
1136
1137         * configure.in:
1138         Incremented version number (0.9.0) for new release.
1139         Changed macro that checks for popt, to better detect
1140         obsolete versions of popt.
1141         
1142         * configure.in:
1143         Added X_LIBS to AC_SUBST, for applications
1144         that call Xlib API directly.
1145         
1146
1147 2002-03-07  Bill Haneman  <bill.haneman@sun.com>
1148
1149         * configure.in:
1150         Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
1151
1152         * util/Makefile.am:
1153         Fix regression caused by hard-coding major
1154         version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
1155         (see above change).
1156         
1157         * test/test-simple.c (test_editable_text),
1158         (test_test): revert previous change (error was 
1159         a regression in gail which is now fixed).
1160         
1161 2002-03-04  Michael Meeks  <michael@ximian.com>
1162
1163         * test/test-simple.c (test_editable_text),
1164         (test_text): pass G_MAXINT instead of '-1' for
1165         whole string - is this a good thing !?
1166
1167         * cspi/spi_accessible.c
1168         (Accessible_getRelationSet): fix crasher bug
1169         overwriting the end of the array.
1170
1171         * test/test-simple.c (validate_accessible): free,
1172         not g_free returned relation set.
1173
1174 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
1175
1176         * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
1177         implemented stateset support
1178
1179         * idl/Accessibility_State.idl: Made necessary changes to
1180         the IDL to support state sets.
1181
1182 2002-02-12 Bill Haneman <bill.haneman@sun.com>
1183
1184         * registryd/deviceeventcontroller.c:
1185         Added implementation for generateMouseEvent.
1186
1187         * cspi/spi_registry.c:
1188         Connected new implementation for generateMouseEvent
1189         to the C bindings.
1190         
1191 2002-02-12 Bill Haneman <bill.haneman@sun.com>
1192
1193         * configure.in: 0.8
1194         Incremented revision (but no change in public API
1195         outside of 'utils', which are not installed public yet.)
1196
1197         * libspi/component.c:
1198         Changed to use atk_component API for layers and
1199         mdi_zorder, instead of deprecated atk_object API.
1200         
1201         Magnification Utility Enhancements:
1202         
1203         * util/magnifier.c:
1204         Added implementation of createZoomRegion, clearAllZoomRegions,
1205         resizeZoomRegion.  Added new commandline argument
1206         "--no-initial-region".  Note that clearAllZoomRegions doesn't
1207         unmap the old '0' region as it should (yet), and the other
1208         methods only work when creating/resizing a single region,
1209         which is "region 0".  
1210         (Code for multiple region support will be added later.)
1211
1212         * util/mag_image.c:
1213         Now we raise the magnifier window each time it's refreshed;
1214         this will help keep it on top.
1215         
1216         * util/mag_client.h:
1217         Added simple wrappers for above, used by mag_control.
1218         For general use, it's recommended to use the bonobo magnifier
1219         control API directly instead of using these wrappers.
1220
1221         * util/mag_image.h:
1222         Moved ZoomRegionData from magnifier.c to this file.
1223         
1224         * util/mag_control.c: 
1225         Added some code to exercise new IDL implementations.
1226         
1227 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
1228
1229         * libspi/text.c: Provide implementation for getAttributes.
1230
1231 2002-02-04  Bill Haneman <bill.haneman@sun.com>
1232         
1233         * configure.in:
1234         Incremented revision.
1235
1236         * test/test-simple.c:
1237         Replaced use of deprecated g_main_iteration with 
1238         g_main_context_iteration.
1239         
1240 2002-01-28  Padraig O'Briain <padraig.obriain@sun.com>
1241
1242         * configure.in:
1243         Incremented revision for desktop alpha 2.
1244
1245 2002-01-28  Mark McLoughlin  <mark@skynet.ie>
1246
1247         * libspi/remoteobject.[ch]: make RemoteObject and interface rather
1248         than an atk object.
1249
1250         * test/simple-at.c: include netinet/in.h.
1251
1252 2002-01-24  Mark McLoughlin  <mark@skynet.ie>
1253
1254         * cspi/spi_accessible.c: (Accessible_getRelationSet):
1255         use NULL, not CORBA_OBJECT_NIL.
1256
1257         * libspi/accessible.c:
1258         (impl_accessibility_accessible_get_relation_set):
1259         allocate the sequence correctly.
1260
1261         * libspi/remoteobject.h: kill spi_remote_object_new.
1262
1263         * test/test-simple.c: (validate_accessible): add code
1264         to test relation sets, now all we need is to figure
1265         out how to excercise this code path :/
1266
1267 2002-01-18  Michael Meeks  <michael@ximian.com>
1268
1269         * test/test-simple.c
1270         (key_listener_cb): consume the key.
1271         (test_keylisteners): update.
1272         (main): wait for any pending unrefs on events.
1273
1274         * registryd/deviceeventcontroller.c
1275         (spi_controller_update_key_grabs): only re-issue the
1276         grab on a key release.
1277         (spi_device_event_controller_forward_key_event):
1278         refresh the keygrabs before we notify the listeners,
1279         to reduce the X ungrab / re-grab race.
1280         (spi_controller_register_with_devices): remove
1281         XSelectInput - we do that with the gdk_window_ call.
1282         (_spi_controller_device_error_handler): return a value.
1283         s/GDK_DISPLAY/spi_get_display/
1284
1285 2002-01-17  Michael Meeks  <michael@ximian.com>
1286
1287         * registryd/deviceeventcontroller.c
1288         (_deregister_keygrab): don't blow out the later
1289         assertion.
1290
1291         * test/test-simple.c (test_keylisteners): do a
1292         more intelligent validation.
1293
1294 2002-01-14  Michael Meeks  <michael@ximian.com>
1295
1296         * atk-bridge/bridge.c
1297         (gnome_accessibility_module_init),
1298         (gnome_accessibility_module_shutdown): impl.
1299         (gtk_module_init): protect vs. double inits.
1300         (add_signal_listener): impl.
1301         (spi_atk_bridge_state_event_listener): kill
1302         (deregister_application): split out of
1303         (spi_atk_bridge_exit_func): here.
1304
1305 2002-01-18  Bill Haneman <bill.haneman@sun.com>
1306
1307         * test/simple-at.c:
1308         Added caret tracking when using magnifier, and 
1309         now use text bounds for focus tracking of text elements, rather than
1310         the component bounds - this is helpful for short text fields in long
1311         table cells, at high magnification.
1312         
1313 2002-01-16  Bill Haneman <bill.haneman@sun.com>
1314
1315         * registryd/deviceeventcontroller.c:
1316         Regression fix for keylistener de-registration; global keygrabs
1317         were not being released when deregisterKeystrokeListener was
1318         called in cspi, since 
1319         Accessibility_DeviceEventController_deregisterKeystrokeListener
1320         was called with a zero-length keyset.  That is because the cspi
1321         method, SPI_deregisterKeystrokeListener, does not take a keyset
1322         parameter but instead should remove all the key grabs held be a
1323         keystroke listener.  
1324         The code in impl_deregister_keystroke_listener was changed to copy
1325         the keylist from the listener instance previously registered with
1326         the DeviceEventController before releasing the grabs.
1327
1328         * registryd/registry.c:
1329         * registryd/deviceeventcontroller.c:
1330         * libspi/spi-private.h:
1331         * libspi/util.c:
1332         Changed spelling of "re-enterant" to "re-entrant" globally.
1333
1334 2002-01-16  Bill Haneman <bill.haneman@sun.com>
1335
1336         * test/test-simple.c:
1337         Changed key listeners test - the test was slightly mis-using the
1338         (admittedly poorly documented) SPI_generateKeyboardEvent API.
1339         It now uses '=' as the key event listened to and generated,
1340         relying on a keysym match rather than assuming that keycode 33 
1341         is always equal to keysym '!'.
1342
1343 2002-01-15  Bill Haneman <bill.haneman@sun.com>
1344
1345         * test/simple-at.c:
1346         Changed simple-at to use a specific keyset, rather than
1347         SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
1348         manager, desktop, etc.
1349         
1350 2002-01-11  Bill Haneman <bill.haneman@sun.com>
1351
1352         * registryd/deviceeventcontroller.c:
1353         Replaced standard X error handler with a special handler that 
1354         is non-fatal for failed keygrabs.  This works around 
1355         problems with keygrab clashes sometimes observed on 
1356         Solaris using CDE.
1357         Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate 
1358         mouse handling code as yet).
1359         
1360 2002-01-11  Bill Haneman <bill.haneman@sun.com>
1361
1362         * configure.in:
1363         Incremented revision for desktop alpha release.
1364
1365         * README:
1366         Fixed a couple of the more glaring errors (still not 
1367         very up-to-date).
1368
1369 2002-01-11  Michael Meeks  <michael@ximian.com>
1370
1371         * registryd/deviceeventcontroller.c
1372         (spi_device_event_controller_forward_key_event): kill
1373         XUngrabKey / XKeyGrab race.
1374         (spi_controller_grab_keyboard): rename to
1375         (spi_controller_update_key_grabs): this, and deal
1376         with incremental adding / removing grabs more
1377         sensibly.
1378         (_register_keygrab): ensure we're not pending a remove.
1379         (spi_grab_mask_free): impl.
1380         (spi_controller_register_global_keygrabs): split out
1381         common code into:
1382         (handle_keygrab): impl.
1383         (_deregister_keygrab): impl.
1384         (spi_controller_deregister_global_keygrabs): impl.
1385         (spi_controller_update_key_grabs): re-issue the grab if
1386         we just recieved a notification.
1387
1388         * test/test-simple.c (key_listener_cb): remove debug.
1389
1390         * registryd/deviceeventcontroller.c
1391         (spi_controller_register_device_listener): after
1392         registering a global keygrab, actualy register it !
1393         don't wait for a timeout; doh !
1394
1395         * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
1396         to make it more readable / manipulable.
1397         s/grabmask/grab_mask/ s/refcount/ref_count/
1398         s/keyval/key_val/ s/modmask/mod_mask
1399
1400 2002-01-08  Michael Meeks  <michael@ximian.com>
1401
1402         * registryd/deviceeventcontroller.c
1403         (spi_controller_register_with_devices): use gdk calls to
1404         setup a filter.
1405         (global_filter_fn): implement the filter.
1406         (spi_device_event_controller_check_key_event): rename to
1407         (spi_device_event_controller_forward_key_event): this & upd.
1408         (spi_get_display): replace with GDK_DISPLAY.
1409
1410         * registryd/deviceeventcontroller.c
1411         (spi_controller_deregister_device_listener): unroll into
1412         (impl_deregister_keystroke_listener): here to simplify.
1413         (spi_controller_register_global_keygrabs): split cut and
1414         paste (!) out into (_register_keygrab): here, shorter & sweeter.
1415         (spi_controller_deregister_device_listener): remove.
1416         (impl_register_mouse_listener): remove, no mouse listener
1417         support in at-spi-1.0
1418
1419         * registryd/registry.c
1420         (_device_event_controller_hook): kill.
1421         (spi_registry_init): upd.
1422
1423         * registryd/deviceeventcontroller.c
1424         (spi_device_event_controller_class_init): upd.
1425         (spi_check_key_event): merge into.
1426         (spi_device_event_controller_check_key_event):
1427         here and kill strange static ev init, don't leak
1428         the x_event - nor dynamicaly allocate it.
1429
1430         * registryd/registry-main.c (main): re-direct
1431         timeout to remove strange vtable mess.
1432
1433         * registryd/deviceeventcontroller.c
1434         (remove_listener_cb): impl.
1435         (spi_controller_deregister_device_listener):
1436         fix re-enterancy hazard.
1437
1438 2002-01-07  Michael Meeks  <michael@ximian.com>
1439
1440         * registryd/deviceeventcontroller.c
1441         (spi_device_event_controller_new): upd.
1442         (impl_notify_listeners_sync): upd. debug.
1443         (spi_notify_keylisteners): fix re-enterancy hazards,
1444         prettify, remove O(n*n) iteration.
1445         (spi_controller_grab_keyboard): fix iteration.
1446         (spi_check_key_event): re-format to suit coding style.
1447         Clean all the warnings - we're warning free.
1448
1449         * registryd/deviceeventcontroller.h:
1450         * registryd/registry.h: make mutualy referential with
1451         typesafe forward references instead of (!) void pointer
1452         hacks.
1453
1454 2002-01-11  Michael Meeks  <michael@ximian.com>
1455
1456         * cspi/spi_accessible.c (role_names): add a role name
1457         to sync this array with the enum; and make the regression
1458         tests pass, sigh.
1459
1460 2002-01-10  Michael Meeks  <michael@ximian.com>
1461
1462         * cspi/spi_registry.c (SPI_generateKeyboardEvent): 
1463         allow expansion of enumeration & kill warning.
1464
1465         * test/test-simple.c (key_listener_cb): impl.
1466         (test_keylisteners): impl.
1467
1468         * cspi/spi-listener.h: make listener signatures const
1469         on the provided (const) events.
1470
1471         * test/keysynth-demo.c: upd. to const events.
1472
1473         * test/simple-at.c: ditto.
1474
1475 2002-01-11  Bill Haneman <bill.haneman@sun.com>
1476
1477         * configure.in:
1478         Rev the version to 0.5 (the previous tarball was named 0.4, 
1479         even though the micro number was 3), so we need to rev upwards
1480         again for beta2/"desktop-alpha" 
1481  
1482         * test/demo.csh:
1483         Checked in a demo script, which requires editing before use!
1484         Proceed with caution.
1485         
1486         * libspi/value.h:
1487         Fixed typo in header which was redefining SPI_ACTION_CLASS.
1488
1489         * cspi/spi_accessible.c:
1490         Add a couple of missing enum initializations, and fix some enum
1491         comments.
1492
1493         * cspi/spi_registry.c:
1494         Add comment describing keystring parameter to SPI_generateKeyboardEvent.
1495         
1496         * docs/reference/cspi/at-spi-cspi-sections.txt:
1497         Remove/fix a couple of broken document references.
1498
1499         * test/simple-at.c:
1500         Minor tweaks to the demo.  We now (sigh) use Alt-SHIFTLOCK as well
1501         as Alt-Control to listen for commands, since on some systems
1502         Control-Alt may already be grabbed.
1503
1504 2002-01-10  Bill Haneman <bill.haneman@sun.com>
1505
1506         * configure.in:
1507         Update version number to 0.4 for Beta2.
1508         
1509         * libspi/accessible.c, libspi/accessible.h:
1510         Expose spi_accessible_construct, to enable libgail-gnome
1511         construction from spi_accessible subtype.
1512
1513         * utils/magnifier.c:
1514         Workaround for bug in some non-gnome-compliant window managers
1515         which made magnifier resize improperly.
1516
1517 2002-01-09  Bill Haneman <bill.haneman@sun.com>
1518
1519         * libspi/accessible.c: (spi_accessible_new) :
1520         Move the test for SPI_IS_REMOTE_OBJECT to
1521         spi_accessible_new_return, fixing a bug and compile time warning.
1522         
1523 2002-01-08  Michael Meeks  <michael@ximian.com>
1524
1525         * registryd/registry.c (parse_event_type): remove strndup.
1526
1527         * libspi/Makefile.am (libspi_la_SOURCES): remove
1528         sources already included in the headers section.
1529
1530         * libspi/util.c: add.
1531
1532         * libspi/spi-private.h: add.
1533
1534         * registryd/registry.c: update to moved list iterators.
1535
1536 2002-01-05  Michael Meeks  <michael@ximian.com>
1537
1538         * test/simple-at.c (main): upd. auto-module set to atk-bridge
1539
1540         * test/test-simple.c (main): ditto.
1541
1542 2002-01-04  Michael Meeks  <michael@ximian.com>
1543
1544         * libspi/accessible.c (spi_accessible_new): remove 2nd,
1545         redundant construct.
1546
1547         * registryd/registry.c
1548         (get_listener_list): impl.
1549         (impl_accessibility_registry_register_global_event_listener):
1550         re-impl. to simplify using ~, remove dodgy const cast off.
1551         (parse_event_type): constify.
1552         (impl_accessibility_registry_deregister_global_event_listener_all): 
1553         re-write, more efficiency and simplicity, kill re-enterancy
1554         hazard.
1555         (compare_listener_corbaref, compare_corba_objects),
1556         (compare_listener_quarks): define out.
1557         (impl_accessibility_registry_deregister_global_event_listener): 
1558         re-write for effiency, and nail re-enterancy hazard.
1559         (impl_accessibility_registry_get_desktop_list): impl.
1560         (re_enterant_list_delete_link): impl.
1561         (re_enterant_list_foreach): impl.
1562         (remove_listener_cb): impl.
1563         (_registry_notify_listeners): kill.
1564         (notify_listeners_cb): impl.
1565
1566         * cspi/spi_registry.c (SPI_freeDesktopList): impl.
1567         (SPI_getDesktopList): impl.
1568
1569         * test/test-simple.c (test_desktop): test the methods.
1570
1571 2002-01-03  Michael Meeks  <michael@ximian.com>
1572
1573         * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
1574         keystrings since we free them
1575         (SPI_freeAccessibleKeySet): in here.
1576
1577         * libspi/accessible.c (spi_accessible_new): kill warning,
1578         wonder what is going on with the constructor here.
1579
1580 2002-03-01  Bill Haneman <bill.haneman@sun.com>
1581
1582         * libspi/accessible.c (spi_accessible_new ()) :
1583         Added check to see if AtkObject is an SpiRemoteObject before
1584         creating an SpiAccessible.
1585         
1586 2002-05-01  Bill Haneman <bill.haneman@sun.com>
1587
1588         * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
1589         Enable keygrabs using the Control modifier, now that they are
1590         working properly (they were previously disabled).
1591
1592         * test/simple-at.c:
1593         Change the command keygrab for this demo to "Control+Alt", so as
1594         to conflict with fewer other key commands on the system; this
1595         means that the quit command for "simple-at" is now "Ctrl-Alt-q".
1596
1597         Removed a pointlessly-chatty keylistener for unshifted keys
1598         (shifted keys are still reported).
1599         
1600 2002-02-01  Bill Haneman <bill.haneman@sun.com>
1601
1602         * libspi/remoteobject.h:
1603         * libspi/remoteobject.c:
1604         Added definitions for special AtkObject subtype, required for
1605         support of remote components (specifically, used by BonoboControl
1606         accessibility implementation).
1607         
1608 2002-01-02 Marc Mulcahy  <marc.mulcahy@sun.com>
1609
1610         * cspi/spi.h: synched relation types with ATK
1611
1612         * cspi/spi_accessible.c: Added implementations of
1613         AcccessibleRelation_* methods
1614
1615         * idl/Accessibility_Relation.idl: added getRelationTypeName
1616         method.  Synched known relation types with ATK.  Allowed for
1617         relation type extension with the RELATION_EXTENDED type.
1618         
1619         * libspi/relation.c: Provided implementations for
1620         AccessibleRelation methods.
1621
1622 2002-01-01  Bill Haneman <bill.haneman@sun.com>
1623
1624         API tweaks for today's API 'freeze'.
1625
1626         * idl/*:
1627         Added placeholder functions to allow future compatible expansion
1628         of the IDL interfaces.
1629
1630         * idl/Accessibility_Registry.idl:
1631         Changed generateKeyEvent to generateKeyboardEvent.  Changed
1632         signature of this method to accept an optional keystring in
1633         parameter (for complex text input synthesis) and changed use of
1634         simple 'boolean' parameter in registerKeystrokeListener to a
1635         struct, EventListenerMode.
1636
1637         * cspi/spi_accessible.c:
1638         * cspi/spi.h:
1639         * cspi/spi_streamablecontent.c:
1640         Added references to AccessibleStreamableContent interface, and
1641         definition and implementation of AccessibleStreamableContent 
1642         C bindings.
1643
1644         * cspi/spi_registry.c:
1645         * cspi/spi.h:
1646         Changed generateKeyEvent API to generateKeyboardEvent,
1647         taking a new (optional) keystring parameter to support complex
1648         text input.
1649         
1650         * at-bridge/*:
1651         * atk-bridge/*:
1652         Renamed directory (to better reflect its actual purpose, bridging
1653         from at-spi to ATK).  The .so module is also now named
1654         libatk-bridge.so.
1655
1656         * idl/Accessibility_Hypertext.idl:
1657         * libspi/accessible.c:
1658         * libspi/hypertext.h:
1659         * libspi/hypertext.c:
1660         Changed Accessibility_Hypertext to *not* derive from
1661         Accessibility_Text.
1662
1663         * cspi/spi_registry.c:
1664         Added list of legal event type names for 'window' events, which
1665         completes the registry event API.
1666
1667 2001-12-22  Marc Mulcahy  <marc.mulcahy@sun.com>
1668
1669         * at-bridge/bridge.c: Added registration for separate
1670         "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
1671         signals.  If either of the first two parameters to the generic
1672         bridge signal handler are ints, they are passed on as event
1673         details.  This allows an AT to determine what text was inserted.
1674
1675 2001-12-21  Bill Haneman <bill.haneman@sun.com>
1676
1677         * registryd/deviceeventcontroller.c:
1678         Fixed regressions in generateKeyEvent caused by the removal of
1679         gdk_init from registryd; we now use pure X calls to connect to the
1680         display, which makes sense because deviceeventcontroller already
1681         uses a fair bit of X API (should eventually be migrated to a
1682         'portability layer').
1683
1684         * registryd/desktop.c:
1685         Fixed minor regression in spi_desktop_init, changed the way the
1686         desktop name is being set to work with new spi_base API
1687         (gobject-based, rather than AtkObject-based).
1688
1689         * registryd/Makefile.am:
1690         Minor revision of makefile to use XTST_LIBS variable rather than
1691         hard-wiring the Xtst LD_ADD element.
1692
1693         * test/keysynth-demo.c:
1694         Tweaked an output message; added initialization of the
1695         'keystrings' member of the "switch listener" key_set.
1696
1697         * libspi/relation.c:
1698         Squashed compile-time warning.
1699
1700         * libspi/accessible.c:
1701         Cosmetic and formatting fixes, renamed a static method.
1702         
1703 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
1704
1705         * libspi/accessible.c 
1706         * libspi/action.c
1707         * libspi/application.c 
1708         * libspi/base.c 
1709         * libspi/base.h
1710         * libspi/component.c 
1711         * libspi/editabletext.c
1712         * libspi/hyperlink.c 
1713         * libspi/hypertext.c
1714         * libspi/image.c 
1715         * libspi/selection.c 
1716         * libspi/table.c
1717         * libspi/text.c 
1718         * libspi/value.c 
1719         * registryd/desktop.c:
1720         Changed SpiBase to contain a GObject pointer rather than an AtkObject
1721
1722 2001-12-17  Bill Haneman <bill.haneman@sun.com>
1723
1724         * idl/Accessibility_Registry.idl:
1725         Added boolean member 'is_text' to DeviceEvent.  This is for the
1726         use of key events, and helps prevent ambiguity between composed
1727         key strings and keysym names, since both may potentially be
1728         returned in the 'event_string' member.
1729
1730         * at-bridge/bridge.c:
1731         * registryd/deviceeventcontroller.c:
1732         Use the 'is_text' member when notifying device event listeners.
1733         Knon issue: composed characters are not dealt with correctly by
1734         the global key listener implementation yet.
1735         
1736 2001-12-17  Bill Haneman <bill.haneman@sun.com>
1737
1738         * at-bridge/bridge.c:
1739         Namespaced local static methods to spi_atk_bridge_* where
1740         previously named bridge_*, and spi_* elsewhere.
1741
1742         * at-bridge/bridge.c:
1743         * cspi/bonobo/cspi-bonobo-listener.c:
1744         Added demarshalling/conversion for string member of
1745         Accessibility_DeviceEvent to AccessibleKeystroke.
1746
1747         * registryd/deviceeventcontroller.c:
1748         Added code to fill the Accessibility_DeviceEvent key string value
1749         member for global key events (i.e. from XGrabKey), to match
1750         behavior of Accessibility_DeviceEvent from the toolkit key events
1751         from the bridge.  Fixed timestamp in global key event notifications.
1752
1753         * test/simple-at.c:
1754         Added printout of key event's string value to
1755         report_ordinary_key_event, for demo/debugging purposes.
1756
1757 2001-12-15  Bill Haneman <bill.haneman@sun.com>
1758
1759         * idl/Accessibility_Registry.idl:
1760         Removed Accessibility_KeyStroke structure in favor of generic
1761         Accessibility_DeviceEvent structure.
1762         Changed Accessibility_ControllerEventMask from a struct to an
1763         unsigned long.
1764
1765         * at-bridge/bridge.c:
1766         Changed APIs to use DeviceEvent structure as above, and removed
1767         bogus casting between these event structures.
1768
1769         * cspi/spi-listener.h:
1770         Added keystring member of AccessibleKeystroke structure, to enable
1771         matching on event "names" rather than only hardware codes and
1772         keysyms.
1773
1774         * cspi/spi.h:
1775         Added keystrings member of AccessibleKeySet struct, to allow
1776         matching on event names (as above).
1777         Added declarations for SPI_createAccessibleKeySet and
1778         SPI_freeAccessibleKeySet.  Due to changes in libspi, we now pass
1779         event modmasks directly as unsigned ints rather than structs with
1780         refcounts, in the DeviceEventController methods.
1781
1782         * cspi/spi_registry.c:
1783         Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
1784
1785         * cspi/spi-roletypes.h:
1786         Added documentation of newly added SPI Roles.
1787
1788         * cspi/bonobo/cspi-bonobo-listener.c:
1789         Changes in support of API changes above.
1790         
1791         * libspi/accessible.c:
1792         Converted APIs to use DeviceEvent structure (see IDL changes
1793         above). 
1794
1795         * registryd/deviceeventcontroller.c:
1796         Added DEControllerGrabMask structure to track keygrabs not only by
1797         modmask but by keyset as well; this allows us to do "global"
1798         (i.e. X) keygrabs on a per-key or keyset basis rather than always
1799         grabbing on AnyKey and then filtering after-the-fact.
1800         Bugfixes for event filtration mean that we don't get false matches
1801         on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
1802
1803         * registryd/deviceeventcontroller.c:
1804         Namespaced a number of static methods to use spi_ prefix.  Major
1805         revision to internals of global (i.e. X) key grabs.
1806
1807         * registryd/deviceeventcontroller.h:
1808         Removed keymask_list and added keygrabs_list to
1809         SpiDeviceEventController struct.
1810
1811         * test/simple-at.c:
1812         Added use of SPI_createAccessibleKeySet API when creating a
1813         listener for only one key.  Attach a listener to "shift spacebar
1814         SPI_KEY_RELEASE" as a demonstration.  Changed (incorrect) usage of
1815         X key event names to SPI key event names, so that listeners are
1816         registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
1817         
1818         * test/keysynth-demo.c:
1819         Changed (incorrect) use of X key event names (KeyPressed,
1820         KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
1821         
1822
1823 2001-12-12  Bill Haneman <bill.haneman@sun.com>
1824
1825         * libspi/accessible.c:
1826         Convert all AtkRole enumerations to Accessibility_Role enums when
1827         getting a role from an AtkObject.
1828         
1829         * cspi/spi_accessible.c:
1830         Complete the conversion of Accessibility_Role enums at runtime to
1831         AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
1832         role enums correctly match those given in spi-roletypes.h.  
1833         Re-synchronize the local names list for AccessibleRole_getName ().
1834         AccessibleRole_getName is now deprecated, since it duplicates the
1835         more reliable Accessible_getRoleName.
1836         Added some role types from Accessibility_Role.idl.
1837
1838         * idl/Accessibility_Role.idl:
1839         Added some role types used by AtkRole.
1840
1841 2001-12-12  Bill Haneman <bill.haneman@sun.com>
1842         
1843         * cspi/spi.h:
1844         * cspi/spi_registry.c:
1845         * cspi/spi_event.c:
1846         * cspi/cspi-bonobo-listener.c:
1847         Namespaced all methods that did not begin with an "SPI_" or
1848         "Accessible" prefix to "SPI_".  
1849
1850         * cspi/spi_main.c:
1851         Homogenized internal function namespace to "cspi_" for statics.
1852         
1853         * test/*.c:
1854         Patched tests to use the new CSPI API.
1855
1856         * docs/reference/cspi/at-spi-cspi-sections.txt:
1857         Updated docs to reflect namespace changes, and added a number of
1858         methods to the documentation.
1859         
1860         * registryd/registry.c:
1861         Changed use of strings and string hashes in listener event
1862         matching and parse_event_string to use GQuark, which is guaranteed
1863         unique.
1864         
1865         * registryd/registry.h:
1866         Squashed annoying warning.
1867
1868         * idl/Accessibility_Role.idl:
1869         Extended range of available Accessibility_Role values.
1870
1871         * cspi/spi_accessible.c:
1872         Re-ordered role names. 
1873
1874 2001-12-12  Bill Haneman <bill.haneman@sun.com>
1875
1876         * idl/Accessibility_Value.idl:
1877         Revert use of union back to CORBA_double, since the double type is
1878         more efficient and can contain the other types without loss of
1879         precision.
1880
1881         * idl/Accessibility_Accessible.idl:
1882         Added method Accessibility:Accessible:getRoleName, to complement
1883         Accessibility:Accessible:getRole.
1884
1885         * cspi/spi_accessible.c:
1886         * cspi/spi.h:
1887         Added C binding for above, Accessible_getRoleName (), and changed
1888         signature of Accessible_getRole () to return an AccessibleRole.
1889
1890         * cspi/spi-roletypes.h:
1891         Changed AccessibleRole_getName to return a char * instead of a
1892         const char *.  This method is now at least temporarily deprecated 
1893         in favor of asking Accessibles for their RoleNames directly.
1894
1895         * libspi/value.c:
1896         Revert to match Accessibility_Value.idl;
1897
1898         * cspi/spi_value.c:
1899         * cspi/spi.h:
1900         Change signature of AccessibleValue methods to use double rather
1901         than float.
1902
1903         * cspi/spi.h:
1904         * cspi/spi_accessible.c:
1905         Changed Accessible_getRole to return an AccessibleRole enum rather
1906         than a UTF-8 string.  The UTF-8 string can still be obtained via
1907         AccessibleRole_getName ().
1908         
1909         * test/test-simple.c:
1910         Add test_action.  Small fixup to match API change to Accessible_getRole.
1911
1912         * libspi/action.c:
1913         Bugfix for get_action_from_servant ().
1914
1915 2001-12-11  Michael Meeks  <michael@ximian.com>
1916
1917         * libspi/libspi.h: remove registry.h and
1918         desktop.h, deviceeventcontroller.h
1919
1920         * libspi/Makefile.am: remove registry.[ch],
1921         desktop.[ch], deviceeventcontroller.[ch]
1922
1923         * registryd/Makefile.am: add registry.[ch],
1924         desktop.[ch], rename registryd.c to registry-main.c.
1925         add deviceeventcontroller.[ch]
1926
1927 2001-12-11  Bill Haneman <bill.haneman@sun.com>
1928
1929         * test/simple-at.c:
1930         Replace setenv() call with putenv ().
1931
1932         * libspi/component.c:
1933         Bugfix in AccessibleComponent_getExtents (),
1934         (from Adi Dascal).
1935         
1936 2001-12-11  Michael Meeks  <michael@ximian.com>
1937
1938         * libspi/image.c (impl_getImageExtents): impl.
1939         (spi_image_class_init): upd.
1940
1941         * cspi/spi_image.c
1942         (AccessibleImage_getImageDescription): fix daft bug
1943         of mine (doh).
1944
1945         * test/test-simple.c (global_listener_cb): update
1946         to only quit if not --poke
1947         (main): catch --poke.
1948         (validate_accessible): upd. dumping, call test_image
1949         (test_image): impl.
1950
1951         * libspi/Makefile.am (IDL_DEPS): fixup the IDL
1952         dependencies.
1953
1954         * idl/Accessibility.idl: update all IDL includes.
1955
1956         * idl/*.idl - rename to namespace - this sucks, blame
1957         mjs' bad decision for oafd.
1958
1959         * test/test-simple.c (create_test_window): add more tests.
1960         (create_tree): split this out.
1961         (validate_accessible): bugfix.
1962
1963 2001-12-11  Michael Meeks  <michael@ximian.com>
1964
1965         * cspi/bonobo/cspi-bonobo-listener.c: 
1966         (cspi_kestroke_listener_unref),
1967         (cspi_event_listener_unref): impl. undoing previous
1968         homenous environment - for Bill.
1969
1970         * cspi/spi_table.c (long_seq_to_array): use
1971         malloc instead.
1972
1973         * cspi/spi_main.c: split out all bonoboish bits into
1974         bonobo/
1975
1976         * cspi/spi-impl.h: upd. typedefs.
1977
1978         * cspi/spi_registry.c: update to lowlevel API,
1979         return booleans to indicate success in some places.
1980
1981         * cspi/spi_event.c: update to lowlevel API.
1982
1983         * cspi/bonobo/Makefile.am: add.
1984
1985         * cspi/bonobo/cspi-lowlevel.h: add
1986
1987         * cspi/bonobo/cspi-bonobo.c: add
1988
1989         * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
1990
1991         * cspi/Makefile.am: remove spi-listener-impl.[ch],
1992         (SUBDIRS): add bonobo, link in the libs.
1993
1994         * cspi/spi-util.c: kill this file.
1995
1996         * TODO: merge in my bits.
1997
1998 2001-12-11  Michael Meeks  <michael@ximian.com>
1999
2000         * test/test-simple.c (test_value, test_table, main):
2001         remove unused variables causing warnings.
2002
2003         * configure.in: cleanup checks - require gail.
2004
2005 2001-12-11  Bill Haneman  <bill.haneman@sun.com>
2006
2007         * idl/Value.idl:
2008         Changed Value interface to use SValue (scalars) rather than
2009         assuming all values are floats.  This allows floats, doubles,
2010         longs, shorts, and unsigned values to be manipulated.
2011         Introduced Accessibility:SValue union.
2012
2013         * libspi/value.c:
2014         Updated to use new API above, and to work correctly with GValues
2015         of different types in AtkValue.
2016
2017         * cspi/spi_value.c:
2018         Updated to use new API above.  cspi's API is as yet unchanged.
2019
2020         * TODO: 
2021         Updated the Value revision action item.
2022         
2023 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
2024
2025         * test/test-simple.c:
2026         Added test_table (GtkTreeView widget in test window to follow).
2027         Un-commented test_value, added GtkRange widget.
2028         Added GtkTreeView widget with GtkListStore.  It passes regression
2029         test but leaks one SPI object for some reason.
2030
2031         * libspi/value.c:
2032         Fixed bug in impl__set_currentValue.
2033
2034 2001-12-10  Michael Meeks  <michael@ximian.com>
2035
2036         * cspi/spi_text.c: audit for exception handling,
2037         tolerating NULL object references safely etc.
2038
2039         * cspi/spi_value.c: ditto.
2040
2041         * cspi/spi_table.c (AccessibleTable_getSummary),
2042         (AccessibleTable_getAccessibleAt),
2043         (AccessibleTable_getRowHeader),
2044         (AccessibleTable_getColumnHeader),
2045         (AccessibleTable_getCaption): fix bugs hidden by
2046         incorrect casts.
2047         (long_seq_to_array): impl.
2048         (AccessibleTable_getSelectedRows),
2049         (AccessibleTable_getSelectedColumns): use it.
2050
2051 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
2052
2053         * TODO:
2054         Added a TODO list (rough and short for now).
2055
2056         * cspi/spi_hyperlink.c:
2057         * cspi/spi_hypertext.c:
2058         Fixed macro name typos, and remove use of obsolete macro in 
2059         AccessibleHyperlink_getLink.
2060
2061         * cspi/spi_action.c:
2062         * cspi/spi_accessible.c:
2063         * cspi/spi_application.c:
2064         * cspi/spi_component.c:
2065         * cspi/spi_selection.c:
2066         * cspi/spi_text.c:
2067         * cspi/spi_value.c:
2068         Documentation fixes (removed return values from ref/unref methods).
2069
2070 2001-12-10  Michael Meeks  <michael@ximian.com>
2071
2072         * cspi/spi_action.c: audit for exception handling,
2073         tolerating NULL object references safely etc.
2074
2075         * cspi/spi_accessible.c: ditto.
2076
2077         * cspi/spi_component.c: ditto.
2078
2079         * cspi/spi_editabletext.c: ditto.
2080
2081         * cspi/spi_hyperlink.c: ditto.
2082
2083         * cspi/spi_hypertext.c: ditto.
2084
2085         * cspi/spi_image.c: ditto.
2086
2087         * cspi/spi_selection.c: ditto.
2088
2089 2001-12-10  Michael Meeks  <michael@ximian.com>
2090
2091         * configure.in: use cspi/libspi.pc.in instead.
2092
2093         * Makefile.am (pkgconfig_DATA): upd. to match.
2094
2095         * test/simple-at.c (report_focus_event): kill hacks around
2096         bad return values, use putenv not setenv
2097
2098         * libspi/desktop.c (impl_desktop_get_child_at_index): don't
2099         fire ChildGone - I killed it.
2100
2101         * libspi/component.c
2102         (impl_accessibility_component_get_extents): remove
2103         bogus return.
2104
2105         * idl/Accessible.idl: kill ChildGone exception.
2106
2107         * cspi/*.[ch]: kill int return from ref / unref.
2108         
2109         * cspi/spi_main.c (cspi_object_add_check): fold into
2110         (cspi_object_add): here.
2111
2112         * cspi/spi_component.c (AccessibleComponent_getExtents):
2113         handle exceptions elegantly.
2114
2115         * cspi/spi-private.h (cspi_check_ev_return),
2116         (cspi_return_if_fail): impl.
2117
2118         * cspi/spi_accessible.c: use extensively.
2119         (AccessibleStateSet_equals): add direct compare check.
2120
2121         * cspi/spi_selection.c: tolerate NULL objs, and check
2122         exceptions before return.
2123
2124         * cspi/spi-util.c (cspi_warn_ev): rename to
2125         (cspi_check_ev): this & don't pass ev in; no point.
2126
2127 2001-12-10  Michael Meeks  <michael@ximian.com>
2128
2129         * test/test-simple.c: use putenv not setenv
2130         (get_environment_vars): more chatty if you're not using
2131         the fun bits.
2132
2133         * test/simple-at.c: do the setenv so more people see the
2134         nice demo easily.
2135
2136 2001-12-10  Bill Haneman <bill.haneman@sun.com>
2137
2138         * libspi/registry.c:
2139         Changed check of CORBA_environment on notification to be a warning
2140         instead of an error for the moment, since we can recover from this
2141         error when caused by a queued notification from a dead app.
2142         
2143         * libspi/value.c:
2144         Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
2145         used by all current implementors of AtkValue), and coerce to
2146         CORBA_float. (Proper general case fix may require change to Value.idl).
2147
2148 2001-12-09  Bill Haneman <bill.haneman@sun.com>
2149
2150         * cspi/spi.h:
2151         * cspi/spi_event.c:
2152         * cspi/spi_accessible.c:
2153         Documentation fixes: added user_data params to documentation for 
2154         listeners and callbacks.  
2155
2156         * cspi/spi_accessible.c: 
2157         Changed AccessibleStateSet_compare to return a
2158         StateSet rather than return the difference set into a third parameter.
2159         
2160         
2161 2001-12-09  Bill Haneman <bill.haneman@sun.com>
2162
2163         * configure.in:
2164         Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
2165         remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
2166         it). 
2167
2168         * Makefile.am:
2169         Remove subdirectory po from SUBDIRS for now.
2170
2171         * at-bridge/bridge.c:
2172         Beefed up a couple of debug printouts.
2173         One-line fix for signal notification name formatting.
2174
2175         * libspi/accessible.c:
2176         Added assertion to spi_accessible_new ().
2177
2178         * libspi/application.c:
2179         Put #ifdef qualifiers around a printf.
2180
2181         * libspi/value.c:
2182         Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
2183
2184         * registryd/Makefile.am:
2185         * util/Makefile.am:
2186         Replaces use of XML_I18N_MERGE_SERVER_RULE with
2187         INTLTOOL_SERVER_RULE macro.
2188
2189         * test/simple-at.c:
2190         Added an event listener for several ATK signals, for
2191         testing and debugging.  Removed a few g_warnings.
2192         Added test output if focussed item implements the Value interface.
2193
2194         * test/test-simple.c:
2195         Added test_value () function (known not to pass at the moment, so
2196         not actually called yet.
2197         
2198 2001-12-08  Michael Meeks  <michael@ximian.com>
2199
2200         * at-bridge/bridge.c (bridge_focus_tracker),
2201         (emit_eventv): fix the same ref. leak.
2202         (register_atk_event_listeners): don't leak.
2203
2204         * cspi/spi-listener-impl.c (cspi_event): more 
2205         protection from client code.
2206
2207         * test/test-simple.c (test_desktop): unref the app.
2208
2209         * test/Makefile.am: upd. TESTS.
2210
2211         * at-bridge/bridge.c (bridge_exit_func): release the registry.
2212
2213         * test/keysynth-demo.c (keysynth_exit): unref the listeners.
2214
2215         * cspi/spi_accessible.c (Accessible_queryInterface): constify.
2216
2217         * cspi/spi_registry.c: constify in strings.
2218         (deregisterGlobalEventListenerAll): don't release the ref.
2219
2220         * cspi/spi.h: start removing redundant / conflicting
2221         gtkdoc comments, making the API readable at a glance :-)
2222         
2223         * cspi/spi_event.c (AccessibleEventListener_unref): impl.
2224
2225         * test/keysynth-demo.c (keysynth_exit, main): upd.
2226
2227         * test/simple-at.c (main, simple_at_exit): upd.
2228
2229         * test/test-simple.c (unutterable_horror): kill.
2230         (utterable_normal_derefs): kill.
2231         (main): upd & do a setenv before gtk_init, so that we
2232         can use memprof - and to save the pain of remembering
2233         this, if we're running under memprof - don't exit.
2234
2235         * cspi/spi_main.c (SPI_exit): return exit status
2236         for cspi.
2237         (SPI_event_quit): impl.
2238         (SPI_event_main): simplify.
2239         (cspi_is_gnome_app): kill.
2240         (SPI_init): kill isGNOMEapp arg.
2241
2242         * at-bridge/bridge.c (register_atk_event_listeners):
2243         re-instate the unref.
2244         (bridge_exit_func): don't re-activate the registry,
2245         protect vs. theoretical re-entry, use the
2246         AT_BRIDGE_SHUTDOWN env. var to determine whether to
2247         assert a clean shutdown - for regression tests.
2248
2249 2001-12-08  Abel Cheung  <maddog@linux.org.hk>
2250
2251         * configure.in: Comment out dummy i18n support for now,
2252           otherwise it fails to build.
2253         * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
2254           EXTRA_DIST. They are missing in tarball.
2255
2256 2001-12-07  Michael Meeks  <michael@ximian.com>
2257
2258         * util/magnifier.c: kill bonobo activation reg. race.
2259
2260         * libspi/component.c
2261         (impl_accessibility_component_get_extents): make it match
2262         it's sig.
2263
2264         * libspi/registry.c (_registry_notify_listeners):
2265         re-remove X headers & reconcile conflicts.
2266         (spi_listener_struct_free): bad conflict resolve.
2267         (impl_accessibility_registry_register_application):
2268         more bad merging fixed.
2269         (impl_accessibility_registry_deregister_application): ditto.
2270         (spi_registry_new): ditto.
2271         (spi_registry_init): don't have an applications field.
2272
2273 [ merge fixups2 branch to here ]
2274 2001-12-07  Michael Meeks  <michael@ximian.com>
2275
2276         * test/simple-at.c (report_focus_event),
2277         (report_focussed_accessible): remove g_warning debug.
2278
2279 2001-12-07  Michael Meeks  <michael@ximian.com>
2280
2281         * test/test-simple.c (validate_tree): comment out some checks.
2282         (test_desktop): app now not registered idly - horay.
2283
2284 2001-12-07  Michael Meeks  <michael@ximian.com>
2285
2286         * cspi/spi_registry.c
2287         (registerAccessibleKeystrokeListener): clean, stop it leaking
2288         great swathes of memory, and device event controller references.
2289         ensure we always pass valid sequences.
2290         (deregisterAccessibleKeystrokeListener): ditto.
2291         (generateKeyEvent): upd.
2292
2293         * at-bridge/bridge.c (bridge_key_listener): handle
2294         registry dead exception gracefully.
2295         (bridge_focus_tracker, emit_eventv): free ev.
2296
2297         * test/simple-at.c (report_focus_event): fix polarity.
2298
2299         * libspi/application.c (notify_listeners): kill the ev
2300         argument, and make sure we init the ev we use.
2301         (spi_application_object_event_listener): split out a chunk
2302         (get_atk_object_ref): here & fixup.
2303         (reverse_lookup_name_for_toolkit_event): make const.
2304         (spi_application_toolkit_event_listener): fixup, kill leaks
2305         ref problems etc.
2306
2307         * at-bridge/bridge.c (register_atk_event_listeners):
2308         don't unref the noop object - causes grief.
2309
2310         * libspi/registry.c: remove the X headers.
2311         turn off the debug churn.
2312
2313         * libspi/accessible.c (spi_accessible_new_return): only
2314         release the ref if we are supposed to [doh]
2315
2316         * test/simple-at.c (report_button_press, report_focus_event):
2317         guard vs. unexpected exit.
2318
2319         * at-bridge/bridge.c (gtk_module_init): prune printf.
2320         (bridge_exit_func): fix app unref.
2321
2322         * libspi/Makefile.am: don't install registry or desktop.h
2323
2324         * libspi/*.h: update includes.
2325
2326         * libspi/application.h: don't include ourself, or
2327         other redundant headers.
2328
2329 2001-12-06  Michael Meeks  <michael@ximian.com>
2330
2331         * libspi/accessible.c
2332         (get_accessible_from_servant): impl.
2333         Upd. all CORBA impl.s to use it killing cut and paste.
2334
2335         * cspi/spi_main.c (cspi_cleanup): guard vs. double
2336         invokes.
2337         (SPI_init): register atexit cleanup handler here.
2338
2339 2001-12-06  Michael Meeks  <michael@ximian.com>
2340
2341         * at-bridge/bridge.c (gtk_module_init): g_error on
2342         activation exception
2343
2344 2001-12-06  Michael Meeks  <michael@ximian.com>
2345
2346         * at-bridge/bridge.c (gtk_module_init): some sort of
2347         confusing merge clash - reverted.
2348         (bridge_idle_init): ditto.
2349
2350         * test/test-simple.c (main, utterable_normal_derefs):
2351         merge from Bill - somehow not committed.
2352
2353 2001-12-06  Michael Meeks  <michael@ximian.com>
2354
2355         * libspi/value.c (spi_value_class_init): upd.
2356         (spi_value_finalize): kill.
2357
2358         * libspi/table.c (spi_table_finalize): kill.
2359         (spi_table_interface_new): upd.
2360         (spi_table_class_init): upd.
2361         (get_table_from_servant): impl.
2362         Upd. all CORBA impl.s to use it killing yet more cut and paste.
2363
2364         * libspi/selection.c (spi_selection_finalize): kill.
2365         (spi_selection_interface_new): upd.
2366         (spi_selection_class_init): upd.
2367         (get_selection_from_servant): impl.
2368         Upd. all CORBA impl.s to use it killing yet more cut and paste.
2369
2370         * libspi/relation.c (spi_relation_finalize): kill.
2371         (spi_relation_class_init, spi_relation_new): upd
2372
2373         * libspi/image.c (spi_image_finalize): kill.
2374         (spi_image_class_init): upd.
2375         (spi_image_interface_new): upd.
2376         (get_image_from_servant): impl.
2377         Upd. all CORBA impl.s to use it killing yet more cut and paste.
2378
2379         * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
2380         (spi_hyperlink_finalize): kill.
2381         (spi_hyperlink_new): upd.
2382         (get_hyperlink_from_servant): impl.
2383         Upd. all CORBA impl.s to use it killing yet more cut and paste.
2384
2385         * libspi/hypertext.c (spi_hypertext_interface_new): upd.
2386         (spi_hypertext_finalize): kill.
2387         (spi_hypertext_class_init): upd.
2388         (get_hypertext_from_servant): impl.
2389         Upd. all CORBA impl.s to use it killing yet more cut and paste.
2390
2391         * libspi/editabletext.c (spi_editable_text_finalize): kill.
2392         (spi_editable_text_interface_new): upd.
2393         (get_editable_text_from_servant): impl.
2394         Upd. all CORBA impl.s to use it killing yet more cut and paste.
2395         
2396         * libspi/text.c (get_text_from_servant): impl.
2397         All impls - update to use it killing more cut and paste,
2398         also fix bad string returns on duff args ( a somewhat
2399         impossible case to handle - but hey ).
2400         (spi_text_construct): impl.
2401         (spi_text_interface_new): upd.
2402         (spi_text_object_finalize): kill.
2403
2404         * libspi/component.c
2405         (accessibility_component_object_finalize): kill.
2406         (spi_component_class_init): upd.
2407         (get_component_from_servant): impl. helper to kill cut & paste.
2408         (impl_accessibility_component_contains): 
2409         (impl_accessibility_component_get_accessible_at_point): 
2410         (impl_accessibility_component_get_position): 
2411         (impl_accessibility_component_get_extents): 
2412         (impl_accessibility_component_get_mdi_z_order): 
2413         (impl_accessibility_component_get_layer): 
2414         (spi_component_interface_new): upd.
2415
2416         * libspi/action.c (spi_action_finalize): kill.
2417         (spi_action_class_init): upd. inherit from SpiObject.
2418         (spi_action_interface_new): upd.
2419         (get_action_from_servant): impl. helper to reduce cut & paste.
2420         (impl_getKeyBinding, impl_getName, impl_doAction),
2421         (impl_getDescription): Use it everywhere.
2422
2423         * cspi/spi_main.c (get_live_refs): a pointer hash.
2424         (spi_object_hash, spi_object_equal): comment out.
2425         There are issues with CORBA object hashing that need
2426         solving.
2427
2428         * libspi/application.c (spi_application_init),
2429         (spi_application_new): upd.
2430
2431         * libspi/accessible.c (spi_accessible_object_finalize): kill.
2432         (spi_accessible_class_init): upd.
2433         s/accessible/object/ in epv methods.
2434
2435 2001-12-05  Bill Haneman <bill.haneman@sun.com>
2436
2437         * at-bridge/bridge.c:
2438         Reorder the bridge initialization into the bridge gtk_module_init,
2439         an immediate call to bridge_register_app, and an idle_add for
2440         register_atk_event_listeners (the only code that *must* wait until
2441         GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
2442         the activation, creates the application's Accessible object, and
2443         queues the bridge_idle_init function.  Restored call to
2444         Accessibility_Registry_deregisterApplication().  
2445         Prior to making this call we obtain a new reference to the
2446         registry, which is a temporary hack that helps us handle apps that
2447         shut down the bonobo mainloop before we get there.
2448
2449         * libspi/registry.c:
2450         Fix string leakage in debug block, and don't segv if a an app
2451         dies before its event notifications have been propagated.
2452
2453         * cpi/spi_util.c:
2454         Modify cspi_check_ev() to call g_warning() rather than g_error(),
2455         as stopgap measure until we get proper exception handling when 
2456         objects die during or before interrogation.  
2457
2458         * cspi/spi_main.c:
2459         * cspi/spi.h:
2460         Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
2461         Also changed default value of is_gnome_app to TRUE.
2462
2463         * test/simple-at.c:
2464         * test/keysynth-demo.c:
2465         Changed use of SPI_init and SPI_event_main to reflect API change above.
2466
2467         * test/simple-at.c:
2468         Made report_focus_event check the warning value from getName
2469         before reporting on focussed accessible; simplifies handling of
2470         notifications from dead objects.
2471
2472         * test/test-simple.c: (Changes not in this patch since source is
2473         not in CVS ?)
2474         
2475 2001-12-05  Michael Meeks  <michael@ximian.com>
2476
2477         * registryd/registryd.c (main): protect against
2478         bonobo-activation startup race condition.
2479
2480         * cspi/spi_main.c (cspi_object_add_check): cope
2481         with the exception elegantly.
2482
2483         * idl/Accessible.idl: decl. ChildGone
2484
2485         * libspi/desktop.c (spi_desktop_dispose): impl.
2486         (spi_desktop_class_init): upd.
2487         (spi_desktop_add_application),
2488         (spi_desktop_remove_application),
2489         (abnormal_application_termination): impl.
2490         (impl_desktop_get_child_at_index): re-impl.
2491
2492         * libspi/registry.c
2493         (impl_accessibility_registry_deregister_application),
2494         (impl_accessibility_registry_register_application): 
2495         kill excessive debug clutter.
2496
2497         * test/test-simple.c (test_misc): test some NULL
2498         tolerance. (main): upd.
2499
2500         * cspi/spi_main.c (cspi_accessible_is_a): a NULL
2501         implements no interfaces - so let's not crash.
2502
2503         * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
2504
2505         * libspi/accessible.c (spi_accessible_new_return): impl.
2506         helper to calm the cut and paste, to cope with
2507         NULL AtkObjects effectively and efficiently, and to kill
2508         the referencing bugs.
2509
2510         * libspi/table.c (impl_getAccessibleAt),
2511         (impl_getRowHeader, impl_getColumnHeader): upd.
2512
2513         * libspi/hyperlink.c (impl_getObject): upd.
2514
2515         * libspi/accessible.c
2516         (impl_accessibility_accessible_get_child_at_index): upd.
2517
2518         * libspi/component.c
2519         (impl_accessibility_component_get_accessible_at_point): upd.
2520
2521         * test/test-simple.c (test_editable_text, test_text): impl.
2522         some simple tests.
2523
2524         * cspi/spi_editabletext.c
2525         (AccessibleEditableText_insertText): constify.
2526
2527         * test/test-simple.c (focus_me): make more robust.
2528
2529         * libspi/accessible.c: remove some printfs in methods that
2530         we test and work fine, so we can get a clean tree dump.
2531
2532         * test/test-simple.c (validate_accessible),
2533         (validate_tree): make tree dumping pretty too.
2534
2535         * at-bridge/bridge.c (bridge_signal_listener): upd. so
2536         it builds without debug on.
2537
2538         * test/test-simple.c (validate_accessible): fix the most
2539         ludicrous bug.
2540
2541         * cspi/spi_main.c (spi_object_release): leave the nicely
2542         blanked memory around if in debug mode.
2543
2544         * cspi/spi-listener-impl.c (cspi_event): use add_check.
2545
2546 [committed to fixups2]
2547 2001-12-05  Michael Meeks  <michael@ximian.com>
2548
2549         * libspi/editabletext.c
2550         (spi_editable_text_class_init): g_type_class_peek_parent,
2551         not interface peek - so we finalize cleanly.
2552
2553         * libspi/accessible.c (spi_accessible_new): kill debug.
2554
2555         * test/test-simple.c (validate_accessible): fix ref.
2556         leak, print strings before freeing them; sigh, comment a
2557         chunk out due to strangeness.
2558         (validate_tree): unref the child after use.
2559
2560         * cspi/spi_component.c (AccessibleComponent_getLayer):
2561         add missing break statement, switch on zlayer not the
2562         uninitialized retval.
2563
2564         * cspi/spi_main.c (cspi_object_add): add assert, local ref
2565         before (possibly re-entering) remote unref.
2566
2567         * test/simple-at.c (main): unref the desktop.
2568
2569         * cspi/spi_accessible.c (cspi_accessible_is_a): move 
2570         into:
2571         
2572         * cspi/spi_main.c (cspi_accessible_is_a): here to 
2573         isolate bonobo API usage more.
2574
2575         * libspi/registry.c (impl_accessibility_registry_register_application): 
2576         prune bogus comment.
2577
2578 2001-12-04  Michael Meeks  <michael@ximian.com>
2579
2580         * test/test-simple.c (validate_tree): upd.
2581         IndexInParent check to make it more lucid.
2582         (validate_accessible): dump the tree.
2583
2584         * libspi/accessible.c (de_register_public_ref),
2585         (get_public_refs): impl.
2586         (spi_accessible_new): make more efficient & intuitive.
2587         Now IndexInParent check works.
2588
2589 2001-12-04  Michael Meeks  <michael@ximian.com>
2590
2591         * cspi/spi-util.h: remove.
2592
2593         * cspi/spi.h: move SPI_freeString here
2594
2595         * libspi/component.c (impl_accessibility_component_get_layer): 
2596         warning fixage.
2597         (impl_accessibility_component_get_mdi_z_order): ditto,
2598         return -1 on error - is this ok ?
2599
2600         * test/test-simple.c (test_application): impl.
2601
2602         * cspi/spi_accessible.c (Accessible_getApplication),
2603         (Accessible_isApplication): impl.
2604
2605         * libspi/registry.c (spi_listener_struct_free): release
2606         the CORBA reference too.
2607
2608         * libspi/accessible.c
2609         (impl_accessibility_accessible_get_parent): fix ref leak.
2610
2611         * libspi/registry.c (spi_registry_new): make the registry
2612         immortal - we don't want it to go away ever.
2613
2614         * libspi/application.c
2615         (spi_accessible_application_finalize): impl. cleanup.
2616
2617         * cspi/spi_registry.c
2618         (deregisterGlobalEventListenerAll),
2619         (deregisterGlobalEventListener),
2620         (deregisterAccessibleKeystrokeListener): fix ref leak.
2621
2622         * cspi/spi_main.c (SPI_init): remove redundant ref.
2623
2624         * test/test-simple.c (unutterable_horror): impl. to force a
2625         clean shutdown.
2626         (main): use it.
2627
2628         * libspi/registry.c
2629         (impl_accessibility_registry_deregister_application): release
2630         the application when we de-register it.
2631
2632         * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
2633         until we have the infastructure to get it right.
2634
2635 2001-12-03  Michael Meeks  <michael@ximian.com>
2636
2637         * libspi/Makefile.am: only build eventlistener.[ch]
2638
2639         * libspi/accessible.c
2640         (impl_accessibility_accessible_get_child_at_index): don't leak.
2641
2642         * at-bridge/bridge.c (bridge_exit_func): cope with an exit
2643         before we hit the idle handler.
2644
2645         * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
2646         debugging than exit.
2647
2648         * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
2649
2650         * libspi/listener.c (impl_notify_event): check source
2651         not NIL before unref.
2652
2653         * libspi/registry.c (impl_registry_notify_event): ditto.
2654
2655         * libspi/eventlistener.c
2656         (impl_accessible_event_notify_event): unref the source.
2657
2658         * libspi/accessibleeventlistener.c
2659         (impl_accessible_event_notify_event): unref the source.
2660
2661         * idl/Event.idl: remove 'hash_id' attribute - of no
2662         concievable use.
2663
2664         * libspi/application.c (notify_listeners): upd list
2665         iteration & sig.
2666         (spi_application_object_event_listener), 
2667         (spi_application_toolkit_event_listener): upd to do correct
2668         CORBA ref counting.
2669
2670         * libspi/registry.c
2671         (_registry_notify_listeners): update.
2672         (parse_event_type): this method also leaks like a sieve.
2673         (impl_accessibility_registry_deregister_global_event_listener): 
2674         fix ETYPE_WINDOW case.
2675
2676         * libspi/application.c
2677         (impl_accessibility_application_register_object_event_listener): 
2678         kill leak.
2679
2680         * libspi/hyperlink.c (impl_getObject): fix ref mistake.
2681
2682         * libspi/hypertext.c (impl_getLink): ditto.
2683
2684         * cspi/spi_main.c (cspi_object_add): remove
2685         bogus CORBA_Object_duplicate.
2686
2687         * cspi/spi-listener-impl.c (cspi_event): dup/ref
2688         on the object_add.
2689
2690         * cspi/spi_accessible.c
2691         (Accessible_getRelationSet): fix leak / referencing issue.
2692
2693         * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
2694         (cspi_object_add, cspi_object_unref): upd.
2695         (spi_object_release, get_live_refs): impl.
2696         (cspi_cleanup): simplify.
2697
2698         * *.[ch]: s/boolean/SpiBoolean/
2699
2700         * cspi/spi_accessible.c (role_names): actualy order so it
2701         corresponds with the enum !
2702
2703         * test/test-simple.c (test_roles): check some role strings
2704         vs. enums to detect offset errors.
2705
2706 2001-12-01  Michael Meeks  <michael@ximian.com>
2707
2708         * cspi/spi_main.c (cspi_object_add_check): impl. helper.
2709
2710         * cspi/spi_accessible.c (Accessible_getChildAtIndex):
2711         check ev before 
2712         (Accessible_getChildAtIndex): use cspi_add_check so we
2713         check the ev before using a (possibly) invalid value.
2714
2715         * libspi/accessible.c
2716         (impl_accessibility_accessible_get_parent): don't segv
2717         on a NULL parent.
2718
2719         * at-bridge/bridge.c (gtk_module_init): upd.
2720         (bridge_property_event_listener): don't leak strings
2721         and events !
2722         (bridge_state_event_listener),
2723         (bridge_property_event_listener): don't use a static
2724         buffer in case of recursive event emission &
2725         re-enterancy - split out the swathe of cut and paste
2726         into:
2727         (emit_eventv): and fix 2 ref leaks here & comply to the
2728         coding style.
2729         (bridge_register_app): rename to 
2730         (bridge_idle_init): this and kill arg parsing, split
2731         various inits & bonobo-activation registration to module
2732         init time, kill referencing error.
2733         (bridge_exit_func): fix the same leak.
2734         (bridge_focus_tracker): don't leak event structures
2735         and strings.
2736         (bridge_signal_listener): more leakage and cut & paste
2737         fixage.
2738         (bridge_key_listener): return the result - FIXME is
2739         this polarity correct ?
2740         (accessibility_keystroke_from_atk_key_event): rename
2741         (accessibility_init_keystroke_from_atk_key_event): and stop
2742         leakage.
2743         (gtk_module_init): return a value - not that it is checked by
2744         Gtk - but hey.
2745         (bridge_key_listener): register my horror at casting between
2746         IDL defined structs.
2747         (bridge_get_registry): kill - not used.
2748
2749         * cspi/spi_accessible.c (Accessible_getRole): make return const.
2750
2751         * test/test-simple.c (test_roles): impl.
2752         (test_desktop, validate_accessible, validate_tree): impl.
2753
2754         * cspi/spi_accessible.c (role_names): fixup bogus
2755         MAX_ROLES setup, make constants const for efficient linkage
2756         (AccessibleRole_getName): conform to coding style, make
2757         return 'const'
2758
2759 2001-11-30  Michael Meeks  <michael@ximian.com>
2760
2761         * cspi/spi.h: add missing prototype.
2762
2763         * libspi/registry.c (spi_listener_struct_new): fix sig.
2764
2765         * test/Makefile.am: add test-simple
2766
2767         * test/test-simple.c: add
2768
2769         * test/test.sh: add.
2770
2771         * cspi/spi_main.c (SPI_init): make SPI_inited module global,
2772
2773         * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
2774         do it straight - since otherwise we often get an activation race.
2775
2776 [ work before Bill duplicated a chunk of it ... ]
2777 2001-11-30  Michael Meeks  <michael@ximian.com>
2778
2779         * libspi/keystrokelistener.c
2780         (spi_keystroke_listener_class_init): fixup arg
2781         count (doh).
2782
2783         * libspi/eventlistener.c
2784         (spi_event_listener_class_init): ditto.
2785
2786         * tests/test.sh: add.
2787
2788         * cspi/spi-listener-impl.h: update macros.
2789
2790         * cspi/spi-listener-impl.c
2791         (cspi_event_listener_remove_callback): add
2792         correct pre-conditions.
2793
2794         * cspi/spi_main.c (SPI_exit): guard vs. double
2795         exits, exit the mainloop nicely.
2796         (SPI_event_main): make more sense.
2797         (SPI_init): move the atexit evilness here so we
2798         always do it (yuck).
2799         (SPI_event_main): upd.
2800
2801         * test/simple-at.c: update for listener changes.
2802
2803         * registryd/registryd.c (main): prune kruft.
2804
2805         * libspi/libspi.h: upd.
2806
2807         * libspi/eventlistener.[ch]: rename broken macros.
2808
2809         * libspi/accessibleeventlistener.[ch]: remove.
2810
2811         * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
2812
2813         * test/test-simple.c: Add - automated tests.
2814
2815         * cspi/spi-listener-impl.c (cspi_event),
2816         (cspi_key_event): add user_data to invoke.
2817         (cspi_keystroke_listener_finalize): impl.
2818         (cspi_keystroke_listener_class_init): upd.
2819
2820         * cspi/spi_event.c
2821         (createAccessibleEventListener),
2822         (AccessibleEventListener_addCallback),
2823         (createAccessibleKeystrokeListener),
2824         (AccessibleKeystrokeListener_addCallback): upd.
2825
2826         * libspi/deviceeventcontroller.c
2827         (spi_device_event_controller_check_key_event): add public proto.
2828
2829         * libspi/registry.c
2830         (impl_accessibility_registry_deregister_global_event_listener): 
2831         always init listeners.
2832         (_registry_notify_listeners): yes it is.
2833
2834         * cspi/spi-listener-impl.c (cspi_key_event): 
2835         move debug to here.
2836         (cspi_event_listener_finalize): impl.
2837         (cspi_event_listener_class_init): hook up.
2838         (event_handler_new, event_handler_free),
2839         (event_list_remove_by_callback): impl.
2840         (cspi_event_listener_remove_callback),
2841         (cspi_keystroke_listener_remove_callback),
2842         (cspi_keystroke_listener_add_callback),
2843         (cspi_event_listener_add_callback): upd.
2844
2845         * libspi/keystrokelistener.c
2846         (keystroke_listener_object_finalize): kill
2847         (spi_keystroke_listener_class_init): upd.
2848         (spi_keystroke_listener_add_callback),
2849         (spi_keystroke_listener_remove_callback): kill,
2850         use signals.
2851         (impl_key_event): prune drasticaly.
2852
2853         * libspi/eventlistener.c
2854         (spi_event_listener_add_callback),
2855         (spi_event_listener_remove_callback): kill, use
2856         signals.
2857         (impl_accessible_event_notify_event): upd.
2858         (spi_event_listener_object_finalize): remove.
2859
2860         * libspi/Makefile.am: use eventlistener.[ch]
2861
2862 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
2863
2864         * libspi/registry.c (_registry_notify_listeners):
2865         Changed listener loop iteration to use preferred convention.
2866         Got rid of string memory leaks caused be calling g_strconcat
2867         inside function calls.
2868
2869         * libspi/registry.c (parse_event_type):
2870         Stopped g_strconcat memory leaks, free the g_strsplit return,
2871         g_strdup the split pieces when used, etc.
2872
2873 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
2874
2875         * idl/State.idl: 
2876         Change method 'compare' to return a 'difference set' rather than
2877         taking a StateSet as an out parameter (more Java-friendly).
2878
2879         * idl/Accessible.idl:
2880         Added CORBA struct 'BoundingBox', to faciliate API changes below:
2881         
2882         * idl/Component.idl:
2883         * idl/Image.idl:
2884         Changed methods 'getExtents' and 'getImageExtents' in these
2885         interfaces to return a BoundingBox structure.  
2886         (getPosition and getSize are redundant and possibly should be
2887         removed, rather than creating a corresponding Point struct.)
2888
2889         * cspi/spi_component.c:
2890         Modify implementation of getExtents to reflect the above IDL
2891         change.
2892         
2893         * cspi/spi_image.c:
2894         * cspi/spi.h:
2895         Add (missing) AccessibleImage_getExtents () API.
2896
2897         * docs/reference/cspi/at-spi-cspi-sections.txt:
2898         Added AccessibleImage_getImageExtents () to docs.
2899         
2900 2001-12-03  Bill Haneman  <bill.haneman@sun.com>
2901
2902         * idl/Component.idl:
2903         Added two methods, getLayer () and getMDIZOrder (), to reflect
2904         the new ATK methods atk_object_get_layer and
2905         atk_object_get_mdi_z_order. (Which arguably should be part of the
2906         AtkComponent API and AtkObject).  Also added an enum,
2907         ComponentLayer, for the first method's return value.
2908
2909         * libspi/component.c:
2910         Added implementations for these methods.
2911
2912         * cspi/spi_component.c:
2913         * cspi/spi.h:
2914         Added cspi binding methods for above, 
2915         AccessibleComponent_getLayer() and
2916         AccessibleComponent_getMDIZOrder().
2917         Added cspi enum 'AccessibleComponentLayer'.
2918
2919         * docs/reference/cspi/at-spi-cspi-sections.txt:
2920         Added above methods to docs.
2921
2922         * cspi/spi-impl.h:
2923         * cspi/spi*.[ch]:
2924         Changed typedef for 'boolean' type (and all references to it) to
2925         SPIBoolean, to avoid keyword clashes with C++.
2926
2927         * test/simple-at.c:
2928         Changed usages of 'boolean' to SPIBoolean.
2929
2930         * test/keysynth-demo.c:
2931         Changed usages of 'boolean' to 'gboolean' (since this is a gnome
2932         app), except where SPIBoolean is required by the callbacks API.
2933         
2934 2001-12-02  Bill Haneman  <bill.haneman@sun.com>
2935
2936         * cspi/spi_registry.c:
2937         Removed obsolete X event loop for passive keygrabs (which now
2938         lives in libspi).
2939
2940         * registryd/registryd.c:
2941         Removed unnecessary call to gdk_init() [cruft]. This also allows
2942         removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
2943         * configure.in.
2944
2945 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
2946
2947         * docs/reference/cspi:
2948         Included docs for SPI_freeString in generated documentation.
2949
2950         * cspi/spi-util.c:c
2951         Renamed spi_freeString to SPI_freeString, for consistency.  Added
2952         documentation for this function.
2953
2954         * cspi/spi-util.h:
2955         Renamed spi_freeString to SPI_freeString, for consistency.  
2956         Removed obsolete method declaration string_from_corba_string.
2957
2958         * test/keysynth-demo.c:
2959         Small tweak to comments.
2960
2961         * test/simple-at.c:
2962         Stopped leaking the strings returned from CSPI. 
2963
2964 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
2965
2966         Merged Michael's branch (see his ChangeLog entries below).
2967         
2968         * at-bridge/bridge.c: Explicitly hold a ref to the registry while
2969         bridge is alive, release on exit.
2970         
2971         * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
2972         Fix type check macro.
2973         
2974         * cspi/spi_event.c:
2975         Added AccessibleKeystrokeListener_unref() method to reduce leakage.
2976         
2977         * cspi/spi_main.c: 
2978         Added is_gnome_app static, and method cspi_is_gnome_app(), 
2979         so we can call the appropriate shutdown routine at exit in SPI_exit.
2980         
2981         * cspi/spi_main.c (cspi_object_ref):
2982         Duplicate the corba object passed in, since we're keeping it around.
2983         
2984         * cspi/SPI_exit.c, cspi_cleanup:
2985         Moved the releasing of the live refs to its own function, so we
2986         can put it in g_atexit ().  Call the appropriate shutdown API
2987         depending on whethe calling client is a gnome app or not
2988         (bonobo_main_quit or CORBA_ORB_shutdown).
2989         
2990         * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
2991         Unref the listener when this method is called, after
2992         deregistration.  Updated the API docs to note this behavior.
2993
2994         * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
2995         Bugfixes: Ref the bonobo object when returning a parent or child 
2996         reference, or an AccessibleRelation.  Generally made sure
2997         BonoboObject refcount is incremented whenever we return an
2998         Accessible.
2999
3000         * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
3001         Fixed typo/bug in signal declaration.
3002         
3003         * libspi/accessibleeventlistener.h:
3004         Fixed a type macro.
3005
3006         * libspi/application.c (spi_application_new):
3007         Fixed leak in initialization.
3008
3009         * libspi/desktop.c:
3010         Remembered to increment bonobo-object refcount when returning
3011         children (applications) from desktop object.
3012         Added (empty) finalize method.
3013
3014         * libspi/deviceeventcontroller.c:
3015         Hold a ref to listeners inside DEControllerKeyListeners.
3016         Added dec_key_listener_free() method.  Use prepend instead of
3017         append in key_listener list.  Fixed some refcount madness and
3018         leaks in the listener registration/deregistration - deregistration
3019         now calls dec_key_listener_free() on listeners, and on the
3020         temporarily constructed dec_key_listener() used to perform the search/match.
3021
3022         * libspi/hypertext.c (spi_hypertest_finalize):
3023         Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
3024         class.  Also fixed spi_hypertext_interface_new() and
3025         SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
3026
3027         * libspi/hypertext.h: 
3028         Removed pointless and duplicate AtkObject pointer from
3029         SpiHypertextClass.
3030
3031         * libspi/keystrokelistener.c:
3032         Fixed incorrect type of keystroke_listener_parent_class,
3033         renamed keystroke_listener_object_finalize to
3034         spi_keystroke_listener_object_finalize.
3035         Fixed typo in signal declaration
3036         (spi_keystroke_listener_class_init).
3037
3038         * libspi/registry.c:
3039         Added funcsions spi_listener_struct_new() and
3040         spi_listener_struct_free() to help with memory management issues.
3041         We also now use these methods instead of gnew + poking stuff into
3042         the struct, and to decrement listener counts/free the listeners
3043         when deregistering them.
3044         Fix more refcount bugs in getDesktop() and
3045         getDeviceEventController().  
3046
3047         * test/simple-at.c:
3048         De-ref the desktop after enumerating the applications.  Explicitly
3049         decrement the refcounts on the created listeners on exit (using
3050         _unref for keystroke listeners, and via the
3051         deregisterGlobalEventListenerAll command for other event
3052         listeners).
3053         
3054 2001-11-27  Michael Meeks  <michael@ximian.com>
3055
3056         * cspi/spi-listener.h: fixup enum.
3057
3058 2001-11-27  Michael Meeks  <michael@ximian.com>
3059
3060         * cspi/spi-listener-impl.c (cspi_event_listener_new),
3061         (cspi_keystroke_listener_new): Use the cspi variants.
3062
3063 2001-11-26  Michael Meeks  <michael@ximian.com>
3064
3065         * test/keysynth-demo.c: fix 2 compile warnings, missing
3066         type in decl. etc.
3067
3068         * test/simple-at.c (report_focussed_accessible),
3069         (report_focus_event, report_button_press),
3070         (check_property_change, is_command_key),
3071         (report_ordinary_key_event, report_command_key_event): upd.
3072
3073         * util/mag_client.h: include pre-requisites.
3074
3075         * libspi/accessibleeventlistener.c
3076         (spi_event_listener_object_finalize): free any lingering
3077         callbacks.
3078         
3079         * libspi/keystrokelistener.c
3080         (keystroke_listener_object_finalize): ditto.
3081
3082         * cspi/spi-listener-impl.[ch]: Add to implement cspi style
3083         callbacks, with cspi types.
3084         
3085         * cspi/spi_event.c (createAccessibleEventListener): chain to
3086         (AccessibleEventListener_addCallback): here.
3087         (createAccessibleKeystrokeListener): chain to 
3088         (AccessibleKeystrokeListener_addCallback): here.
3089
3090         * libspi/keystrokelistener.c
3091         (spi_keystroke_listener_class_init): add signal.
3092         (impl_key_event): emit the event.
3093         (boolean_handled_accumulator): impl.
3094         (marshal_BOOLEAN__POINTER): add, gack.
3095
3096         * libspi/accessibleeventlistener.c
3097         (spi_event_listener_class_init): add signal.
3098         (impl_accessible_event_notify_event): emit the signal &
3099         make the loop efficient.
3100         (spi_event_listener_add_callback): prepend the callback.
3101
3102         * libspi/accessibleeventlistener.h: add an 'event' signal,
3103         decl type on callback.
3104
3105         * libspi/keystrokelistener.h: ditto.
3106
3107         * cspi/spi-listener.h: make methods typesafe and
3108         make them use the new event typedefs.
3109
3110         * test/simple-at.c (report_focussed_accessible):
3111         include mag_client.h
3112         Use *(void *)text_interface not the other thing.
3113         
3114         * configure.in: add gtk to registryd bits - since we use
3115         gdk there ( why ? )
3116
3117         * util/magnifier.c: include libbonobo.h
3118         
3119 2001-11-25  Bill Haneman  <bill.haneman@sun.com>
3120
3121         * test/keysynth-demo.c:
3122         Turned this into a simple scanning keyboard, to demonstrate the
3123         use of g_timeout_add () as a means of creating timers for
3124         scanning, and the use of GtkStyle for visually indicating when
3125         virtual keyboard elements are selected.
3126
3127         keysynth-demo now listens to any keyboard keys with zero-valued
3128         keycodes (i.e. 'unused' keys) and interprets them as
3129         single-switches.
3130
3131         Reworked the shiftlatch code so that shift-down state isn't held
3132         for long periods (it's only synthesized immediately prior to
3133         the keysynth event it's modifying).  Note that shiftlatch in this
3134         demo is a convenience, not intended to take the place of AccessX 
3135         which is the better choice for getting 'sticky' modifier keys.
3136
3137         * libspi/deviceeventcontroller.c:
3138         * at-bridge/bridge.c:
3139         * cspi/spi_registry.c:
3140         Removed some debug print stuff, and put other verbosity in #ifdef
3141         blocks.
3142
3143         * util/magnifier.c:
3144         * util/mag_image.h:
3145         Implemented some more of the magnifier IDL for the simple
3146         magnifier: namely, getZoomRegionParams. 
3147         Added mag_x and mag_y members to MagnifierData struct, aid of this
3148         implementation.
3149         Added GtkWindow::realize signal handler to magnifier, to keep it
3150         from receiving keyboard focus from the WM.
3151
3152 2001-11-23  Mark McLoughlin  <mark@skynet.ie>
3153
3154         * cspi/spi-private.h: my guess at what michael forgot
3155         before he ran off to NZ :-)
3156
3157 2001-11-23  Michael Meeks  <michael@ximian.com>
3158
3159         * cspi/spi_event.c (AccessibleEventListener_removeCallback):
3160         comment out non existant method invoke so we link.
3161
3162         * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
3163         use bonobo_exception_get_text for more friendly warnings.
3164
3165         * cspi/spi.c (Obj_Add): move into spi_main & rename
3166         spi_object_add; kill spi.c
3167
3168         * cspi/spi_registry.c
3169         (deregisterGlobalEventListener),
3170         (deregisterGlobalEventListenerAll),
3171         (registerGlobalEventListener): fix exception leaks.
3172
3173         * cspi/spi_main.c (spi_exception): impl. helper, so we
3174         don't leak exceptions.
3175
3176         * cspi/spi_selection.c
3177         (AccessibleSelection_deselectSelectedChild): return the
3178         success state.
3179
3180         * cspi/spi_main.c (spi_ev): impl; hack - gack.
3181         (spi_registry): ditto.
3182         (SPI_init): guard against double inits.
3183
3184         * cspi/*.c: use spi_ev (), and spi_registry () where
3185         appropriate - a temporary hack until we have something
3186         better. Use spi_object_add
3187
3188 2001-11-22  Michael Meeks  <michael@ximian.com>
3189
3190         * cspi/Makefile.am: re organise, install the headers.
3191
3192         * cspi/*.h: add G_BEGIN/END_DECLS
3193
3194 2001-11-22  Bill Haneman  <bill.haneman@sun.com>
3195
3196         * test/simple-at.c:
3197         Added non-preemptive keylistener for key events with no modifiers
3198         and shift-only modifier.
3199
3200         * libspi/keystrokelistener.c:
3201         Removed some verbose diagnostics printout.
3202
3203         * cspi/spi_registry.c:
3204         Fixed a bug that caused all key listeners to be registered as
3205         pre-emptive.
3206         
3207         * libspi/deviceeventcontroller.c:
3208         Fixed bug that caused XGrabKey (preemptive key grab) to be called
3209         for non-preemptive key masks.
3210
3211
3212 2001-11-22  Bill Haneman  <bill.haneman@sun.com>
3213
3214         * docs/reference/idl/at-spi-idl-docs.sgml:
3215         * docs/reference/idl/at-spi-idl-sections.txt:
3216         * docs/reference/idl/at-spi-idl-overrides.txt:
3217         Added missing files.
3218
3219         * docs/reference/Makefile.am:
3220         removed idl from SUBDIRS until we can figure a way to get gtk-doc
3221         to scan the IDL files :-(
3222
3223         * docs/reference:
3224         * docs/cspi:
3225         * docs/idl:
3226         Added .cvsignore files.
3227         
3228 2001-11-21  Bill Haneman  <bill.haneman@sun.com>
3229
3230         * libspi/deviceeventcontroller.c:
3231         * libspi/keystrokelistener.c:
3232         * cspi/spi_event.c:
3233         * cspi/spi_registry.c:
3234         Added filters for KeySets, KeyEventSeq, and event types to key
3235         event dispatching, so listeners should only receive those events
3236         that they requested :-)
3237
3238 2001-11-21  Bill Haneman  <bill.haneman@sun.com>
3239
3240         * configure.in:
3241         * docs/Makefile.am:
3242         * docs/reference:
3243         * docs/reference:Makefile.am:
3244         * docs/reference/cspi:
3245         * docs/reference/cspi:Makefile.am:
3246         * docs/reference/cspi:tmpl:
3247         * docs/reference/cspi:tmpl:*.sgml:
3248         * docs/reference/idl:
3249         * docs/reference/idl:Makefile.am:
3250         * docs/reference/idl:at-spi-idl-sections.txt:
3251         * docs/reference/idl:at-spi-idl-docs.sgml:
3252         * docs/reference/idl:tmpl:
3253         * docs/reference/idl:tmpl:*.sgml:
3254
3255         Restructured docs directory to allow separate 'reference' docs
3256         section, and forked idl and cspi docs.  Added the sgml template
3257         files to CVS.  Added the first sections/structural sgml for the
3258         IDL docs.
3259
3260 2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
3261
3262         * configure.in, libspi/Makefile.am: find libXtst.
3263
3264 2001-11-21  Michael Meeks  <michael@ximian.com>
3265
3266         * test/accessx-gui.c: s/spi_value/value/ - doh.
3267
3268         * libspi/base.[ch]: add.
3269
3270 2001-11-18  Bill Haneman <bill.haneman@sun.com>
3271
3272         * idl/Accessible.idl:
3273         * idl/Application.idl:
3274         * idl/Registry.idl:
3275         * idl/Action.idl:
3276         Started gtk-doc cleanup on IDL.
3277
3278         * libspi/deviceeventcontroller.c:
3279         Added and connected non-preemptive key notification from the
3280         toolkits (in addition to the pre-emptive support from XServer
3281         which we had before, but which causes 'focus flashing').  Filters
3282         are presently limited to key modifiers and global/non-global,
3283         KeySets are presently ignored, as are KeyEvent masks.
3284
3285         Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
3286         structs into the persistant structure rather than just storing
3287         pointers to things that might not persist across servant
3288         invocations.
3289
3290         The XGrabKey call now does async keygrabs, because synchronous
3291         ones were deadlocking with GDK_event code in a very nasty way.
3292
3293         Added boolean to internal method notify_keylisteners, to indicate
3294         whether the event came from the 'toolkit source' or the 'global
3295         (XServer) source' - this is used in the notification process to
3296         determine which listeners to send the event to.
3297
3298         deviceeventcontroller.c is now warning-free.
3299         
3300         * libspi/registry.c:
3301         Fixed regression in application de-registration.
3302         Also fixed some really brain-dead weirdness having to do with
3303         event dispatching - event structs are now duplicated before being
3304         re-marshalled in the dispatch to listeners.  This also fixes a
3305         Solaris build problem.
3306         
3307         
3308 2001-11-20  Michael Meeks  <michael@ximian.com>
3309
3310         * libspi/registry.c
3311         (impl_accessibility_registry_deregister_global_event_listener): 
3312         segv. protection.
3313
3314         * libspi/deviceeventcontroller.c
3315         (spi_device_event_controller_check_key_event): return
3316         FALSE on no virtual method.
3317
3318         * libspi/*..h: make includes work on a correctly pathed install.
3319
3320         * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
3321
3322         * libspi/application.h: kill unused ( and whacked out )
3323         gboolean *spi_application_set_id (AtkObject *app, long id);
3324
3325 2001-11-20  Michael Meeks  <michael@ximian.com>
3326
3327         * libspi/*.[ch]: further convert to bonobo's type func
3328         macros, remove redundnant casts etc.
3329
3330         * libspi/text.c s/accessibility_text/spi_text/g,
3331         re-order to de-cruft.
3332
3333         * libspi/hypertext.c: re-order to kill a huge slew
3334         of redundant forward decls.
3335
3336         * libspi/relation.c: ditto.
3337
3338         * libspi/image.c: ditto.
3339
3340         * */.cvsignore: update
3341         
3342 2001-11-20  Michael Meeks  <michael@ximian.com>
3343
3344         * libspi/deviceeventcontroller.c
3345         (_controller_register_with_devices): use g_getenv,
3346         kill stdlib.h include.
3347
3348         * libspi/keystrokelistener.c
3349         (spi_keystroke_listener_get_type): kill
3350         (spi_keystroke_listener_class_init),
3351         (spi_keystroke_listener_init): rename to this.
3352
3353         * libspi/text.c (impl_getAttributes): fix warning / bug.
3354
3355         * libspi/*.[ch]: more headers, includes and over commenting.
3356         
3357 2001-11-20  Michael Meeks  <michael@ximian.com>
3358
3359         * libspi/*.[ch]: fixup headers, includes and over commenting.
3360
3361         * libspi/image.c (impl__get_imageDescription): const
3362         correctness warning fix. remove redundant casting.
3363
3364         * libspi/table.c (impl_getRowDescription): ditto.
3365         (impl_getColumnDescription): ditto.
3366
3367         * libspi/libspi.h: add.
3368
3369 2001-11-19  Michael Meeks  <michael@ximian.com>
3370
3371         * libspi/editabletext.c (impl_setAttributes): fix warnings.
3372
3373         * libspi/component.c (accessibility_component_get_type): 
3374         rename to (spi_component_get_type): and macroify.
3375         (accessibility_component_init): rename to
3376         (spi_component_init): this
3377         (accessibility_component_class_init): rename to
3378         (spi_component_class_init): this
3379
3380         * libspi/action.c (spi_action_get_type): kill, use the macro.
3381
3382         * libspi/deviceeventcontroller.c (_compare_listeners): re-order
3383         to avoid prototype.
3384
3385         * libspi/application.c (spi_application_object_event_listener),
3386         (impl_accessibility_application_register_object_event_listener):
3387         warning fixes / const understanding updates.
3388
3389         * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
3390         warning fixes.
3391
3392 2001-11-18  Bill Haneman <bill.haneman@sun.com>
3393
3394         * libspi/spi_accessible.c: Added docs and C bindings for
3395         AccessibleStateSet. (No implementations yet).  Documentation
3396         coverage for C bindings now 100%. Made docs for event listeners
3397         more explicit.
3398         
3399         * idl/Registry.idl:
3400         Added methods 
3401             boolean notifyListenersSync (in DeviceEventListener listener,
3402                                      in DeviceEvent event);
3403
3404             oneway void notifyListenersAsync (in DeviceEventListener listener,
3405                                           in DeviceEvent event);
3406
3407         Added DeviceEventListener and DeviceEvent structs (may deprecate
3408         KeyStroke and KeystrokeListener in favor of this generic
3409         event/listener framework for devices).
3410
3411         * libspi/deviceeventcontroller.c:
3412
3413         Changed some key listener code to take masks, etc., and paved the
3414         way for integration of toolkit/non-preemptive key events. Changed
3415         signatures of some internal methods.
3416
3417         * at-bridge/bridge.c:
3418         Fixed regression connecting to interface signals, apparently
3419         caused by GTK+ changes.
3420
3421         Added an internal bridge_state_listener to deal with
3422         property-change:accessible-state signals.
3423
3424         Changed the key_listeners GList to store structs (including masks,
3425         etc.) instead of just CORBA_Objects (required for full
3426         implementation of key listener API).
3427
3428         Connected the bridge to all currently supported Atk signals.
3429         Events now supported: 
3430             object:property-change
3431             object:property-change:accessible-name
3432             object:property-change:accessible-state
3433             object:property-change:accessible-description
3434             object:property-change:accessible-parent
3435             object:property-change:accessible-value
3436             object:property-change:accessible-role
3437             object:property-change:accessible-table-caption
3438             object:property-change:accessible-table-column-description
3439             object:property-change:accessible-table-column-header
3440             object:property-change:accessible-table-row-description
3441             object:property-change:accessible-table-row-header
3442             object:property-change:accessible-table-summary
3443             object:children-changed
3444             object:visible-data-changed
3445             object:selection-changed
3446             object:text-selection-changed
3447             object:text-changed
3448             object:text-caret-moved
3449             object:row-inserted
3450             object:row-reordered
3451             object:row-deleted
3452             object:column-inserted
3453             object:column-reordered
3454             object:column-deleted
3455             object:model-changed        
3456
3457 2001-11-16  Bill Haneman <bill.haneman@sun.com>
3458
3459         * libspi/hyperlink.c,h:
3460         Fixed some broken stuff in hyperlink.
3461         
3462         * libspi/relation.h:
3463         * libspi/relation.c:
3464         * cspi/spi_accessible.c:
3465         Initial implementations of AccessibleRelation methods, and docs.
3466
3467         * libspi/accessible.c:
3468         Fixed a bug that caused SEGV  if an accessible
3469         object's description is NULL, and a client
3470         requests it.  An empty string is now returned.
3471
3472         * cspi/spi_editabletext.c:
3473         * cspi/spi_hypertext.c:
3474         * cspi/spi_image.c:
3475         * cspi/spi_hyperlink.c:
3476         * cspi/spi_table.c:
3477         Added docs.  
3478
3479         Doc coverage now 95%.
3480
3481 2001-11-16  Bill Haneman <bill.haneman@sun.com>
3482
3483         One last namespacing revision:
3484         * libspi/accessibleeventlistener.[ch]:
3485         Renamed SpiAccessibleEventListener to SpiEventListener,
3486         (no need for two namespaces ;-)
3487
3488         And lots of documentation fixes:
3489
3490         * docs/at-spi-docs.sgml:
3491         Fixed 'underscore vs. hyphen' bug that was preventing
3492         the gtk-doc API docs from being automatically generated.
3493
3494         * cspi/spi-impl.h
3495         * cspi/spi-listener.h
3496         * cspi/spi.h
3497         * cspi/spi_accessible.c
3498         * cspi/spi_action.c
3499         * cspi/spi_application.c
3500         * cspi/spi_component.c
3501         * cspi/spi_editabletext.c
3502         * cspi/spi_event.c
3503         * cspi/spi_hypertext.c
3504         * cspi/spi_main.c
3505         * cspi/spi_registry.c
3506         * cspi/spi_selection.c
3507         * cspi/spi_text.c
3508         * cspi/spi_value.c
3509         * docs/Makefile.am
3510         * docs/at-spi-docs.sgml
3511         * docs/at-spi-sections.txt
3512         
3513         Added and fixed up gtk-doc documentation in cspi.
3514         
3515         Interfaces now (fully) documented (subject to revision and enhancement):
3516         SPI_main
3517         Event Listener Support
3518         Registry API
3519         AccessibleApplication
3520         Accessible
3521         AccessibleAction
3522         AccessibleComponent
3523         AccessibleEditableText
3524         AccessibleSelection
3525         AccessibleText
3526         AccessibleValue
3527
3528         still pending:
3529         AccessibleStateSet
3530         AccessibleRelationSet
3531         AccessibleImage
3532         AccessibleTable
3533         AccessibleHyperlink
3534         
3535 2001-11-14  Bill Haneman <bill.haneman@sun.com>
3536
3537         * at-bridge/bridge.c:
3538         Initial work for toolkit-level key snooper connection by bridge.
3539
3540         * cspi/spi-impl.h:
3541         * cspi/spi_*.h:
3542         * cspi/spi_*.c:
3543         New typedefs and fixes to support new namespacing, and cleaner
3544         separation of cspi bindings from libspi bonobo implementation.  
3545         Removed inconsistent and extraneous Spi* namespace prefix that
3546         had crept into cspi headers.
3547         Lots of comment fixes that sed had missed.
3548
3549         * cspi/spi-roletypes.h:
3550         * cspi/spi-statetypes.h:
3551         Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
3552         to AccessibleRoleType.
3553         
3554         * libspi/accessibleeventlistener.h:
3555         Fixed minor namespacing weirdness.
3556
3557         * libspi/deviceeventcontroller.c:
3558         Reordered some internal API for device listeners.
3559         Changed the key registry final boolean to 'is_system_global'
3560         rather than 'is_synchronous', which is more descriptive of its 
3561         actual meaning.
3562         Added spi_device_event_controller_new().
3563         Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
3564          
3565         * libspi/keystrokelistener.[ch]:
3566         Namespaced KeystrokeListener to SpiKeystrokeListener.
3567         Changed uses of keymasks to use SPI_ prefix, and did other
3568         knock-on fixups.
3569
3570         * libspi/keymasks.h:
3571         Namespaced keymask constants with SPI_ prefix.
3572
3573         * libspi/registry.c:
3574         Some warning fixes, and knock-on fixes from namespace changes.
3575
3576         * test/Makefile.am:
3577         Added rules for accessx-gui test program.
3578
3579         * test/accessx-gui.c:
3580         Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
3581         utility.  It doesn't actually use at-spi, but it's still cool and
3582         useful ;-)
3583
3584         * test/keysynth-demo.c:
3585         * test/simple-at.c:
3586         * test/at.c:
3587         * test/app.c:
3588         Fixes so that these test clients work properly with the namespaced
3589         libraries. (Incompletely tested for technical reasons, fixes may follow)
3590         
3591
3592 2001-11-13  Michael Meeks  <michael@ximian.com>
3593
3594         * libspi/application.c
3595         (impl_accessibility_application_get_version),
3596         (impl_accessibility_application_get_toolkit_name):
3597         warning fixes.
3598         (impl_accessibility_application_set_id),
3599         (impl_accessibility_application_get_id): remove
3600         redundant casting code.
3601
3602         * libspi/action.c (impl_getDescription): fix warnings.
3603
3604         * libspi/accessible.c
3605         (impl_accessibility_accessible_get_parent),
3606         (impl_accessibility_accessible_get_child_at_index),
3607         (impl_accessibility_accessible_get_state),
3608         (impl_accessibility_accessible_get_relation_set):
3609         warning fixes & include action.h
3610
3611 2001-11-13  Michael Meeks  <michael@ximian.com>
3612
3613         * *.[ch] fix bits I screwed up:
3614
3615                 s/([^ \tb(\*\&\?\",])spi_/\1/g;
3616                 s/([^ \tb(\*\&\?\",])Spi/\1/g;
3617         
3618 2001-11-13  Michael Meeks  <michael@ximian.com>
3619
3620         * *.[ch] Namespace libspi into spi_ and Spi.
3621
3622 2001-13-11  Michael Meeks  <michael@ximian.com>
3623
3624         * Makefile.am: dist & install at-spi-1.0.pc
3625
3626         * libspi/Makefile.am: install into at-spi-1.0
3627
3628         * idl/Makefile.am (idldir): install into at-spi-1.0
3629
3630         * at-spi-1.0.pc.in: add.
3631
3632         * configure.in: build it.
3633
3634 2001-11-12  Bill Haneman <bill.haneman@sun.com>
3635
3636         * test/keysynth-demo.c:
3637         Use a 'realize' signal-handler to set the WM properties for
3638         the virtual keyboard, rather than making it a "POPUP" type
3639         override-redirect window (thanks to anders carlsson for that
3640         tip!)
3641
3642 2001-11-11  Bill Haneman <bill.haneman@sun.com>
3643
3644         * test/Makefile.am:
3645         * test/keysynth-demo.c:
3646         Added new test of key synthesis, which creates a simple
3647         (mouse-operated) onscreen keyboard.  It inserts key events into
3648         the currently-focused window, thus it does not grab keyboard focus
3649         itself.
3650
3651         * cspi/spi_registry.c:
3652         Added C binding for AT-SPI generateKeyEvent.
3653
3654         * libspi/deviceeventcontroller.c:
3655         Added call to XFilterEvent so that key listener works with XIM (we
3656         hope).  Added event_synth_type to generateKeyEvent, so that we can
3657         produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
3658         synthesize a press/release pair for KeySyms.    
3659         
3660 2001-11-09  Bill Haneman <bill.haneman@sun.com>
3661
3662         * libspi/Makefile.am: 
3663         * registryd/Makefile.am:
3664         (temporary) hack to include libXtst in libspi and registryd.
3665         (Needed for keystroke synthesis, see below).
3666
3667         * idl/Registry.idl:
3668         Improved API for registerKeystrokeListener, in accordance with
3669         discussions with Gnopernicus team and X server research.
3670
3671         * libspi/registry.c:
3672         * libspi/deviceeventcontroller.c:
3673         * libspi/accessible.c:
3674         * libspi/keystrokelistener.c:
3675         Changes and fixes to support keylisteners for potentially
3676         consumed key events (that is, 'passive grabs').
3677         Added implementation for generateKeyEvent() [untested].
3678
3679         * cspi/spi.h:
3680         Changes to registerKeystrokeListener() API, as above.
3681         Added deregisterGlobalEventListenerAll(), and 
3682         deregisterKeystrokeListener(), which are needed for clean exit of
3683         clients.
3684         Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
3685         and a macro ALL_KEYS which may be used in place of a KeySet pointer.
3686         
3687         * cspi/spi_registry.c:
3688         Added implementations of function prototypes mentioned above.
3689         
3690         * registryd/registryd.c:
3691         Added the key listener event source as a g_timeout(), to allow
3692         receipt of key events that are not caught by GDK (since GDK
3693         doesn't support passive keygrabs, this was necessary).
3694
3695         * test/simple-at.c:
3696         Changed to attach a keylistener to 'Alt' keys, and
3697         respond to the following keycommands: Alt-M (toggle magnifier);
3698         Alt-F (toggle speech); Alt-Q (quit).
3699         Added an exit routine to deregister the listeners, and a key
3700         listener that prints some key info to the console when a key
3701         matches the listener mask (and is thus received by the listener).
3702         
3703         * util/idl/Magnifier.idl:
3704         Changes to magnifier API to support multiple zoom regions,
3705         non-uniform scaling in x and y, markDirty, and a host of other
3706         features that would be useful to magnification.
3707
3708         * util/mag_image.h:
3709         * util/mag_client.c:
3710         * util/mag_client.h:
3711         * util/mag_control.c:
3712         * util/magnifier.c:
3713         Source code changes to support the above IDL changes.
3714         
3715         * util/mag_image.c:
3716         As above, and also changes to use a (slower) generic conversion
3717         path for colormap conversions, since the fast RGB conversions have been
3718         reported to fail for 16-bit displays.
3719
3720 2001-10-26  Michael Meeks  <michael@ximian.com>
3721
3722         * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
3723
3724 2001-10-26  Laszlo Peter <laca@ireland.sun.com>
3725
3726         * at-bridge/Makefile.am: fix LDFLAGS.
3727
3728 2001-10-09  Bill Haneman <bill.haneman@sun.com>
3729
3730         * at-bridge/bridge.c:
3731         Re-worked listeners for toolkit events, now we have signal
3732         and property listeners. Added a private method
3733         register_atk_event_listeners(), which registers with the
3734         various atk and gtk signals we need to monitor in order to emit
3735         our at-spi events.
3736         Added emission hook for AtkObject:property-change events, to
3737         support the 'property listeners'.
3738         Fixed some alloc()s of Accessibility_Event structs to use CORBA
3739         allocation.
3740
3741         * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
3742         which emit warnings and exit, respectively, if CORBA errors occur
3743         during remote calls, and we now use these methods to check most of
3744         our CORBA calls in the C bindings.
3745
3746         * cspi/spi_accessible.c:
3747         Changed AccessibleSelection_refSelectedChild() to
3748         AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
3749         now increment refcounts.
3750
3751         * cspi/spi_component.c:
3752         Fixed some long pointer casts (dangerous!) to pass pointers to
3753         CORBA_longs of the proper type to the CORBA stubs, and copy the
3754         data into the longs that were passed into the C bindings code.
3755         
3756         * at-bridge/bridge.c:
3757         
3758         * libspi/accessible.c:
3759         Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
3760         hyperlinks, AtkHyperlink is an object type.     
3761
3762         * libspi/application.c:
3763         Added various conversions to and from "generic" event types and
3764         atk-specific types; this is really part of the 'bridge'
3765         implementation but is valid for all AtkObject-based accessibility 
3766         implementations.
3767
3768         * libspi/editabletext.c:
3769         Fixed nasty bug wherein editable text's finalize method was
3770         unref'ing tha AtkObject reference that the text parent class was
3771         about to unref _again_.  There was also a nasty inheritance bug
3772         that meant that the AccessibleEditableText class was corrupt.
3773
3774         * libspi/selection.c:
3775         Provided implementations for some selection API that was broken.
3776         
3777         * idl/Application.idl:
3778         Added registerObjectEventListener () method.
3779
3780         * THROUGHOUT:
3781         Fixed a number of return values that were Bonobo_Unknowns from
3782         bonobo_object_corba_objref(), which I
3783         forgot to dup before returning.  Changed instances of 
3784         bonobo_object_corba_objref (bonobo_object(o)) to
3785         BONOBO_OBJREF(o), for concision and clarity.
3786         
3787 2001-10-13  Louise Miller <louise.miller@sun.com>
3788
3789         * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
3790         idl/Event.idl, idl/Registry.idl
3791         Changed these files to include Bonobo_Unknown.idl instead
3792         of Bonobo.idl
3793
3794 2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
3795
3796         * libspi/component.c libspi/component.h:
3797                 Fixed typo.  Added assertions for object checks in 
3798         AccessibleComponent code.
3799
3800 2001-10-09  Bill Haneman <bill.haneman@sun.com>
3801
3802         * idl/Accessible.idl:
3803                 Added 'isEqual (Accessible *object)' 
3804         method for Accessible. (Not Yet Implemented).
3805         
3806         * idl/Registry.idl:
3807                 Changed signature of registerKeystrokeListener() to
3808         take a KeySet and KeyEventSeq so that specific keys and event
3809         types could be requested for monitoring, and added a flag
3810         is_synchronous so that either synchronous or asynchronous
3811         notification could be requested.  (However this is not all
3812         implemented yet). This also meant adding two new typedefs,
3813         KeyEventSeq and KeySet.
3814
3815         * idl/Relation.idl: 
3816                 Added two new relations, RELATION_TOOLTIP_FOR and
3817         RELATION_LEAFNODE_OF.
3818
3819         * idl/State.idl:
3820                 Added new state, STATE_HAS_TOOLTIP.
3821         
3822         * libspi/text.c, editabletext.c:
3823                 Added new assertions to all casts of bonobo-objects from
3824         CORBA servants, to prevent Text API calls on non-text objects.
3825                 Changed suspect casts of int-pointer types, so that we
3826         always send a valid CORBA_long pointer to the CORBA APIs that use
3827         in/out long parameters.  We then have to copy from the CORBA_long
3828         into the regular long or int for return to the C bindings, or
3829         vice-versa when returning parameters from ATK calls to the bonobo wrappers.
3830         
3831         * cspi/spi_text.c:
3832         * libspi/deviceeventcontroller.c:
3833                 Cleaned these sources up.
3834         * idl/Text.idl:
3835                 Changed return type for getCharacterAtOffset to
3836         CORBA_unsigned_long, to allow for 32-bit characters.
3837         
3838                 
3839 2001-10-08  Bill Haneman <bill.haneman@sun.com>
3840
3841         * util/Makefile.am:
3842         * idl/Makefile.am:
3843                 Fixed 'make dist' so that distro compiles...
3844         * libspi/keymasks.h:
3845                 new file.
3846         * cspi/spi-listener.c:
3847                 KeystrokeListenerCB now returns a boolean.
3848         * cspi/spi.h:
3849                 Added KeyEventType struct, and KeyStroke.
3850                 Also added createKeystrokeListener(),
3851         KeystrokeListener_addCallback(),
3852         KeystrokeListener_removeCallback(), and added a keymask to
3853         registerKeystrokeListener().
3854         * cspi/spi_accessible.c:
3855                 Changed numerous return types for interfaces from
3856         AccessibleComponent to Accessible<InterfaceName>; this was
3857         probably a cut-and-paste error.
3858         * cspi/spi_event.c:
3859                 Implementations of new KeystrokeListener api (from spi.h,
3860         above).
3861         * idl/Registry.idl:
3862                 Changes to key modifier mapping.
3863                 Created ControllerEventMask struct.
3864                 Made DeviceEventController derive from Bonobo::Unknown.
3865         * idl/Text.idl:
3866                 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
3867         * libspi/deviceeventcontroller.c:
3868                 Added a number of new internal (private) methods.
3869         * libspi/editabletext.c:
3870         * libspi/editabletext.h:
3871                 Fixed a number of bugs related to the fact that
3872         editabletext inherits from text.  Fixed the EditableText struct,
3873         the init() call, and use correct casts when calling Text methods
3874         from an EditableText object.  Removed (duplicate) atko from the
3875         EditableText structure, we use the one in the parent Text
3876         structure via the casts mentioned above.
3877         * libspi/keystrokelistener.[ch]:
3878         * libspi/registry.c:
3879                 Changes in support of keyboard handling (above).
3880         
3881         Keyboard handling, though partly functional, is still not
3882         recommended for at-spi client use as there is considerable 
3883         work yet to be done.
3884
3885         * libspi/text.c:
3886                 Changed some places where pointers to various int types
3887         are cast to be pointers to CORBA_long types and vice-versa:
3888         pointer casting is not safe so we pass pointers of the correct
3889         types and then cast the result before putting it into the target
3890         pointers.
3891
3892         * libspi/text.h: minor typos corrected.
3893         * test/simple-at.c: 
3894                 We now speak not only the name of a Text element, but the
3895         first sentence of its content, when it receives focus.
3896                 I also changed the text compression to 75% from 50%.
3897         * util/Accessibility_Util.server.in:
3898                 Changed the default magnifier type to be a 3x vertical
3899         splitscreen magnifier (was previously a 2x horizontal one).
3900
3901 2001-10-03  Bill Haneman <bill.haneman@sun.com>
3902
3903         * libspi/keystrokelistener.h:
3904         * libspi/keystrokelistener.c:
3905                 Initial functional implementations of KeystrokeListener.
3906         * idl/Registry.idl:
3907         
3908 2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
3909
3910         Fixed string handling for NULL strings in libspi.
3911         Added spi_freeString to free strings returned by C bindings.
3912
3913 2001-09-30  Bill Haneman <bill.haneman@sun.com>
3914
3915         * libspi/keystrokelistener.h:
3916         * libspi/keystrokelistener.c:
3917                 Began (no-op) implementations of KeystrokeListener
3918                         (see below).
3919         * libspi/deviceeventcontroller.c:
3920         * libspi/deviceeventcontroller.h:
3921                 Began creating implementations of DeviceEventController,
3922                         to handle keystroke and mouse event listening and
3923                         synthesis.
3924         * libspi/accessible.c:
3925                 Stubbed-in the implementations for
3926                         Accessibility_Accessible_getState and
3927                         Accessibility_Accessible_getRelationSet.
3928         * libspi/registry.c:
3929                 Improved de-registration process and fixed some bugs, 
3930                         deregistration now works correctly.
3931         * libspi/desktop.c:
3932                 Added initialization of applications list (to NULL).
3933         * util/magnifier.c:
3934                 Reduced speech compression from 0.5 to 0.7, for demo.
3935                 Changed call to gdk_window_set_decorations()
3936                         to gtk_window_set_decorated().
3937         * at-bridge/bridge.c:
3938                 Bridge now deregisters when app exits, via
3939                         registration of a cleanup function
3940                         with the g_atexit() call.
3941                         Required making 'app' static, renamed 'this_app'.
3942                 Fixed broken use of bonobo_init, passing argv wrongly.
3943
3944 2001-09-27  Bill Haneman <bill.haneman@sun.com>
3945
3946         * util:
3947         * util/Makefile.am: 
3948                 Created a new directory for 
3949                         accessibility-related utilities, primarily for
3950                         testing and demo purposes, but with possible
3951                         end-user utility.
3952         
3953         * util/magnifier.c:
3954         * util/magnifier.h:
3955         * util/mag_image.c:
3956         * util/mag_image.h:
3957                 Onscreen magnifier utility that
3958                         is implemented as a bonobo service.
3959         
3960         * util/mag_client.c:
3961         * util/mag_client.h:
3962                 Client-side support (simple C bindings) 
3963                         for Magnification service
3964         
3965         * util/mag_control.c:
3966                 Client program example for 
3967                         Magnification service
3968         
3969         * util/Accessibility_Magnifier.server.in:
3970                 Bonobo-activation file for the 
3971                         Magnification service.
3972         
3973         * util/idl:
3974         * util/idl/Magnifier.idl:
3975                 IDL defining the bonobo Magnification
3976                         service interface.
3977
3978         * test/simple-at.c:
3979                 Modifications to use the bonobo-activated magnifier
3980                         above, in place of trying to connect to an existing
3981                         magnifier that uses socket-listening IPC.
3982
3983                 If env variable MAGNIFIER is set, a magnifier service
3984                         will be started if one does not exist.
3985         
3986 2001-09-25  Bill Haneman <bill.haneman@sun.com>
3987
3988         * at-bridge/bridge.c:
3989                 applied patch from Marc to build and run 
3990                 against new glib and gtk+ (seemed like a change 
3991                 to bonobo_init signature was made ?)
3992         * test/simple-at.c:
3993                 made festival-server support turned off by default.
3994                 Added support for a simple magnifier (off by default)
3995                 which will be added to a 'util' directory later.
3996         * at-bridge/Makefile.am:
3997                 Changed "application.h" header from a 'source'
3998                 to a 'dependency' of libat-bridge.
3999
4000 2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
4001
4002         * cspi/Makefile.am:
4003                 Added spi-util.c.
4004
4005         * cspi/spi-util.c:
4006                 Fixed typo
4007
4008         * cspi/spi.c:
4009                 Added interface implementation c files to list of
4010                         includes so they are included in libcspi.
4011
4012         * cspi/spi.h:
4013                 Changed prototype of AccessibleAction_doAction to return a
4014                         boolean.
4015                 Changed prototype of AccessibleTable_getCaption to
4016                         return an Accessible.
4017                 Changed prototype of AccessibleTable_getSelectedRows
4018                         and AccessibleTable_getSelectedColumns to
4019                         return a long (returns the number of selected rows
4020                         or columns respectively).
4021                 Changed name of AccessibleText_refRunAttributes to
4022                         AccessibleText_getAttributes.
4023                 Changed prototype of AccessibleText_getCharacterExtents to
4024                         return a void rather than a boolean. 
4025                 Added support for a AccessibleCoordType parameter
4026                         specifying what type of coordinates are desired.
4027                 Added an AccessibleCordType parameter to
4028                         AccessibleText_getPointAtOffset.
4029
4030         * cspi/spi_accessible.c:
4031                 Added code to return the outstanding interfaces from
4032                         Accessible_queryInterface.
4033
4034         * cspi/spi_action.c:
4035                 Fixed typos.
4036                 Corrected call to getNActions to call the c binding
4037                         for an attribute.
4038
4039         * cspi/spi_editabletext.c:
4040                 Fixed typos.
4041                 Changed name from setRunAttributes to setAttributes.
4042
4043         * cspi/spi_hyperlink.c:
4044                 Fixed typos.
4045                 Changed call to getNAnchors to correctly call the c
4046                         binding for an attribute.
4047
4048         * cspi/spi_hypertext.c:
4049                 Fixed typos.
4050                 Changed getImageDescription to correctly call the
4051                         binding for an attribute.
4052
4053         * cspi/spi_selection.c:
4054                 Changed getNSelectedChildren to correctly call the c
4055                         binding for the attribute.
4056                 Changed refSelectedChild to getSelectedChild.
4057
4058         * cspi/spi_table.c:
4059                 Fixed typos.
4060                 Changed getCaption to return an Accessible.
4061                 Fixed calls which retrieve attributes.
4062                 Changed refAt to getAccessibleAt.
4063                 Changed getNSelectedRows and getNSelectedColumns to
4064                         return longs.
4065
4066         * cspi/spi_text.c:
4067                 Changed getCharacterExtents and getPointAtOffset to accept an
4068                         AccessibleCoordType.
4069                 Fixed typos.
4070                 Changed calls which retrieve attributes.
4071                 Changed refRunAttributes to getAttributes.
4072
4073         * cspi/spi_value.c:
4074                 Fixed typos.
4075
4076         * idl/Hyperlink.idl:
4077                 Changed n_anchors attribute to nAnchors to keep naming
4078                         convention consistent.
4079
4080         * idl/Table.idl:
4081                 Made Table inherit from Bonobo::Unknown.
4082                 Added nSelectedColumns and nSelectedRows attributes.
4083
4084         * idl/Value.idl:
4085                 Made Value inherit from Bonobo::Unknown.
4086
4087         * libspi/hyperlink.c:
4088                 Change for nAnchors attributte name change.
4089
4090 2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
4091         * cspi/Makefile.am:
4092                 Added spi-util.c.
4093
4094         * cspi/spi-util.c:
4095                 Fixed typo
4096
4097         * cspi/spi.c:
4098                 Added interface implementation c files to list of
4099                         includes so they are included in libcspi.
4100
4101         * cspi/spi.h:
4102                 Changed prototype of AccessibleAction_doAction to return a
4103                         boolean.
4104                 Changed prototype of AccessibleTable_getCaption to
4105                         return an Accessible.
4106                 Changed prototype of AccessibleTable_getSelectedRows
4107                         and AccessibleTable_getSelectedColumns to
4108                         return a long (returns the number of selected rows
4109                         or columns respectively).
4110                 Changed name of AccessibleText_refRunAttributes to
4111                         AccessibleText_getAttributes.
4112                 Changed prototype of AccessibleText_getCharacterExtents to
4113                         return a void rather than a boolean. 
4114                 Added support for a AccessibleCoordType parameter
4115                         specifying what type of coordinates are desired.
4116                 Added an AccessibleCordType parameter to
4117                         AccessibleText_getPointAtOffset.
4118
4119         * cspi/spi_accessible.c:
4120                 Added code to return the outstanding interfaces from
4121                         Accessible_queryInterface.
4122
4123         * cspi/spi_action.c:
4124                 Fixed typos.
4125                 Corrected call to getNActions to call the c binding
4126                         for an attribute.
4127
4128         * cspi/spi_editabletext.c:
4129                 Fixed typos.
4130                 Changed name from setRunAttributes to setAttributes.
4131
4132         * cspi/spi_hyperlink.c:
4133                 Fixed typos.
4134                 Changed call to getNAnchors to correctly call the c
4135                         binding for an attribute.
4136
4137         * cspi/spi_hypertext.c:
4138                 Fixed typos.
4139                 Changed getImageDescription to correctly call the
4140                         binding for an attribute.
4141
4142         * cspi/spi_selection.c:
4143                 Changed getNSelectedChildren to correctly call the c
4144                         binding for the attribute.
4145                 Changed refSelectedChild to getSelectedChild.
4146
4147         * cspi/spi_table.c:
4148                 Fixed typos.
4149                 Changed getCaption to return an Accessible.
4150                 Fixed calls which retrieve attributes.
4151                 Changed refAt to getAccessibleAt.
4152                 Changed getNSelectedRows and getNSelectedColumns to
4153                         return longs.
4154
4155         * cspi/spi_text.c:
4156                 Changed getCharacterExtents and getPointAtOffset to accept an
4157                         AccessibleCoordType.
4158                 Fixed typos.
4159                 Changed calls which retrieve attributes.
4160                 Changed refRunAttributes to getAttributes.
4161
4162         * cspi/spi_value.c:
4163                 Fixed typos.
4164
4165         * idl/Hyperlink.idl:
4166                 Changed n_anchors attribute to nAnchors to keep naming
4167                         convention consistent.
4168
4169         * idl/Table.idl:
4170                 Made Table inherit from Bonobo::Unknown.
4171                 Added nSelectedColumns and nSelectedRows attributes.
4172
4173         * idl/Value.idl:
4174                 Made Value inherit from Bonobo::Unknown.
4175
4176         * libspi/hyperlink.c:
4177                 Change for nAnchors attributte name change.
4178
4179
4180 2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
4181
4182         implementations-- made server implementations own AtkObject pointers
4183         rather than their respective AtkInterrface pointers to fix
4184         refcounting.  AtkHyperlink is still broken.
4185
4186 2001-09-04  Bill Haneman <bill.haneman@sun.com>
4187         * cspi/spi_accessible.c:
4188                 Added method Accessible_Role_getName(),
4189                         and requisite string array (role_names).
4190                 Added conversion string_from_corba_strin() call
4191                         to Accessible_getName and _getDescription.
4192         * libspi/accessible.c:
4193                 Added implementation for Accessible_getRole()
4194         * test/simple-at.c:
4195                 Added festival support, used if environment variable
4196                         FESTIVAL is set.
4197         
4198 2001-09-04  Bill Haneman <bill.haneman@sun.com>
4199
4200         * at-bridge/bridge.c:
4201             Now allocate Accessibility_Event using
4202             Accessibility_Event__alloc() instead of g_new0().
4203         * libspi/accessibleeventlistener.c:
4204             Initialize AccessibleEventListener->callbacks to NULL.
4205             Fixed accessible__event_listener_init() param, changed to
4206             "AccessibleEventListener *" type.
4207             Changed a bonobo_object_release_unref() call to
4208             Accessibility_Accessible_unref().
4209         * libspi/listener.c:
4210             Changed Bonobo_Unknown_unref to (equivalent) 
4211             Accessibility_Accessible_unref.
4212         * libspi/registry.c:
4213             Changed bonobo_object_release_unref to 
4214             Accessibility_Accessible_unref.
4215         
4216 2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
4217         
4218         * Added files:
4219             spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
4220             spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
4221             spi-util.c spi-util.h
4222             Implementations for C bindings to remaining accessibility 
4223             interfaces.
4224
4225 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
4226         
4227         * idl/Action.idl:
4228             changed return value of Action from void to boolean to 
4229             bring in line with ATK.
4230
4231         * idl/Text.idl:
4232             Changed getText funcions to return "out" start and end offsets.
4233             Changed getAttributes to take and offset and return the start 
4234             and end offset of the attribute run.
4235             Changed getOffsetAtPoint and getCharacterExtents to take an 
4236              enum describing whether coordinates are window or screen.
4237
4238         * Added files:
4239             libspi/action.c libspi/action.h libspi/editabletext.c 
4240             libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
4241             libspi/hypertext.c libspi/hypertext.h libspi/image.c 
4242             libspi/image.h libspi/selection.c libspi/selection.h
4243             libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
4244             libspi/value.c libspi/value.h
4245             Added server implementations for outstanding ATK interfaces 
4246             not yet implemented.
4247  
4248 2001-09-04  Bill Haneman <bill.haneman@sun.com>
4249
4250         * idl/Action.idl:
4251                 Added (missing) getName() method. 
4252                 Made nActions an attribute.
4253         * idl/EditableText.idl:
4254                 Changed order of params in setAttributes.
4255         * idl/Hyperlink.idl:
4256                 Removed getAnchor, added getURI.
4257         * idl/Image.idl:
4258                 Changed attributes to methods, for efficiency
4259                 (so that getting extents can be done in one call)
4260         * idl/Selection.idl:
4261                 Changed nSelectedChildren to attribute, and re-indented.
4262         * idl/Table.idl: changed nrows, ncolumns, caption, summary 
4263                 to attributes.
4264         * idl/Text.idl: reformatted to match our coding style.
4265                 (temporarily?) removed getRowColumnAtOffset().
4266                 Changed text selection API to support multi-select and
4267                 non-contiguous selections, as in ATK.
4268         * idl/Value.idl: changed some methods to attributes.
4269
4270 2001-08-24  Mark McLoughlin <mark@skynet.ie>
4271
4272         * libspi/listener.c(impl_notify_event):
4273         BonoboUnkown_unref the source instead
4274         of bonobo_object_release_unref - the ORB
4275         handles the releasing.
4276
4277         * configure.in: require ORBit-2.3.94 for
4278         this behaviour.
4279
4280 2001-08-21  Bill Haneman <bill.haneman@sun.com>
4281
4282         Tagged CVS repository 'EA_1_0'.
4283         * README.EARLY_ACCESS:
4284         Alphabetized acknowledgements list, and
4285         added someone.
4286         Listed some known dependencies of at-spi.
4287
4288 2001-08-20  Bill Haneman <bill.haneman@sun.com>
4289
4290         * docs/at-spi-docs.sgml:
4291         * docs/at-spi-sections.txt:
4292         * docs/at-spi-overrides.txt: (Added zero-length file)
4293         Documentation improvements - gtk-doc should build
4294         docs for all implemented C bindings now.
4295         * cspi/Makefile.am:
4296         * cspi/spi_main.c:
4297         * cspi/spi.c: (New file)
4298         * cspi/spi_event.c: (New file)
4299         * cspi/spi_registry.c: (New file)
4300         * cspi/spi_accessible.c: (New file)
4301         * cspi/spi_application.c: (New file)
4302         * cspi/spi_component.c: (New file)
4303         Split spi_main.c into six parts, and included them from
4304         "spi.c".  This is a bit of a hack, probably temporary,
4305         but required by gtk-doc, apparently.
4306         
4307 2001-08-20  Bill Haneman <bill.haneman@sun.com>
4308
4309         * docs/Makefile.am:
4310         * docs/at-spi-docs.sgml:
4311         * docs/at-spi-sections.txt:
4312         * configure.in:
4313         Initial checkins/modifications for gtk-doc generation.
4314         * cspi/spi.h:
4315         * cspi/spi.c:
4316         Added (missing) interface query methods to Accessible's C binding.
4317         * cspi/spi-impl.h:
4318         Added GenericInterface type definition.
4319         * test/simple-at.c:
4320         Added query for AccessibleComponent interface to focus event handler.
4321         Added printout of bounding box for focussed component.
4322         * libspi/component.c:
4323         Added partial implementation for AccessibleComponent to C binding.
4324         * idl/Application.idl:
4325         * libspi/registry.c:
4326         * libspi/listener.c:
4327         * libspi/application.c:
4328         * libspi/application.h:
4329         Changed "ID" attribute type from string to long.
4330
4331 2001-08-19  Bill Haneman <bill.haneman@sun.com>
4332
4333         * cspi/spi.h:
4334         * cspi/spi.c:
4335         Made method naming consistent: methods taking object args
4336         start with uppercase, other methods (except those using
4337         acronyms) start with lowercase.  Underscores delimit between
4338         object names and method names:
4339         SPI_init() - uppercase since it starts with an acronym.
4340         getDesktopCount () - lowercase start since no object param0.
4341         Accessible_getName() - uppercase object type name, studlyCaps method
4342                                name.
4343
4344         * cspi/spi.h:
4345         Added gtk-doc documentation for all currently implemented
4346         methods in the C bindings API.
4347
4348 2001-08-18  Bill Haneman <bill.haneman@sun.com>
4349
4350         * Makefile.am : changed build order to build test last.
4351         * cspi/spi.h :
4352         * cspi/spi_main.c :
4353         Changed "createEventListener" to "CreateEventListener".
4354         * libspi/accessibleeventlistener.c :
4355         Bugfix for addition of callbacks.
4356         * test/Makefile.am :
4357         * test/simple-at.c :
4358         Added new test that uses the C bindings API.
4359         * idl/Event.idl :
4360         * libspi/listener.c :
4361         * libspi/registry.c :
4362         * libspi/accessibleeventlistener.c :
4363         * at-bridge/bridge.c :
4364         Renamed member "target" of Accessibility_Event to "source",
4365         which is more descriptive.
4366         
4367
4368 2001-08-18  Bill Haneman <bill.haneman@sun.com>
4369
4370         * Makefile.am: 
4371         * configure.in :
4372         * cspi/Makefile.am :
4373         Added makefile support for at-spi/cspi directory.
4374         * cspi/spi.h : 
4375         * cspi/spi-impl.h :
4376         * cspi/spi-listener.h : (NEW FILE)
4377         Added support for/use of spi-listener.h.
4378         * cspi/spi_main.c :
4379         C bindings now build successfully, with no warnings.
4380         * libspi/accessibleeventlistener.h : (NEW FILE)
4381         * libspi/accessibleeventlistener.c : (NEW FILE)
4382         * libspi/Makefile.am :
4383         Added new object type "AccessibleEventListener"
4384         which inherits from Listener, and allows attachment
4385         of in-process callbacks (so that a client with a listening
4386         object instance can add functionality to the local 
4387         implementation, dynamically).
4388
4389 2001-08-18  Bill Haneman <bill.haneman@sun.com>
4390
4391         * libspi/accessible.c: 
4392         Add implementation for get_index_in_parent().
4393         * cspi/spi.h : 
4394         Added #include of "spi-roletypes.h", and
4395         added enumerated type AccessibleCoordType.
4396         Added definition for KeystrokeListener (function type).
4397
4398         ADDED FILES:
4399         * cspi/spi-statetypes.h :
4400         * cspi/spi-roletypes.h :
4401         * cspi/spi-impl.h :
4402         Added these headers, used by spi.h.
4403         * cspi/spi_main.c : 
4404         Added code (NOTE: not yet built by make).
4405
4406 2001-08-18  Mark McLoughlin <mark@skynet.ie>
4407
4408         * libspi/Makefile.am: generate imodule
4409         at the same time as other idl compiler 
4410         generated files. 
4411
4412 2001-08-17  Bill Haneman <bill.haneman@sun.com>
4413         * libspi/registry.c :
4414         * libspi/application.c :
4415         * idl/Application.idl :
4416         Made registration with toolkit an application method,
4417         which is required since each app has its own toolkit static
4418         environment.  Thus the bridge must register for 
4419         notification of toolkit events from each application in turn.
4420         Toolkit notifications are now successfully registered for, and
4421         sent to the listening at client.
4422         * test/at.c :
4423         Changed toolkit event string to use hyphens rather than underscores.
4424         * libspi/listener.c :
4425         listner now gives more info in debug mode - it reports the
4426         name of the event received, as well as the name of the source.
4427         
4428
4429 2001-08-16  Bill Haneman <bill.haneman@sun.com>
4430
4431         * libspi/registry.c :
4432         added more implementation for toolkit events.
4433         Fixed bug such that toolkit event registrations
4434         (via atk) use the whole event name string, not 
4435         just minor+detail.
4436         Removed a useless call to an ORBit_ method.
4437         * at-bridge/bridge.c :
4438         Removed unused local sbuf[] variable.
4439         * test/at.c :
4440         We now register for Gtk:GtkWidget:button_press_event 
4441         events as well as "focus:" events.
4442         * cspi/spi.h :
4443         Add some more API from Registry.idl that was missing,
4444         for keystroke listening, keystroke and mouse event
4445         synthesis, and enumeration of accessible desktops.
4446
4447 2001-08-16  Michael Meeks  <michael@ximian.com>
4448
4449         * configure.in: use AM_GLIB_GNU_GETTEXT.
4450
4451         * Makefile.am (SUBDIRS): kill intl.
4452
4453 2001-08-15  Michael Meeks  <michael@ximian.com>
4454
4455         * registryd/Makefile.am: s/oaf/server/ relocate info file.
4456
4457         * configure.in: upd.
4458
4459         * configure.in: depend on a recent bonobo-activation that
4460         will find our server files ...
4461
4462 2001-08-16  Bill Haneman <bill.haneman@sun.com>
4463
4464         * libspi/accessible.c : accessible_new() :
4465         Now we add the Component interface via bonobo_object_add_interface,
4466         if the contained AtkObject implements AtkComponent.
4467         * libspi/accessible.h : now include "component.h"
4468         * libspi/component.h :
4469         * libspi/component.c : added files - implementation of
4470         bonobo wrapper object for Accessibility/Component
4471         * libspi/listener.c :
4472         Added test code to check for Accessibility/Component:1.0
4473         interface and report whether it is implemented by the
4474         event source.
4475         * libspi/registry.c :
4476         Now we check for not only the hash of the whole event 
4477         string before relaying the event, we also check the
4478         "minor" event string (without the detail string).
4479         This allows event listeners to be registered against
4480         all events of a certain major+minor type, or just
4481         against a specific major+minor+detail type.
4482         * libspi/accessible.c :
4483         Added implementations for Accessible:get_parent(),
4484         Accessible:getChildCount(), and Accessible:getChildAtIndex().
4485         * libspi/registry.c :
4486         * libspi/listener.c :
4487         Replaced calls to Accessibility_Accessible_ref() and
4488         Accessibility_Accessible_unref() with 
4489         calls to bonobo_object_dup_ref() and 
4490         bonobo_object_release_unref(), so that the CORBA object
4491         is dup-ed and released when relayed, as well as the bonobo object.
4492
4493 2001-08-15  Mark McLoughlin <mark@skynet.ie>
4494
4495         * libspi/Makefile.am,
4496           registryd/Makefile.am,
4497           at-bridge/Makefile.am.
4498           test/Makefile.am, configure.in:
4499         reverse previous changes.
4500
4501         * /idl/Image.idl: fix typo.
4502
4503         * test/Makefile.am: put DEBUG_FLAGS
4504         in CFLAGS.
4505
4506 2001-08-15  Mark McLoughlin <mark@skynet.ie>
4507
4508         * test/app.c: use argv[0] instead of
4509         g_type_prgname.
4510
4511 2001-08-15  Mark McLoughlin <mark@skynet.ie>
4512
4513         * libspi/Makefile.am,
4514           registryd/Makefile.am,
4515           at-bridge/Makefile.am.
4516           test/Makefile.am, configure.in:
4517         cleanup, replace individual LIBS/CFLAGS with
4518         AT_COMMON_{LIBS|CFLAGS}.
4519
4520         * README: format.
4521
4522 2001-08-15  Mark McLoughlin <mark@skynet.ie>
4523         
4524         * configure.in, libspi/Makefile.am:
4525         Change IDL path checking for bonobo-activation
4526         as opposed to oaf.
4527
4528 2001-08-15  Bill Haneman <bill.haneman@sun.com>
4529
4530         * registryd/registry.c : separated event listeners to use
4531         3 separate lists (focus, window, toolkit).  Began testing
4532         event names against hashes before relaying events.
4533         * test/at.c : now register for events of type "focus:"
4534         * test/app.c : now generate events of type "focus:"
4535         * at-bridge/bridge.c : register with ATK for focus events,
4536         and we now relay those focus events to any "focus:" listeners.
4537         This now works with the bridge as a GTK_MODULE when running test/at.
4538         * libspi/registry.c :
4539         * libspi/listener.c : 
4540         now we ref event sources before propagating, and unref on receipt.
4541         * libspi/registry.c : 
4542         some changes to internal structs, to support event typestring hashes.
4543         * text/app.c : changed the way the appname is generated.
4544         * cspi : added directory that will hold the C bindings library for 
4545                 non-CORBA/bonobo-savvy clients.
4546         * cspi/spi.h : header file that contains the function prototypes for the C binding.
4547         * idl/Component.idl : added in parameter to indicate coord system for
4548                 geometry-related calls.
4549         * idl/Hyperlink.idl : added readonly n_links attribute
4550         * idl/Image.idl : changed methods to attributes.
4551         
4552 2001-08-15  Mark McLoughlin <mark@skynet.ie>
4553
4554         * at-bridge/Makefile.am: link against
4555         ../libspi/libspi.la instead of -lspi.
4556
4557         * at-spi/test/app.c: include 
4558         bonobo-activation.h. Use a default appname
4559         if one is not provided.
4560
4561 2001-08-14  Bill Haneman <bill.haneman@sun.com>
4562
4563         * idl/Registry.idl : temporarily changed register_Application
4564         to oneway, to work around issue with initial registration 
4565         re-entrancy.
4566         * idl/Application.idl : changed attribute "id" from readonly 
4567         to read-write, since it needs to be assigned by Registry.
4568         * registryd/registryd.c : added call to set application id 
4569         on registration.
4570         * registryd/registry.c : changed de-registration procedure to
4571         use CORBA_Object_hash() to find matching object ref in application
4572         lists and listener lists.
4573         * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
4574         began distinguishing between event types (work in progress).
4575
4576 2001-08-13  Bill Haneman <bill.haneman@sun.com>
4577
4578         CHANGES:
4579         * libspi/application.c:
4580         Added implementations for get/set id, get_toolkitName,
4581         get_version.
4582         * registryd/registryd.c :
4583         * test/at.c :
4584         * test/app.c :
4585         * Makefile.am :
4586         Converted from use of OAF to bonobo-activation.
4587         * libspi/desktop.h :
4588         * libspi/desktop.c :
4589         * test/app.c :
4590         Removed references to atksimpleobject, since base atkobject
4591         implementation now provides functionality we need.
4592         * libspi/atksimpleobject.c :
4593         * libspi/atksimpleobject.h :
4594         Removed.
4595         
4596         ADDITIONS:
4597         * at-bridge
4598         * at-bridge/Makefile.am
4599         * at-bridge/bridge.c
4600         * configure.in
4601         * Makefile.am
4602         Added directory "bridge" and contents, and added dependencies
4603         in Makefile.am/configure.in.  
4604         Initial checkin of "at-bridge".
4605         This code is a GTK_MODULE which automatically registers
4606         GTK+ apps with the accessibility registry, using an object
4607         reference to the root ATK object.
4608         
4609 2001-08-10  Mark McLoughlin <mark@skynet.ie>
4610
4611         * po/Makefile.in.in: Remove. Again. If this
4612         doesn't get autogenerated - you need to update
4613         gnome-common.
4614
4615 2001-08-07  Mark McLoughlin <mark@skynet.ie>
4616
4617         * po/Makefile.in.in: Add. Again.
4618
4619 2001-07-31  Bill Haneman <bill.haneman@sun.com>
4620
4621         * libspi/accessible.c : added support for 'description' property.
4622         * libspi/accessible.c
4623         * libspi/desktop.c
4624         * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
4625             (since the two are now equivalent in libbonobo)
4626         * idl/Action.idl
4627         * idl/Component.idl
4628         * idl/Hyperlink.idl
4629         * idl/Image.idl
4630         * idl/Selection.idl
4631         * idl/Table.idl
4632         * idl/Text.idl
4633         * idl/Value.idl : changed these 'secondary' interfaces to inherit from
4634              Bonobo::Unknown as does Accessibility::Accessible.
4635         * idl/StreamableContent.idl : as above, and replaced internal InputStream
4636              interface with Bonobo::Stream, since it was redundant with it.
4637              (The Stream returned by a StreamableContext object is expected to
4638              implement only a subset of Bonobo::Stream)
4639
4640 2001-07-28  Anders Carlsson  <andersca@gnome.org>
4641
4642         * libspi/accessible.c (accessible_object_finalize): Change
4643           g_free to g_object_unref since the AtkObject is a GObject.
4644
4645 2001-07-30  Bill Haneman <bill.haneman@sun.com>
4646
4647         * idl/Accessibility.idl: add new IDL files
4648         
4649         Added:
4650         * idl/Action.idl: Definitions of actionable UI object
4651         * idl/Component.idl: Definitions of UI component geometry, etc.
4652         * idl/Hyperlink.idl: Defs of hyperlink behavior
4653         * idl/Image.idl: Def of accessible image
4654         * idl/Selection.idl: Definition of UI object with selectable children
4655         * idl/StreamableContent.idl: Definition of UI object with streamable backing data
4656         * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
4657         * idl/Text.idl: Interface defs for UI elements with complex textual content
4658         * idl/Value.idl: Definition of UI element that is a value controller or display
4659         
4660 2001-07-27  Michael Meeks  <michael@ximian.com>
4661
4662         * po/Makefile.in.in: remove autogenerated file from CVS.
4663
4664         * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
4665         type library.
4666
4667         * idl/Registry.idl: include guard.
4668
4669         * idl/Accessibility.idl: Add, and include all the other IDL
4670         files.
4671
4672         * idl/*.idl: remove mass of pragmas etc.
4673
4674 2001-07-26  Michael Meeks  <michael@ximian.com>
4675
4676         * registryd/Makefile.am (registryd_SOURCES): remove
4677         redundant at_.
4678
4679 2001-07-27  Mark McLoughlin <mark@skynet.ie>
4680
4681         * libspi/.cvsignore, registryd/.cvsignore,
4682           test/.cvsignore: updated.
4683
4684         * po/Makefile.in.in: gettext update.
4685
4686 2001-07-25  Bill Haneman <bill.haneman@sun.com>
4687
4688         * initial CVS checkin
4689
4690 2001-06-29  Michael Meeks  <michael@ximian.com>
4691
4692         * configure.in: add AM_CONFIG_HEADER to gen config.h
4693
4694         * acconfig.h: add.
4695