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