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