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