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