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