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