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