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