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