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