2672580e7c32f853979ae8dbcce421dee08e3d37
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
1 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
2
3         * atk-bridge/bridge.c: Hooked up state-change event details.
4
5 2002-05-11  Bill Haneman <bill.haneman@sun.com>
6
7         * registryd/registry.c:
8         Fixed quarking bug in event string parsing; now events with
9         detail parameters get matched correctly to listeners.
10         [Bugzilla 80608].
11
12         * util/idl/Magnifier.idl: remove.
13         * util/idl: remove
14         * util/*.[ch]: Remove.
15         Magnification utilities and IDL are now in module gnome-mag.
16
17 2002-05-10  Bill Haneman <bill.haneman@sun.com>
18
19         * registryd/deviceeventcontroller.c:
20         Fixed bug in grab key conversion which was causing keycode grabs
21         to be converted to AnyKey grabs.
22
23         * NEWS:
24         updated NEWS file to reflect recent spin-off of gnome-mag.
25
26 2002-05-09  Marc Mulcahy <marc.mulcahy@sun.com>
27
28         * cspi/spi_accessible.c: Added exception checks.  Fixed completely
29         busted AccessibleStateSet_compare.  Removed redundant casts.
30         
31         * cspi/spi-action.c: Removed redundant casts.
32
33         * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
34
35         * cspi/spi_component.c: Fixed typos and casting error.
36
37         * cspi/spi_editabletext.c: Removed redundant casts.
38
39         * cspi/spi_hyperlink.c: Fixed casting and exception checking.
40
41         * cspi/spi_hypertext.c: Eliminated redundant casts.
42
43         * cspi/spi_image.c: Eliminated redundant casts.
44
45         * cspi/spi_registry.c: Eliminated redundant casts.
46         SPI_deregisterGlobalEventListenerAll () removed retval variable.
47         * cspi/spi_selection.c: Removed redundant casts.
48         * cspi/spi_text.c: Eliminated redundant casts.  Fixed exception
49         handling.  Screen geometry and text offsets were being returned as 0
50         on error which is technically valid-- changed these to return -1.
51         Added marshaller for text boundary types to fix bug with boundary
52         types being passed incorrectly to atk.
53                         
54 2002-05-09  Bill Haneman <bill.haneman@sun.com>
55
56         
57         * cspi/spi_registry.c:
58         Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
59         which was uncovered by the recent key changes.
60
61 2002-05-09  Bill Haneman <bill.haneman@sun.com>
62
63         * test/event-listener-test.c:
64         * test/Makefile.am:
65         Added new test, "event-listener-test"; 
66         this code does two things; it benchmarks traversal time 
67         for the accessible hierarchy for the first running accessible 
68         app, and it connects listeners for all supported event types.  
69         It is thus useful as an example event listener and for 
70         diagnostics/debugging of event generation.
71         
72 2002-05-08  Bill Haneman <bill.haneman@sun.com>
73
74         * test/Makefile.am:
75         Removed unnecessary dependency on libutil.
76
77         * configure.in:
78         Revved micro version: 0.13.1
79
80 2002-05-08  Bill Haneman <bill.haneman@sun.com>
81
82         * configure.in: 
83         Removed util/Makefile from targets.
84
85         * Makefile.am:
86         Removed util subdir from SUBDIRS (temporarily, 
87         pending removal of magnifier-only code
88         from UTIL).
89
90         * test/simple-at.c:
91         #ifdef-ed out magnifier dependencies, since
92         magnifier IDL, headers, and binary now live in
93         module gnome-mag and we don't want at-spi to depend 
94         on gnome-mag.  A magnifier demo which can run alongside
95         simple-at is forthcoming in the gnome-mag module.
96         
97         NOTE: Split magnifier binary, IDL, and magnification
98         activation code from at-spi into module gnome-mag.
99
100 2002-05-03  Marc Mulcahy <marc.mulcahy@sun.com>
101  
102         * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
103         cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
104  
105 2002-05-03  Bill Haneman <bill.haneman@sun.com>
106
107         * configure.in:
108         Revved to version 0.13.0
109         
110         * idl/Accessibility_Registry.idl:
111         Changed definition of KeySet from sequence of longs to sequence of
112         KeyDefinitions, and added KeyDefinition struct.
113         Required for fix to bug 80616.
114
115         * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
116         Changed AccessibleKeySet to Accessibility_KeySet marshalling code
117         to use new definition (see above).  
118
119         * registryd/deviceeventcontroller.c: handle_keygrab(), 
120         spi_keyset_contains_key():
121         Changed to make use of new struct; this allows matching based on
122         string key-name, for instance "Tab".  This also allows matching of
123         composed characters, non-alphanumeric characters in a way that
124         doesn't involve dependencies on X keysym codes directly, etc.
125         
126         * test/key-listener-test.c:
127         Added test for Alt-Tab key using "string" specification of keyset,
128         and modified one of the tests to use a keycode-based keyset.
129         Thus this test both tests and demonstrates the creation and use of
130         keysets of three forms:  specified via keycode array, 
131         keysym array, and string array. (The string case only contains a
132         single string, i.e. a string array of length 1).        
133
134         * test/simple-at.c:
135         Turned on PRINT_TREE option by default.  Also fixed a
136         string-freeing bug in the PRINT_TREE code.  
137         Added a listener to window:minimize events.
138         
139 2002-05-08  Padraig O'Briain  <padraig.obriain@sun.com>
140
141         * atk-bridge/bridge.c:
142         (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
143         for window:activate and window:deactiveate
144         (atk_bridge_property_event_listener atk_bridge_signal_listener
145         atk_bridge_window_event_listener) Tidy debug code
146
147 2002-05-02  Marc Mulcahy <marc.mulcahy@sun.com>
148
149         * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
150         Fixed handling for NULL return value from ATK.
151
152         * libspi/action.c libspi/component.c libspi/editabletext.
153         libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
154         libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
155         Removed redundant casts.
156         
157         * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
158         Fixed off by one bug.
159         
160         *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
161         function not present in idl)
162         
163 2002-05-02  jacob berkman  <jacob@ximian.com>
164
165         * atk-bridge/Makefile.am: make atk-bridge a real module
166
167 2002-04-26  Radek Doulik  <rodo@ximian.com>
168
169         * libspi/stateset.c (spi_init_state_type_tables): fix size of
170         atk_state_types table
171
172 2002-04-22  jacob berkman  <jacob@ximian.com>
173
174         * util/Makefile.am: 
175         * libspi/Makefile.am: add deps on the built files to help
176         automake, and don't version the ORBit typelib
177
178 2002-04-19  Padraig O'Briain  <padraig.obriain@sun.com>
179
180         * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h 
181         cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
182         cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c 
183         cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
184         cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
185         cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
186         cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
187         libspi/accessible.h libspi/accessible.h libspi/base.h 
188         libspi/component.h libspi/editabletext.h libspi/hyperlink.h 
189         libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
190         libspi/relation.h libspi/remoteobject.h libspi/selection.h 
191         libspi/spi-private.h libspi/statetset.h libspi/table.h
192         libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
193         util/mag_client.h util/mag_control.c util/mag_image.c
194         util/mag_image.h util/magnifier.c util/magnifier.h: 
195         Add missing file headers; standardize existing ones
196
197 2002-04-18  Marc Mulcahy  <marc.mulcahy@sun.com>
198
199         * atk-bridge/bridge.c: Added window event support.
200
201 2002-04-18  Michael Meeks  <michael@ximian.com>
202
203         * libspi/relation.c (impl_getNTargets): impl.
204         (impl_getTarget): impl.
205
206         * libspi/Makefile.am: fix stateset install.
207
208 2002-04-17  Bill Haneman <bill.haneman@sun.com>
209
210         * NEWS:
211         Started putting useful info in this file.
212         
213 2002-04-17  Marc Mulcahy <marc.mulcahy@sun.com>
214  
215         * atk-bridge/bridge.c: 
216         Propagate state-changed notifications to ATs
217  
218         * cspi/spi_registry.c: update docs to reflect actual behavior of
219         state-change events.
220
221 2002-04-17  Bill Haneman <bill.haneman@sun.com>
222
223         * configure.in:
224         Incremented version to 0.12.1
225         
226         * util/mag_client.h:
227         Add missing declaration for magnifier_exit, 
228         used by mag_control.c - Forte compiler didn't like
229         the implicit redeclaration of the function :-(
230
231
232 2002-04-16  Bill Haneman <bill.haneman@sun.com>
233
234         * configure.in:
235         Revved version to 0.12 due to API change (see below).
236
237         * cspi/spi-roletypes.h:
238         removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE 
239         definition from the inline docs, and added docs
240         for SPI_ROLE_LAST_DEFINED.
241
242         * cspi/spi.h:
243         * cspi/spi_streamablecontent.c:
244         Added missing seek_type parameter to
245         (so far unused) method, 
246         AccessibleStreamableContent_seek().
247         [ RT approval JodyG. ]
248
249         * cspi/spi_event.c:
250         Fixed docs for SPI_createAccessibleKeystrokeListener.
251
252         * cspi/spi_registry.c:
253         Fixed docs for SPI_KEYSET_ALL_KEYS.
254         
255         * docs/reference/cspi/at-spi-cspi-sections.txt:
256         Added a number of missing APIs to SECTIONS.
257         
258 2002-04-16  Bill Haneman <bill.haneman@sun.com>
259
260         * registryd/Makefile.am:
261         * cspi/Makefile.am:
262         * cspi/bonobo/Makefile.am:
263         Add $(X_LIBS) to makefiles.
264
265 2002-04-15  Bill Haneman <bill.haneman@sun.com>
266
267         * configure.in:
268         Revved version to 0.11.
269
270         * libspi/component.c:
271         Added implementation for grabFocus.
272
273         * idl/Accessibility_Component.idl
274         (Accessibility_Component_grabFocus):
275         Made this method return boolean to indicate success or failure, to
276         be consistent with cspi and the corresponding ATK method.
277         
278         * idl/Accessibility_Selection.idl
279         (Accessibility_Selection_selectAll) :
280         Made these methods return boolean to indicate success or
281         failure, to be consistent with cspi and the corresponding ATK methods.
282         
283         * idl/Accessibility_EditableText.idl 
284         (Accessibility_EditableText_setTextContents,
285          Accessibility_EditableText_insertText,
286          Accessibility_EditableText_cutText,
287          Accessibility_EditableText_deleteText,
288          Accessibility_EditableText_pasteText):
289         Made these methods return boolean to indicate
290         success or failure.
291
292         * cspi/spi_editabletext.c:
293         Made these methods return booleans.
294
295         * libspi/selection.c:
296         * libspi/component.c:
297         * libspi/editabletext.c:
298         Connected the boolean returns from ATK
299         to the server-side code referenced above.
300         
301 2002-04-14  Bill Haneman <bill.haneman@sun.com>
302
303         * idl/Accessibility_Table.idl: Added missing methods,
304         Accessibility_Table_addRowSelection,
305         Accessibility_Table_addColumnSelection,
306         Accessibility_Table_removeRowSelection,
307         Accessibility_Table_removeColumnSelection.
308
309         * cspi/spi_table.c:
310         Added C wrappers for above IDL:
311         AccessibleTable_addRowSelection,
312         AccessibleTable_addColumnSelection,
313         AccessibleTable_removeRowSelection,
314         AccessibleTable_removeColumnSelection.
315         
316         * libspi/table.c:
317         Added server-side implementation code for IDL above, connecting
318         to pre-existing ATK api.
319         
320 2002-04-13  Marc Mulcahy <marc.mulcahy@sun.com>
321
322         * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
323
324         * libspi/accessible.c: Added implementation fo
325         Accessibility_Accessible_get_state.
326         
327         * libspi/libspi.h: Added stateset.h to the list of includes.
328
329         * libspi/stateset.c: Fixed broken implementation.
330
331 2002-04-13  Bill Haneman <bill.haneman@sun.com>
332
333         * util/magnifier.c:
334         Added implementation code for Accessibility_Magnifier_exit ().
335
336         * util/mag_control.c:
337         Added test code for above method; you can
338         now kill an existing magnifier via 
339         ./mag_control q, from the util directory.
340
341         * test/key-listener-test.c:
342         * test/Makefile.am:
343         Added a new test, for our key listener API.
344
345 2002-04-11  Bill Haneman <bill.haneman@sun.com>
346
347         * test/app.c, test/keysynth-demo.c:
348         * util/magnifier.c:
349         Replace use of snprintf with g_snprintf.
350         (fix for bugzilla 78249)
351
352 2002-03-27  Michael Meeks  <michael@ximian.com>
353
354         * Version 0.10.0
355
356         * util/Makefile.am (INCLUDES): fix.
357         (DONT_DIST_SOURCE): don't distribute the
358         generated files.
359
360         * libspi/Makefile.am (dist-hook): ditto.
361
362 2002-03-27  Padraig O'Briain  <padraig.obriain@sun.com>
363
364         * libspi/hypertext.c:
365         Fix warnings when yelp is used with atk-bridge
366
367 2002-03-21  Michael Meeks  <michael@ximian.com>
368
369         * libspi/application.c (spi_application_new):
370         use spi_accessible_construct so we use the AtkObject
371         cache correctly.
372
373 2002-03-19  Michael Meeks  <michael@ximian.com>
374
375         * registryd/registry.c (desktop_remove_application),
376         (desktop_add_application): clean coding style.
377
378         * registryd/desktop.c (spi_desktop_remove_application),
379         (spi_desktop_add_application): kill re-enterency hazards.
380         (spi_desktop_dispose): remove bogus redundant cast
381         obscuring bug; fix bug too.
382         (spi_desktop_init): make the desktop object immortal.
383
384 2002-03-16 Bill Haneman <bill.haneman@sun.com>
385
386         * test/simple-at.c:
387         Added a #define-guarded tree-traversal step
388         when enumerating the apps (diagnostic tool).
389
390 2002-03-15 Bill Haneman <bill.haneman@sun.com>
391
392         * idl/Accessibility_Role.idl:
393         Added ROLE_DRAWING_AREA which seemed to be missing from the
394         previous commit.
395
396 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
397
398         * cspi/spi-roletypes.h cspi/spi_accessible.c
399         idl/Accessibility_Role.idl libspi/accessible.c: synched up role
400         types with ATK.
401
402         * registryd/desktop.c registryd/desktop.h registryd/registry.c:
403         Added signals to SpiDesktop and callbacks in SpiRegistry to notify
404         AT when applications are added and removed from the desktop.  This
405         reverts the previous broken implementation using the backing
406         AtkObject for the SpiDesktop.
407         
408         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
409
410         * registryd/desktop.c: emit the "children-changed::add" and
411         "children-changed::remove" signals on the backing ATK object for
412         the desktop so AT can tell when applications are started and shut
413         down.
414
415         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
416
417         * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
418
419         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
420
421         * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
422
423         * cspi/spi_accessible.c: Implemented c bindings for stateset support
424
425         * cspi/state-types.h: synched with IDL and ATK
426
427         2002-03-13  Bill Haneman <bill.haneman@sun.com>
428
429         * libspi/accessible.c 
430         (impl_accessibility_accessible_get_child_at_index):
431         Change return value for g_return_if_fail ()
432         to CORBA_OBJECT_NIL instead of "0" (!)
433
434         * registryd/Makefile.am:
435         * registryd/Accessibility_Register.server.in:
436         Changed name of executable, "registryd",
437         to something more informative:
438         "at-spi-registryd".
439
440 2002-03-13  Michael Meeks  <michael@ximian.com>
441
442         * atk-bridge/bridge.c (atk_bridge_init): don't register
443         if we're in a bonobo-component, rather than a bonobo app.
444
445 2002-03-13  Michael Meeks  <michael@ximian.com>
446
447         * atk-bridge/bridge.c (gtk_module_init): split
448         out body to (atk_bridge_init): here, since otherwise
449         we get symbol conflicts and oddness when invoked
450         from (gnome_accessibility_module_init): here (upd.)
451
452 2002-03-11  Bill Haneman  <bill.haneman@sun.com>
453
454         * HACKING:
455         New file.  Explicitly allow "build sheriff" putbacks provided
456         they are tested on Solaris.
457         
458         * docs/reference/cspi/Makefile.am:
459         Added '-' to the "cp" command for index.sgml.
460         ("patch by thomasvs, soon coming to a GUADEC near you")
461
462         * configure.in:
463         Incremented version number (0.9.0) for new release.
464         Changed macro that checks for popt, to better detect
465         obsolete versions of popt.
466         
467         * configure.in:
468         Added X_LIBS to AC_SUBST, for applications
469         that call Xlib API directly.
470         
471
472 2002-03-07  Bill Haneman  <bill.haneman@sun.com>
473
474         * configure.in:
475         Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
476
477         * util/Makefile.am:
478         Fix regression caused by hard-coding major
479         version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
480         (see above change).
481         
482         * test/test-simple.c (test_editable_text),
483         (test_test): revert previous change (error was 
484         a regression in gail which is now fixed).
485         
486 2002-03-04  Michael Meeks  <michael@ximian.com>
487
488         * test/test-simple.c (test_editable_text),
489         (test_text): pass G_MAXINT instead of '-1' for
490         whole string - is this a good thing !?
491
492         * cspi/spi_accessible.c
493         (Accessible_getRelationSet): fix crasher bug
494         overwriting the end of the array.
495
496         * test/test-simple.c (validate_accessible): free,
497         not g_free returned relation set.
498
499 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
500
501         * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
502         implemented stateset support
503
504         * idl/Accessibility_State.idl: Made necessary changes to
505         the IDL to support state sets.
506
507 2002-02-12 Bill Haneman <bill.haneman@sun.com>
508
509         * registryd/deviceeventcontroller.c:
510         Added implementation for generateMouseEvent.
511
512         * cspi/spi_registry.c:
513         Connected new implementation for generateMouseEvent
514         to the C bindings.
515         
516 2002-02-12 Bill Haneman <bill.haneman@sun.com>
517
518         * configure.in: 0.8
519         Incremented revision (but no change in public API
520         outside of 'utils', which are not installed public yet.)
521
522         * libspi/component.c:
523         Changed to use atk_component API for layers and
524         mdi_zorder, instead of deprecated atk_object API.
525         
526         Magnification Utility Enhancements:
527         
528         * util/magnifier.c:
529         Added implementation of createZoomRegion, clearAllZoomRegions,
530         resizeZoomRegion.  Added new commandline argument
531         "--no-initial-region".  Note that clearAllZoomRegions doesn't
532         unmap the old '0' region as it should (yet), and the other
533         methods only work when creating/resizing a single region,
534         which is "region 0".  
535         (Code for multiple region support will be added later.)
536
537         * util/mag_image.c:
538         Now we raise the magnifier window each time it's refreshed;
539         this will help keep it on top.
540         
541         * util/mag_client.h:
542         Added simple wrappers for above, used by mag_control.
543         For general use, it's recommended to use the bonobo magnifier
544         control API directly instead of using these wrappers.
545
546         * util/mag_image.h:
547         Moved ZoomRegionData from magnifier.c to this file.
548         
549         * util/mag_control.c: 
550         Added some code to exercise new IDL implementations.
551         
552 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
553
554         * libspi/text.c: Provide implementation for getAttributes.
555
556 2002-02-04  Bill Haneman <bill.haneman@sun.com>
557         
558         * configure.in:
559         Incremented revision.
560
561         * test/test-simple.c:
562         Replaced use of deprecated g_main_iteration with 
563         g_main_context_iteration.
564         
565 2002-01-28  Padraig O'Briain <padraig.obriain@sun.com>
566
567         * configure.in:
568         Incremented revision for desktop alpha 2.
569
570 2002-01-28  Mark McLoughlin  <mark@skynet.ie>
571
572         * libspi/remoteobject.[ch]: make RemoteObject and interface rather
573         than an atk object.
574
575         * test/simple-at.c: include netinet/in.h.
576
577 2002-01-24  Mark McLoughlin  <mark@skynet.ie>
578
579         * cspi/spi_accessible.c: (Accessible_getRelationSet):
580         use NULL, not CORBA_OBJECT_NIL.
581
582         * libspi/accessible.c:
583         (impl_accessibility_accessible_get_relation_set):
584         allocate the sequence correctly.
585
586         * libspi/remoteobject.h: kill spi_remote_object_new.
587
588         * test/test-simple.c: (validate_accessible): add code
589         to test relation sets, now all we need is to figure
590         out how to excercise this code path :/
591
592 2002-01-18  Michael Meeks  <michael@ximian.com>
593
594         * test/test-simple.c
595         (key_listener_cb): consume the key.
596         (test_keylisteners): update.
597         (main): wait for any pending unrefs on events.
598
599         * registryd/deviceeventcontroller.c
600         (spi_controller_update_key_grabs): only re-issue the
601         grab on a key release.
602         (spi_device_event_controller_forward_key_event):
603         refresh the keygrabs before we notify the listeners,
604         to reduce the X ungrab / re-grab race.
605         (spi_controller_register_with_devices): remove
606         XSelectInput - we do that with the gdk_window_ call.
607         (_spi_controller_device_error_handler): return a value.
608         s/GDK_DISPLAY/spi_get_display/
609
610 2002-01-17  Michael Meeks  <michael@ximian.com>
611
612         * registryd/deviceeventcontroller.c
613         (_deregister_keygrab): don't blow out the later
614         assertion.
615
616         * test/test-simple.c (test_keylisteners): do a
617         more intelligent validation.
618
619 2002-01-14  Michael Meeks  <michael@ximian.com>
620
621         * atk-bridge/bridge.c
622         (gnome_accessibility_module_init),
623         (gnome_accessibility_module_shutdown): impl.
624         (gtk_module_init): protect vs. double inits.
625         (add_signal_listener): impl.
626         (spi_atk_bridge_state_event_listener): kill
627         (deregister_application): split out of
628         (spi_atk_bridge_exit_func): here.
629
630 2002-01-18  Bill Haneman <bill.haneman@sun.com>
631
632         * test/simple-at.c:
633         Added caret tracking when using magnifier, and 
634         now use text bounds for focus tracking of text elements, rather than
635         the component bounds - this is helpful for short text fields in long
636         table cells, at high magnification.
637         
638 2002-01-16  Bill Haneman <bill.haneman@sun.com>
639
640         * registryd/deviceeventcontroller.c:
641         Regression fix for keylistener de-registration; global keygrabs
642         were not being released when deregisterKeystrokeListener was
643         called in cspi, since 
644         Accessibility_DeviceEventController_deregisterKeystrokeListener
645         was called with a zero-length keyset.  That is because the cspi
646         method, SPI_deregisterKeystrokeListener, does not take a keyset
647         parameter but instead should remove all the key grabs held be a
648         keystroke listener.  
649         The code in impl_deregister_keystroke_listener was changed to copy
650         the keylist from the listener instance previously registered with
651         the DeviceEventController before releasing the grabs.
652
653         * registryd/registry.c:
654         * registryd/deviceeventcontroller.c:
655         * libspi/spi-private.h:
656         * libspi/util.c:
657         Changed spelling of "re-enterant" to "re-entrant" globally.
658
659 2002-01-16  Bill Haneman <bill.haneman@sun.com>
660
661         * test/test-simple.c:
662         Changed key listeners test - the test was slightly mis-using the
663         (admittedly poorly documented) SPI_generateKeyboardEvent API.
664         It now uses '=' as the key event listened to and generated,
665         relying on a keysym match rather than assuming that keycode 33 
666         is always equal to keysym '!'.
667
668 2002-01-15  Bill Haneman <bill.haneman@sun.com>
669
670         * test/simple-at.c:
671         Changed simple-at to use a specific keyset, rather than
672         SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
673         manager, desktop, etc.
674         
675 2002-01-11  Bill Haneman <bill.haneman@sun.com>
676
677         * registryd/deviceeventcontroller.c:
678         Replaced standard X error handler with a special handler that 
679         is non-fatal for failed keygrabs.  This works around 
680         problems with keygrab clashes sometimes observed on 
681         Solaris using CDE.
682         Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate 
683         mouse handling code as yet).
684         
685 2002-01-11  Bill Haneman <bill.haneman@sun.com>
686
687         * configure.in:
688         Incremented revision for desktop alpha release.
689
690         * README:
691         Fixed a couple of the more glaring errors (still not 
692         very up-to-date).
693
694 2002-01-11  Michael Meeks  <michael@ximian.com>
695
696         * registryd/deviceeventcontroller.c
697         (spi_device_event_controller_forward_key_event): kill
698         XUngrabKey / XKeyGrab race.
699         (spi_controller_grab_keyboard): rename to
700         (spi_controller_update_key_grabs): this, and deal
701         with incremental adding / removing grabs more
702         sensibly.
703         (_register_keygrab): ensure we're not pending a remove.
704         (spi_grab_mask_free): impl.
705         (spi_controller_register_global_keygrabs): split out
706         common code into:
707         (handle_keygrab): impl.
708         (_deregister_keygrab): impl.
709         (spi_controller_deregister_global_keygrabs): impl.
710         (spi_controller_update_key_grabs): re-issue the grab if
711         we just recieved a notification.
712
713         * test/test-simple.c (key_listener_cb): remove debug.
714
715         * registryd/deviceeventcontroller.c
716         (spi_controller_register_device_listener): after
717         registering a global keygrab, actualy register it !
718         don't wait for a timeout; doh !
719
720         * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
721         to make it more readable / manipulable.
722         s/grabmask/grab_mask/ s/refcount/ref_count/
723         s/keyval/key_val/ s/modmask/mod_mask
724
725 2002-01-08  Michael Meeks  <michael@ximian.com>
726
727         * registryd/deviceeventcontroller.c
728         (spi_controller_register_with_devices): use gdk calls to
729         setup a filter.
730         (global_filter_fn): implement the filter.
731         (spi_device_event_controller_check_key_event): rename to
732         (spi_device_event_controller_forward_key_event): this & upd.
733         (spi_get_display): replace with GDK_DISPLAY.
734
735         * registryd/deviceeventcontroller.c
736         (spi_controller_deregister_device_listener): unroll into
737         (impl_deregister_keystroke_listener): here to simplify.
738         (spi_controller_register_global_keygrabs): split cut and
739         paste (!) out into (_register_keygrab): here, shorter & sweeter.
740         (spi_controller_deregister_device_listener): remove.
741         (impl_register_mouse_listener): remove, no mouse listener
742         support in at-spi-1.0
743
744         * registryd/registry.c
745         (_device_event_controller_hook): kill.
746         (spi_registry_init): upd.
747
748         * registryd/deviceeventcontroller.c
749         (spi_device_event_controller_class_init): upd.
750         (spi_check_key_event): merge into.
751         (spi_device_event_controller_check_key_event):
752         here and kill strange static ev init, don't leak
753         the x_event - nor dynamicaly allocate it.
754
755         * registryd/registry-main.c (main): re-direct
756         timeout to remove strange vtable mess.
757
758         * registryd/deviceeventcontroller.c
759         (remove_listener_cb): impl.
760         (spi_controller_deregister_device_listener):
761         fix re-enterancy hazard.
762
763 2002-01-07  Michael Meeks  <michael@ximian.com>
764
765         * registryd/deviceeventcontroller.c
766         (spi_device_event_controller_new): upd.
767         (impl_notify_listeners_sync): upd. debug.
768         (spi_notify_keylisteners): fix re-enterancy hazards,
769         prettify, remove O(n*n) iteration.
770         (spi_controller_grab_keyboard): fix iteration.
771         (spi_check_key_event): re-format to suit coding style.
772         Clean all the warnings - we're warning free.
773
774         * registryd/deviceeventcontroller.h:
775         * registryd/registry.h: make mutualy referential with
776         typesafe forward references instead of (!) void pointer
777         hacks.
778
779 2002-01-11  Michael Meeks  <michael@ximian.com>
780
781         * cspi/spi_accessible.c (role_names): add a role name
782         to sync this array with the enum; and make the regression
783         tests pass, sigh.
784
785 2002-01-10  Michael Meeks  <michael@ximian.com>
786
787         * cspi/spi_registry.c (SPI_generateKeyboardEvent): 
788         allow expansion of enumeration & kill warning.
789
790         * test/test-simple.c (key_listener_cb): impl.
791         (test_keylisteners): impl.
792
793         * cspi/spi-listener.h: make listener signatures const
794         on the provided (const) events.
795
796         * test/keysynth-demo.c: upd. to const events.
797
798         * test/simple-at.c: ditto.
799
800 2002-01-11  Bill Haneman <bill.haneman@sun.com>
801
802         * configure.in:
803         Rev the version to 0.5 (the previous tarball was named 0.4, 
804         even though the micro number was 3), so we need to rev upwards
805         again for beta2/"desktop-alpha" 
806  
807         * test/demo.csh:
808         Checked in a demo script, which requires editing before use!
809         Proceed with caution.
810         
811         * libspi/value.h:
812         Fixed typo in header which was redefining SPI_ACTION_CLASS.
813
814         * cspi/spi_accessible.c:
815         Add a couple of missing enum initializations, and fix some enum
816         comments.
817
818         * cspi/spi_registry.c:
819         Add comment describing keystring parameter to SPI_generateKeyboardEvent.
820         
821         * docs/reference/cspi/at-spi-cspi-sections.txt:
822         Remove/fix a couple of broken document references.
823
824         * test/simple-at.c:
825         Minor tweaks to the demo.  We now (sigh) use Alt-SHIFTLOCK as well
826         as Alt-Control to listen for commands, since on some systems
827         Control-Alt may already be grabbed.
828
829 2002-01-10  Bill Haneman <bill.haneman@sun.com>
830
831         * configure.in:
832         Update version number to 0.4 for Beta2.
833         
834         * libspi/accessible.c, libspi/accessible.h:
835         Expose spi_accessible_construct, to enable libgail-gnome
836         construction from spi_accessible subtype.
837
838         * utils/magnifier.c:
839         Workaround for bug in some non-gnome-compliant window managers
840         which made magnifier resize improperly.
841
842 2002-01-09  Bill Haneman <bill.haneman@sun.com>
843
844         * libspi/accessible.c: (spi_accessible_new) :
845         Move the test for SPI_IS_REMOTE_OBJECT to
846         spi_accessible_new_return, fixing a bug and compile time warning.
847         
848 2002-01-08  Michael Meeks  <michael@ximian.com>
849
850         * registryd/registry.c (parse_event_type): remove strndup.
851
852         * libspi/Makefile.am (libspi_la_SOURCES): remove
853         sources already included in the headers section.
854
855         * libspi/util.c: add.
856
857         * libspi/spi-private.h: add.
858
859         * registryd/registry.c: update to moved list iterators.
860
861 2002-01-05  Michael Meeks  <michael@ximian.com>
862
863         * test/simple-at.c (main): upd. auto-module set to atk-bridge
864
865         * test/test-simple.c (main): ditto.
866
867 2002-01-04  Michael Meeks  <michael@ximian.com>
868
869         * libspi/accessible.c (spi_accessible_new): remove 2nd,
870         redundant construct.
871
872         * registryd/registry.c
873         (get_listener_list): impl.
874         (impl_accessibility_registry_register_global_event_listener):
875         re-impl. to simplify using ~, remove dodgy const cast off.
876         (parse_event_type): constify.
877         (impl_accessibility_registry_deregister_global_event_listener_all): 
878         re-write, more efficiency and simplicity, kill re-enterancy
879         hazard.
880         (compare_listener_corbaref, compare_corba_objects),
881         (compare_listener_quarks): define out.
882         (impl_accessibility_registry_deregister_global_event_listener): 
883         re-write for effiency, and nail re-enterancy hazard.
884         (impl_accessibility_registry_get_desktop_list): impl.
885         (re_enterant_list_delete_link): impl.
886         (re_enterant_list_foreach): impl.
887         (remove_listener_cb): impl.
888         (_registry_notify_listeners): kill.
889         (notify_listeners_cb): impl.
890
891         * cspi/spi_registry.c (SPI_freeDesktopList): impl.
892         (SPI_getDesktopList): impl.
893
894         * test/test-simple.c (test_desktop): test the methods.
895
896 2002-01-03  Michael Meeks  <michael@ximian.com>
897
898         * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
899         keystrings since we free them
900         (SPI_freeAccessibleKeySet): in here.
901
902         * libspi/accessible.c (spi_accessible_new): kill warning,
903         wonder what is going on with the constructor here.
904
905 2002-03-01  Bill Haneman <bill.haneman@sun.com>
906
907         * libspi/accessible.c (spi_accessible_new ()) :
908         Added check to see if AtkObject is an SpiRemoteObject before
909         creating an SpiAccessible.
910         
911 2002-05-01  Bill Haneman <bill.haneman@sun.com>
912
913         * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
914         Enable keygrabs using the Control modifier, now that they are
915         working properly (they were previously disabled).
916
917         * test/simple-at.c:
918         Change the command keygrab for this demo to "Control+Alt", so as
919         to conflict with fewer other key commands on the system; this
920         means that the quit command for "simple-at" is now "Ctrl-Alt-q".
921
922         Removed a pointlessly-chatty keylistener for unshifted keys
923         (shifted keys are still reported).
924         
925 2002-02-01  Bill Haneman <bill.haneman@sun.com>
926
927         * libspi/remoteobject.h:
928         * libspi/remoteobject.c:
929         Added definitions for special AtkObject subtype, required for
930         support of remote components (specifically, used by BonoboControl
931         accessibility implementation).
932         
933 2002-01-02 Marc Mulcahy  <marc.mulcahy@sun.com>
934
935         * cspi/spi.h: synched relation types with ATK
936
937         * cspi/spi_accessible.c: Added implementations of
938         AcccessibleRelation_* methods
939
940         * idl/Accessibility_Relation.idl: added getRelationTypeName
941         method.  Synched known relation types with ATK.  Allowed for
942         relation type extension with the RELATION_EXTENDED type.
943         
944         * libspi/relation.c: Provided implementations for
945         AccessibleRelation methods.
946
947 2002-01-01  Bill Haneman <bill.haneman@sun.com>
948
949         API tweaks for today's API 'freeze'.
950
951         * idl/*:
952         Added placeholder functions to allow future compatible expansion
953         of the IDL interfaces.
954
955         * idl/Accessibility_Registry.idl:
956         Changed generateKeyEvent to generateKeyboardEvent.  Changed
957         signature of this method to accept an optional keystring in
958         parameter (for complex text input synthesis) and changed use of
959         simple 'boolean' parameter in registerKeystrokeListener to a
960         struct, EventListenerMode.
961
962         * cspi/spi_accessible.c:
963         * cspi/spi.h:
964         * cspi/spi_streamablecontent.c:
965         Added references to AccessibleStreamableContent interface, and
966         definition and implementation of AccessibleStreamableContent 
967         C bindings.
968
969         * cspi/spi_registry.c:
970         * cspi/spi.h:
971         Changed generateKeyEvent API to generateKeyboardEvent,
972         taking a new (optional) keystring parameter to support complex
973         text input.
974         
975         * at-bridge/*:
976         * atk-bridge/*:
977         Renamed directory (to better reflect its actual purpose, bridging
978         from at-spi to ATK).  The .so module is also now named
979         libatk-bridge.so.
980
981         * idl/Accessibility_Hypertext.idl:
982         * libspi/accessible.c:
983         * libspi/hypertext.h:
984         * libspi/hypertext.c:
985         Changed Accessibility_Hypertext to *not* derive from
986         Accessibility_Text.
987
988         * cspi/spi_registry.c:
989         Added list of legal event type names for 'window' events, which
990         completes the registry event API.
991
992 2001-12-22  Marc Mulcahy  <marc.mulcahy@sun.com>
993
994         * at-bridge/bridge.c: Added registration for separate
995         "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
996         signals.  If either of the first two parameters to the generic
997         bridge signal handler are ints, they are passed on as event
998         details.  This allows an AT to determine what text was inserted.
999
1000 2001-12-21  Bill Haneman <bill.haneman@sun.com>
1001
1002         * registryd/deviceeventcontroller.c:
1003         Fixed regressions in generateKeyEvent caused by the removal of
1004         gdk_init from registryd; we now use pure X calls to connect to the
1005         display, which makes sense because deviceeventcontroller already
1006         uses a fair bit of X API (should eventually be migrated to a
1007         'portability layer').
1008
1009         * registryd/desktop.c:
1010         Fixed minor regression in spi_desktop_init, changed the way the
1011         desktop name is being set to work with new spi_base API
1012         (gobject-based, rather than AtkObject-based).
1013
1014         * registryd/Makefile.am:
1015         Minor revision of makefile to use XTST_LIBS variable rather than
1016         hard-wiring the Xtst LD_ADD element.
1017
1018         * test/keysynth-demo.c:
1019         Tweaked an output message; added initialization of the
1020         'keystrings' member of the "switch listener" key_set.
1021
1022         * libspi/relation.c:
1023         Squashed compile-time warning.
1024
1025         * libspi/accessible.c:
1026         Cosmetic and formatting fixes, renamed a static method.
1027         
1028 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
1029
1030         * libspi/accessible.c 
1031         * libspi/action.c
1032         * libspi/application.c 
1033         * libspi/base.c 
1034         * libspi/base.h
1035         * libspi/component.c 
1036         * libspi/editabletext.c
1037         * libspi/hyperlink.c 
1038         * libspi/hypertext.c
1039         * libspi/image.c 
1040         * libspi/selection.c 
1041         * libspi/table.c
1042         * libspi/text.c 
1043         * libspi/value.c 
1044         * registryd/desktop.c:
1045         Changed SpiBase to contain a GObject pointer rather than an AtkObject
1046
1047 2001-12-17  Bill Haneman <bill.haneman@sun.com>
1048
1049         * idl/Accessibility_Registry.idl:
1050         Added boolean member 'is_text' to DeviceEvent.  This is for the
1051         use of key events, and helps prevent ambiguity between composed
1052         key strings and keysym names, since both may potentially be
1053         returned in the 'event_string' member.
1054
1055         * at-bridge/bridge.c:
1056         * registryd/deviceeventcontroller.c:
1057         Use the 'is_text' member when notifying device event listeners.
1058         Knon issue: composed characters are not dealt with correctly by
1059         the global key listener implementation yet.
1060         
1061 2001-12-17  Bill Haneman <bill.haneman@sun.com>
1062
1063         * at-bridge/bridge.c:
1064         Namespaced local static methods to spi_atk_bridge_* where
1065         previously named bridge_*, and spi_* elsewhere.
1066
1067         * at-bridge/bridge.c:
1068         * cspi/bonobo/cspi-bonobo-listener.c:
1069         Added demarshalling/conversion for string member of
1070         Accessibility_DeviceEvent to AccessibleKeystroke.
1071
1072         * registryd/deviceeventcontroller.c:
1073         Added code to fill the Accessibility_DeviceEvent key string value
1074         member for global key events (i.e. from XGrabKey), to match
1075         behavior of Accessibility_DeviceEvent from the toolkit key events
1076         from the bridge.  Fixed timestamp in global key event notifications.
1077
1078         * test/simple-at.c:
1079         Added printout of key event's string value to
1080         report_ordinary_key_event, for demo/debugging purposes.
1081
1082 2001-12-15  Bill Haneman <bill.haneman@sun.com>
1083
1084         * idl/Accessibility_Registry.idl:
1085         Removed Accessibility_KeyStroke structure in favor of generic
1086         Accessibility_DeviceEvent structure.
1087         Changed Accessibility_ControllerEventMask from a struct to an
1088         unsigned long.
1089
1090         * at-bridge/bridge.c:
1091         Changed APIs to use DeviceEvent structure as above, and removed
1092         bogus casting between these event structures.
1093
1094         * cspi/spi-listener.h:
1095         Added keystring member of AccessibleKeystroke structure, to enable
1096         matching on event "names" rather than only hardware codes and
1097         keysyms.
1098
1099         * cspi/spi.h:
1100         Added keystrings member of AccessibleKeySet struct, to allow
1101         matching on event names (as above).
1102         Added declarations for SPI_createAccessibleKeySet and
1103         SPI_freeAccessibleKeySet.  Due to changes in libspi, we now pass
1104         event modmasks directly as unsigned ints rather than structs with
1105         refcounts, in the DeviceEventController methods.
1106
1107         * cspi/spi_registry.c:
1108         Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
1109
1110         * cspi/spi-roletypes.h:
1111         Added documentation of newly added SPI Roles.
1112
1113         * cspi/bonobo/cspi-bonobo-listener.c:
1114         Changes in support of API changes above.
1115         
1116         * libspi/accessible.c:
1117         Converted APIs to use DeviceEvent structure (see IDL changes
1118         above). 
1119
1120         * registryd/deviceeventcontroller.c:
1121         Added DEControllerGrabMask structure to track keygrabs not only by
1122         modmask but by keyset as well; this allows us to do "global"
1123         (i.e. X) keygrabs on a per-key or keyset basis rather than always
1124         grabbing on AnyKey and then filtering after-the-fact.
1125         Bugfixes for event filtration mean that we don't get false matches
1126         on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
1127
1128         * registryd/deviceeventcontroller.c:
1129         Namespaced a number of static methods to use spi_ prefix.  Major
1130         revision to internals of global (i.e. X) key grabs.
1131
1132         * registryd/deviceeventcontroller.h:
1133         Removed keymask_list and added keygrabs_list to
1134         SpiDeviceEventController struct.
1135
1136         * test/simple-at.c:
1137         Added use of SPI_createAccessibleKeySet API when creating a
1138         listener for only one key.  Attach a listener to "shift spacebar
1139         SPI_KEY_RELEASE" as a demonstration.  Changed (incorrect) usage of
1140         X key event names to SPI key event names, so that listeners are
1141         registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
1142         
1143         * test/keysynth-demo.c:
1144         Changed (incorrect) use of X key event names (KeyPressed,
1145         KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
1146         
1147
1148 2001-12-12  Bill Haneman <bill.haneman@sun.com>
1149
1150         * libspi/accessible.c:
1151         Convert all AtkRole enumerations to Accessibility_Role enums when
1152         getting a role from an AtkObject.
1153         
1154         * cspi/spi_accessible.c:
1155         Complete the conversion of Accessibility_Role enums at runtime to
1156         AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
1157         role enums correctly match those given in spi-roletypes.h.  
1158         Re-synchronize the local names list for AccessibleRole_getName ().
1159         AccessibleRole_getName is now deprecated, since it duplicates the
1160         more reliable Accessible_getRoleName.
1161         Added some role types from Accessibility_Role.idl.
1162
1163         * idl/Accessibility_Role.idl:
1164         Added some role types used by AtkRole.
1165
1166 2001-12-12  Bill Haneman <bill.haneman@sun.com>
1167         
1168         * cspi/spi.h:
1169         * cspi/spi_registry.c:
1170         * cspi/spi_event.c:
1171         * cspi/cspi-bonobo-listener.c:
1172         Namespaced all methods that did not begin with an "SPI_" or
1173         "Accessible" prefix to "SPI_".  
1174
1175         * cspi/spi_main.c:
1176         Homogenized internal function namespace to "cspi_" for statics.
1177         
1178         * test/*.c:
1179         Patched tests to use the new CSPI API.
1180
1181         * docs/reference/cspi/at-spi-cspi-sections.txt:
1182         Updated docs to reflect namespace changes, and added a number of
1183         methods to the documentation.
1184         
1185         * registryd/registry.c:
1186         Changed use of strings and string hashes in listener event
1187         matching and parse_event_string to use GQuark, which is guaranteed
1188         unique.
1189         
1190         * registryd/registry.h:
1191         Squashed annoying warning.
1192
1193         * idl/Accessibility_Role.idl:
1194         Extended range of available Accessibility_Role values.
1195
1196         * cspi/spi_accessible.c:
1197         Re-ordered role names. 
1198
1199 2001-12-12  Bill Haneman <bill.haneman@sun.com>
1200
1201         * idl/Accessibility_Value.idl:
1202         Revert use of union back to CORBA_double, since the double type is
1203         more efficient and can contain the other types without loss of
1204         precision.
1205
1206         * idl/Accessibility_Accessible.idl:
1207         Added method Accessibility:Accessible:getRoleName, to complement
1208         Accessibility:Accessible:getRole.
1209
1210         * cspi/spi_accessible.c:
1211         * cspi/spi.h:
1212         Added C binding for above, Accessible_getRoleName (), and changed
1213         signature of Accessible_getRole () to return an AccessibleRole.
1214
1215         * cspi/spi-roletypes.h:
1216         Changed AccessibleRole_getName to return a char * instead of a
1217         const char *.  This method is now at least temporarily deprecated 
1218         in favor of asking Accessibles for their RoleNames directly.
1219
1220         * libspi/value.c:
1221         Revert to match Accessibility_Value.idl;
1222
1223         * cspi/spi_value.c:
1224         * cspi/spi.h:
1225         Change signature of AccessibleValue methods to use double rather
1226         than float.
1227
1228         * cspi/spi.h:
1229         * cspi/spi_accessible.c:
1230         Changed Accessible_getRole to return an AccessibleRole enum rather
1231         than a UTF-8 string.  The UTF-8 string can still be obtained via
1232         AccessibleRole_getName ().
1233         
1234         * test/test-simple.c:
1235         Add test_action.  Small fixup to match API change to Accessible_getRole.
1236
1237         * libspi/action.c:
1238         Bugfix for get_action_from_servant ().
1239
1240 2001-12-11  Michael Meeks  <michael@ximian.com>
1241
1242         * libspi/libspi.h: remove registry.h and
1243         desktop.h, deviceeventcontroller.h
1244
1245         * libspi/Makefile.am: remove registry.[ch],
1246         desktop.[ch], deviceeventcontroller.[ch]
1247
1248         * registryd/Makefile.am: add registry.[ch],
1249         desktop.[ch], rename registryd.c to registry-main.c.
1250         add deviceeventcontroller.[ch]
1251
1252 2001-12-11  Bill Haneman <bill.haneman@sun.com>
1253
1254         * test/simple-at.c:
1255         Replace setenv() call with putenv ().
1256
1257         * libspi/component.c:
1258         Bugfix in AccessibleComponent_getExtents (),
1259         (from Adi Dascal).
1260         
1261 2001-12-11  Michael Meeks  <michael@ximian.com>
1262
1263         * libspi/image.c (impl_getImageExtents): impl.
1264         (spi_image_class_init): upd.
1265
1266         * cspi/spi_image.c
1267         (AccessibleImage_getImageDescription): fix daft bug
1268         of mine (doh).
1269
1270         * test/test-simple.c (global_listener_cb): update
1271         to only quit if not --poke
1272         (main): catch --poke.
1273         (validate_accessible): upd. dumping, call test_image
1274         (test_image): impl.
1275
1276         * libspi/Makefile.am (IDL_DEPS): fixup the IDL
1277         dependencies.
1278
1279         * idl/Accessibility.idl: update all IDL includes.
1280
1281         * idl/*.idl - rename to namespace - this sucks, blame
1282         mjs' bad decision for oafd.
1283
1284         * test/test-simple.c (create_test_window): add more tests.
1285         (create_tree): split this out.
1286         (validate_accessible): bugfix.
1287
1288 2001-12-11  Michael Meeks  <michael@ximian.com>
1289
1290         * cspi/bonobo/cspi-bonobo-listener.c: 
1291         (cspi_kestroke_listener_unref),
1292         (cspi_event_listener_unref): impl. undoing previous
1293         homenous environment - for Bill.
1294
1295         * cspi/spi_table.c (long_seq_to_array): use
1296         malloc instead.
1297
1298         * cspi/spi_main.c: split out all bonoboish bits into
1299         bonobo/
1300
1301         * cspi/spi-impl.h: upd. typedefs.
1302
1303         * cspi/spi_registry.c: update to lowlevel API,
1304         return booleans to indicate success in some places.
1305
1306         * cspi/spi_event.c: update to lowlevel API.
1307
1308         * cspi/bonobo/Makefile.am: add.
1309
1310         * cspi/bonobo/cspi-lowlevel.h: add
1311
1312         * cspi/bonobo/cspi-bonobo.c: add
1313
1314         * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
1315
1316         * cspi/Makefile.am: remove spi-listener-impl.[ch],
1317         (SUBDIRS): add bonobo, link in the libs.
1318
1319         * cspi/spi-util.c: kill this file.
1320
1321         * TODO: merge in my bits.
1322
1323 2001-12-11  Michael Meeks  <michael@ximian.com>
1324
1325         * test/test-simple.c (test_value, test_table, main):
1326         remove unused variables causing warnings.
1327
1328         * configure.in: cleanup checks - require gail.
1329
1330 2001-12-11  Bill Haneman  <bill.haneman@sun.com>
1331
1332         * idl/Value.idl:
1333         Changed Value interface to use SValue (scalars) rather than
1334         assuming all values are floats.  This allows floats, doubles,
1335         longs, shorts, and unsigned values to be manipulated.
1336         Introduced Accessibility:SValue union.
1337
1338         * libspi/value.c:
1339         Updated to use new API above, and to work correctly with GValues
1340         of different types in AtkValue.
1341
1342         * cspi/spi_value.c:
1343         Updated to use new API above.  cspi's API is as yet unchanged.
1344
1345         * TODO: 
1346         Updated the Value revision action item.
1347         
1348 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
1349
1350         * test/test-simple.c:
1351         Added test_table (GtkTreeView widget in test window to follow).
1352         Un-commented test_value, added GtkRange widget.
1353         Added GtkTreeView widget with GtkListStore.  It passes regression
1354         test but leaks one SPI object for some reason.
1355
1356         * libspi/value.c:
1357         Fixed bug in impl__set_currentValue.
1358
1359 2001-12-10  Michael Meeks  <michael@ximian.com>
1360
1361         * cspi/spi_text.c: audit for exception handling,
1362         tolerating NULL object references safely etc.
1363
1364         * cspi/spi_value.c: ditto.
1365
1366         * cspi/spi_table.c (AccessibleTable_getSummary),
1367         (AccessibleTable_getAccessibleAt),
1368         (AccessibleTable_getRowHeader),
1369         (AccessibleTable_getColumnHeader),
1370         (AccessibleTable_getCaption): fix bugs hidden by
1371         incorrect casts.
1372         (long_seq_to_array): impl.
1373         (AccessibleTable_getSelectedRows),
1374         (AccessibleTable_getSelectedColumns): use it.
1375
1376 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
1377
1378         * TODO:
1379         Added a TODO list (rough and short for now).
1380
1381         * cspi/spi_hyperlink.c:
1382         * cspi/spi_hypertext.c:
1383         Fixed macro name typos, and remove use of obsolete macro in 
1384         AccessibleHyperlink_getLink.
1385
1386         * cspi/spi_action.c:
1387         * cspi/spi_accessible.c:
1388         * cspi/spi_application.c:
1389         * cspi/spi_component.c:
1390         * cspi/spi_selection.c:
1391         * cspi/spi_text.c:
1392         * cspi/spi_value.c:
1393         Documentation fixes (removed return values from ref/unref methods).
1394
1395 2001-12-10  Michael Meeks  <michael@ximian.com>
1396
1397         * cspi/spi_action.c: audit for exception handling,
1398         tolerating NULL object references safely etc.
1399
1400         * cspi/spi_accessible.c: ditto.
1401
1402         * cspi/spi_component.c: ditto.
1403
1404         * cspi/spi_editabletext.c: ditto.
1405
1406         * cspi/spi_hyperlink.c: ditto.
1407
1408         * cspi/spi_hypertext.c: ditto.
1409
1410         * cspi/spi_image.c: ditto.
1411
1412         * cspi/spi_selection.c: ditto.
1413
1414 2001-12-10  Michael Meeks  <michael@ximian.com>
1415
1416         * configure.in: use cspi/libspi.pc.in instead.
1417
1418         * Makefile.am (pkgconfig_DATA): upd. to match.
1419
1420         * test/simple-at.c (report_focus_event): kill hacks around
1421         bad return values, use putenv not setenv
1422
1423         * libspi/desktop.c (impl_desktop_get_child_at_index): don't
1424         fire ChildGone - I killed it.
1425
1426         * libspi/component.c
1427         (impl_accessibility_component_get_extents): remove
1428         bogus return.
1429
1430         * idl/Accessible.idl: kill ChildGone exception.
1431
1432         * cspi/*.[ch]: kill int return from ref / unref.
1433         
1434         * cspi/spi_main.c (cspi_object_add_check): fold into
1435         (cspi_object_add): here.
1436
1437         * cspi/spi_component.c (AccessibleComponent_getExtents):
1438         handle exceptions elegantly.
1439
1440         * cspi/spi-private.h (cspi_check_ev_return),
1441         (cspi_return_if_fail): impl.
1442
1443         * cspi/spi_accessible.c: use extensively.
1444         (AccessibleStateSet_equals): add direct compare check.
1445
1446         * cspi/spi_selection.c: tolerate NULL objs, and check
1447         exceptions before return.
1448
1449         * cspi/spi-util.c (cspi_warn_ev): rename to
1450         (cspi_check_ev): this & don't pass ev in; no point.
1451
1452 2001-12-10  Michael Meeks  <michael@ximian.com>
1453
1454         * test/test-simple.c: use putenv not setenv
1455         (get_environment_vars): more chatty if you're not using
1456         the fun bits.
1457
1458         * test/simple-at.c: do the setenv so more people see the
1459         nice demo easily.
1460
1461 2001-12-10  Bill Haneman <bill.haneman@sun.com>
1462
1463         * libspi/registry.c:
1464         Changed check of CORBA_environment on notification to be a warning
1465         instead of an error for the moment, since we can recover from this
1466         error when caused by a queued notification from a dead app.
1467         
1468         * libspi/value.c:
1469         Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
1470         used by all current implementors of AtkValue), and coerce to
1471         CORBA_float. (Proper general case fix may require change to Value.idl).
1472
1473 2001-12-09  Bill Haneman <bill.haneman@sun.com>
1474
1475         * cspi/spi.h:
1476         * cspi/spi_event.c:
1477         * cspi/spi_accessible.c:
1478         Documentation fixes: added user_data params to documentation for 
1479         listeners and callbacks.  
1480
1481         * cspi/spi_accessible.c: 
1482         Changed AccessibleStateSet_compare to return a
1483         StateSet rather than return the difference set into a third parameter.
1484         
1485         
1486 2001-12-09  Bill Haneman <bill.haneman@sun.com>
1487
1488         * configure.in:
1489         Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
1490         remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
1491         it). 
1492
1493         * Makefile.am:
1494         Remove subdirectory po from SUBDIRS for now.
1495
1496         * at-bridge/bridge.c:
1497         Beefed up a couple of debug printouts.
1498         One-line fix for signal notification name formatting.
1499
1500         * libspi/accessible.c:
1501         Added assertion to spi_accessible_new ().
1502
1503         * libspi/application.c:
1504         Put #ifdef qualifiers around a printf.
1505
1506         * libspi/value.c:
1507         Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
1508
1509         * registryd/Makefile.am:
1510         * util/Makefile.am:
1511         Replaces use of XML_I18N_MERGE_SERVER_RULE with
1512         INTLTOOL_SERVER_RULE macro.
1513
1514         * test/simple-at.c:
1515         Added an event listener for several ATK signals, for
1516         testing and debugging.  Removed a few g_warnings.
1517         Added test output if focussed item implements the Value interface.
1518
1519         * test/test-simple.c:
1520         Added test_value () function (known not to pass at the moment, so
1521         not actually called yet.
1522         
1523 2001-12-08  Michael Meeks  <michael@ximian.com>
1524
1525         * at-bridge/bridge.c (bridge_focus_tracker),
1526         (emit_eventv): fix the same ref. leak.
1527         (register_atk_event_listeners): don't leak.
1528
1529         * cspi/spi-listener-impl.c (cspi_event): more 
1530         protection from client code.
1531
1532         * test/test-simple.c (test_desktop): unref the app.
1533
1534         * test/Makefile.am: upd. TESTS.
1535
1536         * at-bridge/bridge.c (bridge_exit_func): release the registry.
1537
1538         * test/keysynth-demo.c (keysynth_exit): unref the listeners.
1539
1540         * cspi/spi_accessible.c (Accessible_queryInterface): constify.
1541
1542         * cspi/spi_registry.c: constify in strings.
1543         (deregisterGlobalEventListenerAll): don't release the ref.
1544
1545         * cspi/spi.h: start removing redundant / conflicting
1546         gtkdoc comments, making the API readable at a glance :-)
1547         
1548         * cspi/spi_event.c (AccessibleEventListener_unref): impl.
1549
1550         * test/keysynth-demo.c (keysynth_exit, main): upd.
1551
1552         * test/simple-at.c (main, simple_at_exit): upd.
1553
1554         * test/test-simple.c (unutterable_horror): kill.
1555         (utterable_normal_derefs): kill.
1556         (main): upd & do a setenv before gtk_init, so that we
1557         can use memprof - and to save the pain of remembering
1558         this, if we're running under memprof - don't exit.
1559
1560         * cspi/spi_main.c (SPI_exit): return exit status
1561         for cspi.
1562         (SPI_event_quit): impl.
1563         (SPI_event_main): simplify.
1564         (cspi_is_gnome_app): kill.
1565         (SPI_init): kill isGNOMEapp arg.
1566
1567         * at-bridge/bridge.c (register_atk_event_listeners):
1568         re-instate the unref.
1569         (bridge_exit_func): don't re-activate the registry,
1570         protect vs. theoretical re-entry, use the
1571         AT_BRIDGE_SHUTDOWN env. var to determine whether to
1572         assert a clean shutdown - for regression tests.
1573
1574 2001-12-08  Abel Cheung  <maddog@linux.org.hk>
1575
1576         * configure.in: Comment out dummy i18n support for now,
1577           otherwise it fails to build.
1578         * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
1579           EXTRA_DIST. They are missing in tarball.
1580
1581 2001-12-07  Michael Meeks  <michael@ximian.com>
1582
1583         * util/magnifier.c: kill bonobo activation reg. race.
1584
1585         * libspi/component.c
1586         (impl_accessibility_component_get_extents): make it match
1587         it's sig.
1588
1589         * libspi/registry.c (_registry_notify_listeners):
1590         re-remove X headers & reconcile conflicts.
1591         (spi_listener_struct_free): bad conflict resolve.
1592         (impl_accessibility_registry_register_application):
1593         more bad merging fixed.
1594         (impl_accessibility_registry_deregister_application): ditto.
1595         (spi_registry_new): ditto.
1596         (spi_registry_init): don't have an applications field.
1597
1598 [ merge fixups2 branch to here ]
1599 2001-12-07  Michael Meeks  <michael@ximian.com>
1600
1601         * test/simple-at.c (report_focus_event),
1602         (report_focussed_accessible): remove g_warning debug.
1603
1604 2001-12-07  Michael Meeks  <michael@ximian.com>
1605
1606         * test/test-simple.c (validate_tree): comment out some checks.
1607         (test_desktop): app now not registered idly - horay.
1608
1609 2001-12-07  Michael Meeks  <michael@ximian.com>
1610
1611         * cspi/spi_registry.c
1612         (registerAccessibleKeystrokeListener): clean, stop it leaking
1613         great swathes of memory, and device event controller references.
1614         ensure we always pass valid sequences.
1615         (deregisterAccessibleKeystrokeListener): ditto.
1616         (generateKeyEvent): upd.
1617
1618         * at-bridge/bridge.c (bridge_key_listener): handle
1619         registry dead exception gracefully.
1620         (bridge_focus_tracker, emit_eventv): free ev.
1621
1622         * test/simple-at.c (report_focus_event): fix polarity.
1623
1624         * libspi/application.c (notify_listeners): kill the ev
1625         argument, and make sure we init the ev we use.
1626         (spi_application_object_event_listener): split out a chunk
1627         (get_atk_object_ref): here & fixup.
1628         (reverse_lookup_name_for_toolkit_event): make const.
1629         (spi_application_toolkit_event_listener): fixup, kill leaks
1630         ref problems etc.
1631
1632         * at-bridge/bridge.c (register_atk_event_listeners):
1633         don't unref the noop object - causes grief.
1634
1635         * libspi/registry.c: remove the X headers.
1636         turn off the debug churn.
1637
1638         * libspi/accessible.c (spi_accessible_new_return): only
1639         release the ref if we are supposed to [doh]
1640
1641         * test/simple-at.c (report_button_press, report_focus_event):
1642         guard vs. unexpected exit.
1643
1644         * at-bridge/bridge.c (gtk_module_init): prune printf.
1645         (bridge_exit_func): fix app unref.
1646
1647         * libspi/Makefile.am: don't install registry or desktop.h
1648
1649         * libspi/*.h: update includes.
1650
1651         * libspi/application.h: don't include ourself, or
1652         other redundant headers.
1653
1654 2001-12-06  Michael Meeks  <michael@ximian.com>
1655
1656         * libspi/accessible.c
1657         (get_accessible_from_servant): impl.
1658         Upd. all CORBA impl.s to use it killing cut and paste.
1659
1660         * cspi/spi_main.c (cspi_cleanup): guard vs. double
1661         invokes.
1662         (SPI_init): register atexit cleanup handler here.
1663
1664 2001-12-06  Michael Meeks  <michael@ximian.com>
1665
1666         * at-bridge/bridge.c (gtk_module_init): g_error on
1667         activation exception
1668
1669 2001-12-06  Michael Meeks  <michael@ximian.com>
1670
1671         * at-bridge/bridge.c (gtk_module_init): some sort of
1672         confusing merge clash - reverted.
1673         (bridge_idle_init): ditto.
1674
1675         * test/test-simple.c (main, utterable_normal_derefs):
1676         merge from Bill - somehow not committed.
1677
1678 2001-12-06  Michael Meeks  <michael@ximian.com>
1679
1680         * libspi/value.c (spi_value_class_init): upd.
1681         (spi_value_finalize): kill.
1682
1683         * libspi/table.c (spi_table_finalize): kill.
1684         (spi_table_interface_new): upd.
1685         (spi_table_class_init): upd.
1686         (get_table_from_servant): impl.
1687         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1688
1689         * libspi/selection.c (spi_selection_finalize): kill.
1690         (spi_selection_interface_new): upd.
1691         (spi_selection_class_init): upd.
1692         (get_selection_from_servant): impl.
1693         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1694
1695         * libspi/relation.c (spi_relation_finalize): kill.
1696         (spi_relation_class_init, spi_relation_new): upd
1697
1698         * libspi/image.c (spi_image_finalize): kill.
1699         (spi_image_class_init): upd.
1700         (spi_image_interface_new): upd.
1701         (get_image_from_servant): impl.
1702         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1703
1704         * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
1705         (spi_hyperlink_finalize): kill.
1706         (spi_hyperlink_new): upd.
1707         (get_hyperlink_from_servant): impl.
1708         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1709
1710         * libspi/hypertext.c (spi_hypertext_interface_new): upd.
1711         (spi_hypertext_finalize): kill.
1712         (spi_hypertext_class_init): upd.
1713         (get_hypertext_from_servant): impl.
1714         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1715
1716         * libspi/editabletext.c (spi_editable_text_finalize): kill.
1717         (spi_editable_text_interface_new): upd.
1718         (get_editable_text_from_servant): impl.
1719         Upd. all CORBA impl.s to use it killing yet more cut and paste.
1720         
1721         * libspi/text.c (get_text_from_servant): impl.
1722         All impls - update to use it killing more cut and paste,
1723         also fix bad string returns on duff args ( a somewhat
1724         impossible case to handle - but hey ).
1725         (spi_text_construct): impl.
1726         (spi_text_interface_new): upd.
1727         (spi_text_object_finalize): kill.
1728
1729         * libspi/component.c
1730         (accessibility_component_object_finalize): kill.
1731         (spi_component_class_init): upd.
1732         (get_component_from_servant): impl. helper to kill cut & paste.
1733         (impl_accessibility_component_contains): 
1734         (impl_accessibility_component_get_accessible_at_point): 
1735         (impl_accessibility_component_get_position): 
1736         (impl_accessibility_component_get_extents): 
1737         (impl_accessibility_component_get_mdi_z_order): 
1738         (impl_accessibility_component_get_layer): 
1739         (spi_component_interface_new): upd.
1740
1741         * libspi/action.c (spi_action_finalize): kill.
1742         (spi_action_class_init): upd. inherit from SpiObject.
1743         (spi_action_interface_new): upd.
1744         (get_action_from_servant): impl. helper to reduce cut & paste.
1745         (impl_getKeyBinding, impl_getName, impl_doAction),
1746         (impl_getDescription): Use it everywhere.
1747
1748         * cspi/spi_main.c (get_live_refs): a pointer hash.
1749         (spi_object_hash, spi_object_equal): comment out.
1750         There are issues with CORBA object hashing that need
1751         solving.
1752
1753         * libspi/application.c (spi_application_init),
1754         (spi_application_new): upd.
1755
1756         * libspi/accessible.c (spi_accessible_object_finalize): kill.
1757         (spi_accessible_class_init): upd.
1758         s/accessible/object/ in epv methods.
1759
1760 2001-12-05  Bill Haneman <bill.haneman@sun.com>
1761
1762         * at-bridge/bridge.c:
1763         Reorder the bridge initialization into the bridge gtk_module_init,
1764         an immediate call to bridge_register_app, and an idle_add for
1765         register_atk_event_listeners (the only code that *must* wait until
1766         GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
1767         the activation, creates the application's Accessible object, and
1768         queues the bridge_idle_init function.  Restored call to
1769         Accessibility_Registry_deregisterApplication().  
1770         Prior to making this call we obtain a new reference to the
1771         registry, which is a temporary hack that helps us handle apps that
1772         shut down the bonobo mainloop before we get there.
1773
1774         * libspi/registry.c:
1775         Fix string leakage in debug block, and don't segv if a an app
1776         dies before its event notifications have been propagated.
1777
1778         * cpi/spi_util.c:
1779         Modify cspi_check_ev() to call g_warning() rather than g_error(),
1780         as stopgap measure until we get proper exception handling when 
1781         objects die during or before interrogation.  
1782
1783         * cspi/spi_main.c:
1784         * cspi/spi.h:
1785         Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
1786         Also changed default value of is_gnome_app to TRUE.
1787
1788         * test/simple-at.c:
1789         * test/keysynth-demo.c:
1790         Changed use of SPI_init and SPI_event_main to reflect API change above.
1791
1792         * test/simple-at.c:
1793         Made report_focus_event check the warning value from getName
1794         before reporting on focussed accessible; simplifies handling of
1795         notifications from dead objects.
1796
1797         * test/test-simple.c: (Changes not in this patch since source is
1798         not in CVS ?)
1799         
1800 2001-12-05  Michael Meeks  <michael@ximian.com>
1801
1802         * registryd/registryd.c (main): protect against
1803         bonobo-activation startup race condition.
1804
1805         * cspi/spi_main.c (cspi_object_add_check): cope
1806         with the exception elegantly.
1807
1808         * idl/Accessible.idl: decl. ChildGone
1809
1810         * libspi/desktop.c (spi_desktop_dispose): impl.
1811         (spi_desktop_class_init): upd.
1812         (spi_desktop_add_application),
1813         (spi_desktop_remove_application),
1814         (abnormal_application_termination): impl.
1815         (impl_desktop_get_child_at_index): re-impl.
1816
1817         * libspi/registry.c
1818         (impl_accessibility_registry_deregister_application),
1819         (impl_accessibility_registry_register_application): 
1820         kill excessive debug clutter.
1821
1822         * test/test-simple.c (test_misc): test some NULL
1823         tolerance. (main): upd.
1824
1825         * cspi/spi_main.c (cspi_accessible_is_a): a NULL
1826         implements no interfaces - so let's not crash.
1827
1828         * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
1829
1830         * libspi/accessible.c (spi_accessible_new_return): impl.
1831         helper to calm the cut and paste, to cope with
1832         NULL AtkObjects effectively and efficiently, and to kill
1833         the referencing bugs.
1834
1835         * libspi/table.c (impl_getAccessibleAt),
1836         (impl_getRowHeader, impl_getColumnHeader): upd.
1837
1838         * libspi/hyperlink.c (impl_getObject): upd.
1839
1840         * libspi/accessible.c
1841         (impl_accessibility_accessible_get_child_at_index): upd.
1842
1843         * libspi/component.c
1844         (impl_accessibility_component_get_accessible_at_point): upd.
1845
1846         * test/test-simple.c (test_editable_text, test_text): impl.
1847         some simple tests.
1848
1849         * cspi/spi_editabletext.c
1850         (AccessibleEditableText_insertText): constify.
1851
1852         * test/test-simple.c (focus_me): make more robust.
1853
1854         * libspi/accessible.c: remove some printfs in methods that
1855         we test and work fine, so we can get a clean tree dump.
1856
1857         * test/test-simple.c (validate_accessible),
1858         (validate_tree): make tree dumping pretty too.
1859
1860         * at-bridge/bridge.c (bridge_signal_listener): upd. so
1861         it builds without debug on.
1862
1863         * test/test-simple.c (validate_accessible): fix the most
1864         ludicrous bug.
1865
1866         * cspi/spi_main.c (spi_object_release): leave the nicely
1867         blanked memory around if in debug mode.
1868
1869         * cspi/spi-listener-impl.c (cspi_event): use add_check.
1870
1871 [committed to fixups2]
1872 2001-12-05  Michael Meeks  <michael@ximian.com>
1873
1874         * libspi/editabletext.c
1875         (spi_editable_text_class_init): g_type_class_peek_parent,
1876         not interface peek - so we finalize cleanly.
1877
1878         * libspi/accessible.c (spi_accessible_new): kill debug.
1879
1880         * test/test-simple.c (validate_accessible): fix ref.
1881         leak, print strings before freeing them; sigh, comment a
1882         chunk out due to strangeness.
1883         (validate_tree): unref the child after use.
1884
1885         * cspi/spi_component.c (AccessibleComponent_getLayer):
1886         add missing break statement, switch on zlayer not the
1887         uninitialized retval.
1888
1889         * cspi/spi_main.c (cspi_object_add): add assert, local ref
1890         before (possibly re-entering) remote unref.
1891
1892         * test/simple-at.c (main): unref the desktop.
1893
1894         * cspi/spi_accessible.c (cspi_accessible_is_a): move 
1895         into:
1896         
1897         * cspi/spi_main.c (cspi_accessible_is_a): here to 
1898         isolate bonobo API usage more.
1899
1900         * libspi/registry.c (impl_accessibility_registry_register_application): 
1901         prune bogus comment.
1902
1903 2001-12-04  Michael Meeks  <michael@ximian.com>
1904
1905         * test/test-simple.c (validate_tree): upd.
1906         IndexInParent check to make it more lucid.
1907         (validate_accessible): dump the tree.
1908
1909         * libspi/accessible.c (de_register_public_ref),
1910         (get_public_refs): impl.
1911         (spi_accessible_new): make more efficient & intuitive.
1912         Now IndexInParent check works.
1913
1914 2001-12-04  Michael Meeks  <michael@ximian.com>
1915
1916         * cspi/spi-util.h: remove.
1917
1918         * cspi/spi.h: move SPI_freeString here
1919
1920         * libspi/component.c (impl_accessibility_component_get_layer): 
1921         warning fixage.
1922         (impl_accessibility_component_get_mdi_z_order): ditto,
1923         return -1 on error - is this ok ?
1924
1925         * test/test-simple.c (test_application): impl.
1926
1927         * cspi/spi_accessible.c (Accessible_getApplication),
1928         (Accessible_isApplication): impl.
1929
1930         * libspi/registry.c (spi_listener_struct_free): release
1931         the CORBA reference too.
1932
1933         * libspi/accessible.c
1934         (impl_accessibility_accessible_get_parent): fix ref leak.
1935
1936         * libspi/registry.c (spi_registry_new): make the registry
1937         immortal - we don't want it to go away ever.
1938
1939         * libspi/application.c
1940         (spi_accessible_application_finalize): impl. cleanup.
1941
1942         * cspi/spi_registry.c
1943         (deregisterGlobalEventListenerAll),
1944         (deregisterGlobalEventListener),
1945         (deregisterAccessibleKeystrokeListener): fix ref leak.
1946
1947         * cspi/spi_main.c (SPI_init): remove redundant ref.
1948
1949         * test/test-simple.c (unutterable_horror): impl. to force a
1950         clean shutdown.
1951         (main): use it.
1952
1953         * libspi/registry.c
1954         (impl_accessibility_registry_deregister_application): release
1955         the application when we de-register it.
1956
1957         * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
1958         until we have the infastructure to get it right.
1959
1960 2001-12-03  Michael Meeks  <michael@ximian.com>
1961
1962         * libspi/Makefile.am: only build eventlistener.[ch]
1963
1964         * libspi/accessible.c
1965         (impl_accessibility_accessible_get_child_at_index): don't leak.
1966
1967         * at-bridge/bridge.c (bridge_exit_func): cope with an exit
1968         before we hit the idle handler.
1969
1970         * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
1971         debugging than exit.
1972
1973         * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
1974
1975         * libspi/listener.c (impl_notify_event): check source
1976         not NIL before unref.
1977
1978         * libspi/registry.c (impl_registry_notify_event): ditto.
1979
1980         * libspi/eventlistener.c
1981         (impl_accessible_event_notify_event): unref the source.
1982
1983         * libspi/accessibleeventlistener.c
1984         (impl_accessible_event_notify_event): unref the source.
1985
1986         * idl/Event.idl: remove 'hash_id' attribute - of no
1987         concievable use.
1988
1989         * libspi/application.c (notify_listeners): upd list
1990         iteration & sig.
1991         (spi_application_object_event_listener), 
1992         (spi_application_toolkit_event_listener): upd to do correct
1993         CORBA ref counting.
1994
1995         * libspi/registry.c
1996         (_registry_notify_listeners): update.
1997         (parse_event_type): this method also leaks like a sieve.
1998         (impl_accessibility_registry_deregister_global_event_listener): 
1999         fix ETYPE_WINDOW case.
2000
2001         * libspi/application.c
2002         (impl_accessibility_application_register_object_event_listener): 
2003         kill leak.
2004
2005         * libspi/hyperlink.c (impl_getObject): fix ref mistake.
2006
2007         * libspi/hypertext.c (impl_getLink): ditto.
2008
2009         * cspi/spi_main.c (cspi_object_add): remove
2010         bogus CORBA_Object_duplicate.
2011
2012         * cspi/spi-listener-impl.c (cspi_event): dup/ref
2013         on the object_add.
2014
2015         * cspi/spi_accessible.c
2016         (Accessible_getRelationSet): fix leak / referencing issue.
2017
2018         * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
2019         (cspi_object_add, cspi_object_unref): upd.
2020         (spi_object_release, get_live_refs): impl.
2021         (cspi_cleanup): simplify.
2022
2023         * *.[ch]: s/boolean/SpiBoolean/
2024
2025         * cspi/spi_accessible.c (role_names): actualy order so it
2026         corresponds with the enum !
2027
2028         * test/test-simple.c (test_roles): check some role strings
2029         vs. enums to detect offset errors.
2030
2031 2001-12-01  Michael Meeks  <michael@ximian.com>
2032
2033         * cspi/spi_main.c (cspi_object_add_check): impl. helper.
2034
2035         * cspi/spi_accessible.c (Accessible_getChildAtIndex):
2036         check ev before 
2037         (Accessible_getChildAtIndex): use cspi_add_check so we
2038         check the ev before using a (possibly) invalid value.
2039
2040         * libspi/accessible.c
2041         (impl_accessibility_accessible_get_parent): don't segv
2042         on a NULL parent.
2043
2044         * at-bridge/bridge.c (gtk_module_init): upd.
2045         (bridge_property_event_listener): don't leak strings
2046         and events !
2047         (bridge_state_event_listener),
2048         (bridge_property_event_listener): don't use a static
2049         buffer in case of recursive event emission &
2050         re-enterancy - split out the swathe of cut and paste
2051         into:
2052         (emit_eventv): and fix 2 ref leaks here & comply to the
2053         coding style.
2054         (bridge_register_app): rename to 
2055         (bridge_idle_init): this and kill arg parsing, split
2056         various inits & bonobo-activation registration to module
2057         init time, kill referencing error.
2058         (bridge_exit_func): fix the same leak.
2059         (bridge_focus_tracker): don't leak event structures
2060         and strings.
2061         (bridge_signal_listener): more leakage and cut & paste
2062         fixage.
2063         (bridge_key_listener): return the result - FIXME is
2064         this polarity correct ?
2065         (accessibility_keystroke_from_atk_key_event): rename
2066         (accessibility_init_keystroke_from_atk_key_event): and stop
2067         leakage.
2068         (gtk_module_init): return a value - not that it is checked by
2069         Gtk - but hey.
2070         (bridge_key_listener): register my horror at casting between
2071         IDL defined structs.
2072         (bridge_get_registry): kill - not used.
2073
2074         * cspi/spi_accessible.c (Accessible_getRole): make return const.
2075
2076         * test/test-simple.c (test_roles): impl.
2077         (test_desktop, validate_accessible, validate_tree): impl.
2078
2079         * cspi/spi_accessible.c (role_names): fixup bogus
2080         MAX_ROLES setup, make constants const for efficient linkage
2081         (AccessibleRole_getName): conform to coding style, make
2082         return 'const'
2083
2084 2001-11-30  Michael Meeks  <michael@ximian.com>
2085
2086         * cspi/spi.h: add missing prototype.
2087
2088         * libspi/registry.c (spi_listener_struct_new): fix sig.
2089
2090         * test/Makefile.am: add test-simple
2091
2092         * test/test-simple.c: add
2093
2094         * test/test.sh: add.
2095
2096         * cspi/spi_main.c (SPI_init): make SPI_inited module global,
2097
2098         * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
2099         do it straight - since otherwise we often get an activation race.
2100
2101 [ work before Bill duplicated a chunk of it ... ]
2102 2001-11-30  Michael Meeks  <michael@ximian.com>
2103
2104         * libspi/keystrokelistener.c
2105         (spi_keystroke_listener_class_init): fixup arg
2106         count (doh).
2107
2108         * libspi/eventlistener.c
2109         (spi_event_listener_class_init): ditto.
2110
2111         * tests/test.sh: add.
2112
2113         * cspi/spi-listener-impl.h: update macros.
2114
2115         * cspi/spi-listener-impl.c
2116         (cspi_event_listener_remove_callback): add
2117         correct pre-conditions.
2118
2119         * cspi/spi_main.c (SPI_exit): guard vs. double
2120         exits, exit the mainloop nicely.
2121         (SPI_event_main): make more sense.
2122         (SPI_init): move the atexit evilness here so we
2123         always do it (yuck).
2124         (SPI_event_main): upd.
2125
2126         * test/simple-at.c: update for listener changes.
2127
2128         * registryd/registryd.c (main): prune kruft.
2129
2130         * libspi/libspi.h: upd.
2131
2132         * libspi/eventlistener.[ch]: rename broken macros.
2133
2134         * libspi/accessibleeventlistener.[ch]: remove.
2135
2136         * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
2137
2138         * test/test-simple.c: Add - automated tests.
2139
2140         * cspi/spi-listener-impl.c (cspi_event),
2141         (cspi_key_event): add user_data to invoke.
2142         (cspi_keystroke_listener_finalize): impl.
2143         (cspi_keystroke_listener_class_init): upd.
2144
2145         * cspi/spi_event.c
2146         (createAccessibleEventListener),
2147         (AccessibleEventListener_addCallback),
2148         (createAccessibleKeystrokeListener),
2149         (AccessibleKeystrokeListener_addCallback): upd.
2150
2151         * libspi/deviceeventcontroller.c
2152         (spi_device_event_controller_check_key_event): add public proto.
2153
2154         * libspi/registry.c
2155         (impl_accessibility_registry_deregister_global_event_listener): 
2156         always init listeners.
2157         (_registry_notify_listeners): yes it is.
2158
2159         * cspi/spi-listener-impl.c (cspi_key_event): 
2160         move debug to here.
2161         (cspi_event_listener_finalize): impl.
2162         (cspi_event_listener_class_init): hook up.
2163         (event_handler_new, event_handler_free),
2164         (event_list_remove_by_callback): impl.
2165         (cspi_event_listener_remove_callback),
2166         (cspi_keystroke_listener_remove_callback),
2167         (cspi_keystroke_listener_add_callback),
2168         (cspi_event_listener_add_callback): upd.
2169
2170         * libspi/keystrokelistener.c
2171         (keystroke_listener_object_finalize): kill
2172         (spi_keystroke_listener_class_init): upd.
2173         (spi_keystroke_listener_add_callback),
2174         (spi_keystroke_listener_remove_callback): kill,
2175         use signals.
2176         (impl_key_event): prune drasticaly.
2177
2178         * libspi/eventlistener.c
2179         (spi_event_listener_add_callback),
2180         (spi_event_listener_remove_callback): kill, use
2181         signals.
2182         (impl_accessible_event_notify_event): upd.
2183         (spi_event_listener_object_finalize): remove.
2184
2185         * libspi/Makefile.am: use eventlistener.[ch]
2186
2187 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
2188
2189         * libspi/registry.c (_registry_notify_listeners):
2190         Changed listener loop iteration to use preferred convention.
2191         Got rid of string memory leaks caused be calling g_strconcat
2192         inside function calls.
2193
2194         * libspi/registry.c (parse_event_type):
2195         Stopped g_strconcat memory leaks, free the g_strsplit return,
2196         g_strdup the split pieces when used, etc.
2197
2198 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
2199
2200         * idl/State.idl: 
2201         Change method 'compare' to return a 'difference set' rather than
2202         taking a StateSet as an out parameter (more Java-friendly).
2203
2204         * idl/Accessible.idl:
2205         Added CORBA struct 'BoundingBox', to faciliate API changes below:
2206         
2207         * idl/Component.idl:
2208         * idl/Image.idl:
2209         Changed methods 'getExtents' and 'getImageExtents' in these
2210         interfaces to return a BoundingBox structure.  
2211         (getPosition and getSize are redundant and possibly should be
2212         removed, rather than creating a corresponding Point struct.)
2213
2214         * cspi/spi_component.c:
2215         Modify implementation of getExtents to reflect the above IDL
2216         change.
2217         
2218         * cspi/spi_image.c:
2219         * cspi/spi.h:
2220         Add (missing) AccessibleImage_getExtents () API.
2221
2222         * docs/reference/cspi/at-spi-cspi-sections.txt:
2223         Added AccessibleImage_getImageExtents () to docs.
2224         
2225 2001-12-03  Bill Haneman  <bill.haneman@sun.com>
2226
2227         * idl/Component.idl:
2228         Added two methods, getLayer () and getMDIZOrder (), to reflect
2229         the new ATK methods atk_object_get_layer and
2230         atk_object_get_mdi_z_order. (Which arguably should be part of the
2231         AtkComponent API and AtkObject).  Also added an enum,
2232         ComponentLayer, for the first method's return value.
2233
2234         * libspi/component.c:
2235         Added implementations for these methods.
2236
2237         * cspi/spi_component.c:
2238         * cspi/spi.h:
2239         Added cspi binding methods for above, 
2240         AccessibleComponent_getLayer() and
2241         AccessibleComponent_getMDIZOrder().
2242         Added cspi enum 'AccessibleComponentLayer'.
2243
2244         * docs/reference/cspi/at-spi-cspi-sections.txt:
2245         Added above methods to docs.
2246
2247         * cspi/spi-impl.h:
2248         * cspi/spi*.[ch]:
2249         Changed typedef for 'boolean' type (and all references to it) to
2250         SPIBoolean, to avoid keyword clashes with C++.
2251
2252         * test/simple-at.c:
2253         Changed usages of 'boolean' to SPIBoolean.
2254
2255         * test/keysynth-demo.c:
2256         Changed usages of 'boolean' to 'gboolean' (since this is a gnome
2257         app), except where SPIBoolean is required by the callbacks API.
2258         
2259 2001-12-02  Bill Haneman  <bill.haneman@sun.com>
2260
2261         * cspi/spi_registry.c:
2262         Removed obsolete X event loop for passive keygrabs (which now
2263         lives in libspi).
2264
2265         * registryd/registryd.c:
2266         Removed unnecessary call to gdk_init() [cruft]. This also allows
2267         removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
2268         * configure.in.
2269
2270 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
2271
2272         * docs/reference/cspi:
2273         Included docs for SPI_freeString in generated documentation.
2274
2275         * cspi/spi-util.c:c
2276         Renamed spi_freeString to SPI_freeString, for consistency.  Added
2277         documentation for this function.
2278
2279         * cspi/spi-util.h:
2280         Renamed spi_freeString to SPI_freeString, for consistency.  
2281         Removed obsolete method declaration string_from_corba_string.
2282
2283         * test/keysynth-demo.c:
2284         Small tweak to comments.
2285
2286         * test/simple-at.c:
2287         Stopped leaking the strings returned from CSPI. 
2288
2289 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
2290
2291         Merged Michael's branch (see his ChangeLog entries below).
2292         
2293         * at-bridge/bridge.c: Explicitly hold a ref to the registry while
2294         bridge is alive, release on exit.
2295         
2296         * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
2297         Fix type check macro.
2298         
2299         * cspi/spi_event.c:
2300         Added AccessibleKeystrokeListener_unref() method to reduce leakage.
2301         
2302         * cspi/spi_main.c: 
2303         Added is_gnome_app static, and method cspi_is_gnome_app(), 
2304         so we can call the appropriate shutdown routine at exit in SPI_exit.
2305         
2306         * cspi/spi_main.c (cspi_object_ref):
2307         Duplicate the corba object passed in, since we're keeping it around.
2308         
2309         * cspi/SPI_exit.c, cspi_cleanup:
2310         Moved the releasing of the live refs to its own function, so we
2311         can put it in g_atexit ().  Call the appropriate shutdown API
2312         depending on whethe calling client is a gnome app or not
2313         (bonobo_main_quit or CORBA_ORB_shutdown).
2314         
2315         * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
2316         Unref the listener when this method is called, after
2317         deregistration.  Updated the API docs to note this behavior.
2318
2319         * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
2320         Bugfixes: Ref the bonobo object when returning a parent or child 
2321         reference, or an AccessibleRelation.  Generally made sure
2322         BonoboObject refcount is incremented whenever we return an
2323         Accessible.
2324
2325         * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
2326         Fixed typo/bug in signal declaration.
2327         
2328         * libspi/accessibleeventlistener.h:
2329         Fixed a type macro.
2330
2331         * libspi/application.c (spi_application_new):
2332         Fixed leak in initialization.
2333
2334         * libspi/desktop.c:
2335         Remembered to increment bonobo-object refcount when returning
2336         children (applications) from desktop object.
2337         Added (empty) finalize method.
2338
2339         * libspi/deviceeventcontroller.c:
2340         Hold a ref to listeners inside DEControllerKeyListeners.
2341         Added dec_key_listener_free() method.  Use prepend instead of
2342         append in key_listener list.  Fixed some refcount madness and
2343         leaks in the listener registration/deregistration - deregistration
2344         now calls dec_key_listener_free() on listeners, and on the
2345         temporarily constructed dec_key_listener() used to perform the search/match.
2346
2347         * libspi/hypertext.c (spi_hypertest_finalize):
2348         Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
2349         class.  Also fixed spi_hypertext_interface_new() and
2350         SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
2351
2352         * libspi/hypertext.h: 
2353         Removed pointless and duplicate AtkObject pointer from
2354         SpiHypertextClass.
2355
2356         * libspi/keystrokelistener.c:
2357         Fixed incorrect type of keystroke_listener_parent_class,
2358         renamed keystroke_listener_object_finalize to
2359         spi_keystroke_listener_object_finalize.
2360         Fixed typo in signal declaration
2361         (spi_keystroke_listener_class_init).
2362
2363         * libspi/registry.c:
2364         Added funcsions spi_listener_struct_new() and
2365         spi_listener_struct_free() to help with memory management issues.
2366         We also now use these methods instead of gnew + poking stuff into
2367         the struct, and to decrement listener counts/free the listeners
2368         when deregistering them.
2369         Fix more refcount bugs in getDesktop() and
2370         getDeviceEventController().  
2371
2372         * test/simple-at.c:
2373         De-ref the desktop after enumerating the applications.  Explicitly
2374         decrement the refcounts on the created listeners on exit (using
2375         _unref for keystroke listeners, and via the
2376         deregisterGlobalEventListenerAll command for other event
2377         listeners).
2378         
2379 2001-11-27  Michael Meeks  <michael@ximian.com>
2380
2381         * cspi/spi-listener.h: fixup enum.
2382
2383 2001-11-27  Michael Meeks  <michael@ximian.com>
2384
2385         * cspi/spi-listener-impl.c (cspi_event_listener_new),
2386         (cspi_keystroke_listener_new): Use the cspi variants.
2387
2388 2001-11-26  Michael Meeks  <michael@ximian.com>
2389
2390         * test/keysynth-demo.c: fix 2 compile warnings, missing
2391         type in decl. etc.
2392
2393         * test/simple-at.c (report_focussed_accessible),
2394         (report_focus_event, report_button_press),
2395         (check_property_change, is_command_key),
2396         (report_ordinary_key_event, report_command_key_event): upd.
2397
2398         * util/mag_client.h: include pre-requisites.
2399
2400         * libspi/accessibleeventlistener.c
2401         (spi_event_listener_object_finalize): free any lingering
2402         callbacks.
2403         
2404         * libspi/keystrokelistener.c
2405         (keystroke_listener_object_finalize): ditto.
2406
2407         * cspi/spi-listener-impl.[ch]: Add to implement cspi style
2408         callbacks, with cspi types.
2409         
2410         * cspi/spi_event.c (createAccessibleEventListener): chain to
2411         (AccessibleEventListener_addCallback): here.
2412         (createAccessibleKeystrokeListener): chain to 
2413         (AccessibleKeystrokeListener_addCallback): here.
2414
2415         * libspi/keystrokelistener.c
2416         (spi_keystroke_listener_class_init): add signal.
2417         (impl_key_event): emit the event.
2418         (boolean_handled_accumulator): impl.
2419         (marshal_BOOLEAN__POINTER): add, gack.
2420
2421         * libspi/accessibleeventlistener.c
2422         (spi_event_listener_class_init): add signal.
2423         (impl_accessible_event_notify_event): emit the signal &
2424         make the loop efficient.
2425         (spi_event_listener_add_callback): prepend the callback.
2426
2427         * libspi/accessibleeventlistener.h: add an 'event' signal,
2428         decl type on callback.
2429
2430         * libspi/keystrokelistener.h: ditto.
2431
2432         * cspi/spi-listener.h: make methods typesafe and
2433         make them use the new event typedefs.
2434
2435         * test/simple-at.c (report_focussed_accessible):
2436         include mag_client.h
2437         Use *(void *)text_interface not the other thing.
2438         
2439         * configure.in: add gtk to registryd bits - since we use
2440         gdk there ( why ? )
2441
2442         * util/magnifier.c: include libbonobo.h
2443         
2444 2001-11-25  Bill Haneman  <bill.haneman@sun.com>
2445
2446         * test/keysynth-demo.c:
2447         Turned this into a simple scanning keyboard, to demonstrate the
2448         use of g_timeout_add () as a means of creating timers for
2449         scanning, and the use of GtkStyle for visually indicating when
2450         virtual keyboard elements are selected.
2451
2452         keysynth-demo now listens to any keyboard keys with zero-valued
2453         keycodes (i.e. 'unused' keys) and interprets them as
2454         single-switches.
2455
2456         Reworked the shiftlatch code so that shift-down state isn't held
2457         for long periods (it's only synthesized immediately prior to
2458         the keysynth event it's modifying).  Note that shiftlatch in this
2459         demo is a convenience, not intended to take the place of AccessX 
2460         which is the better choice for getting 'sticky' modifier keys.
2461
2462         * libspi/deviceeventcontroller.c:
2463         * at-bridge/bridge.c:
2464         * cspi/spi_registry.c:
2465         Removed some debug print stuff, and put other verbosity in #ifdef
2466         blocks.
2467
2468         * util/magnifier.c:
2469         * util/mag_image.h:
2470         Implemented some more of the magnifier IDL for the simple
2471         magnifier: namely, getZoomRegionParams. 
2472         Added mag_x and mag_y members to MagnifierData struct, aid of this
2473         implementation.
2474         Added GtkWindow::realize signal handler to magnifier, to keep it
2475         from receiving keyboard focus from the WM.
2476
2477 2001-11-23  Mark McLoughlin  <mark@skynet.ie>
2478
2479         * cspi/spi-private.h: my guess at what michael forgot
2480         before he ran off to NZ :-)
2481
2482 2001-11-23  Michael Meeks  <michael@ximian.com>
2483
2484         * cspi/spi_event.c (AccessibleEventListener_removeCallback):
2485         comment out non existant method invoke so we link.
2486
2487         * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
2488         use bonobo_exception_get_text for more friendly warnings.
2489
2490         * cspi/spi.c (Obj_Add): move into spi_main & rename
2491         spi_object_add; kill spi.c
2492
2493         * cspi/spi_registry.c
2494         (deregisterGlobalEventListener),
2495         (deregisterGlobalEventListenerAll),
2496         (registerGlobalEventListener): fix exception leaks.
2497
2498         * cspi/spi_main.c (spi_exception): impl. helper, so we
2499         don't leak exceptions.
2500
2501         * cspi/spi_selection.c
2502         (AccessibleSelection_deselectSelectedChild): return the
2503         success state.
2504
2505         * cspi/spi_main.c (spi_ev): impl; hack - gack.
2506         (spi_registry): ditto.
2507         (SPI_init): guard against double inits.
2508
2509         * cspi/*.c: use spi_ev (), and spi_registry () where
2510         appropriate - a temporary hack until we have something
2511         better. Use spi_object_add
2512
2513 2001-11-22  Michael Meeks  <michael@ximian.com>
2514
2515         * cspi/Makefile.am: re organise, install the headers.
2516
2517         * cspi/*.h: add G_BEGIN/END_DECLS
2518
2519 2001-22-11  Bill Haneman  <bill.haneman@sun.com>
2520
2521         * test/simple-at.c:
2522         Added non-preemptive keylistener for key events with no modifiers
2523         and shift-only modifier.
2524
2525         * libspi/keystrokelistener.c:
2526         Removed some verbose diagnostics printout.
2527
2528         * cspi/spi_registry.c:
2529         Fixed a bug that caused all key listeners to be registered as
2530         pre-emptive.
2531         
2532         * libspi/deviceeventcontroller.c:
2533         Fixed bug that caused XGrabKey (preemptive key grab) to be called
2534         for non-preemptive key masks.
2535
2536
2537 2001-22-11  Bill Haneman  <bill.haneman@sun.com>
2538
2539         * docs/reference/idl/at-spi-idl-docs.sgml:
2540         * docs/reference/idl/at-spi-idl-sections.txt:
2541         * docs/reference/idl/at-spi-idl-overrides.txt:
2542         Added missing files.
2543
2544         * docs/reference/Makefile.am:
2545         removed idl from SUBDIRS until we can figure a way to get gtk-doc
2546         to scan the IDL files :-(
2547
2548         * docs/reference:
2549         * docs/cspi:
2550         * docs/idl:
2551         Added .cvsignore files.
2552         
2553 2001-21-11  Bill Haneman  <bill.haneman@sun.com>
2554
2555         * libspi/deviceeventcontroller.c:
2556         * libspi/keystrokelistener.c:
2557         * cspi/spi_event.c:
2558         * cspi/spi_registry.c:
2559         Added filters for KeySets, KeyEventSeq, and event types to key
2560         event dispatching, so listeners should only receive those events
2561         that they requested :-)
2562
2563 2001-21-11  Bill Haneman  <bill.haneman@sun.com>
2564
2565         * configure.in:
2566         * docs/Makefile.am:
2567         * docs/reference:
2568         * docs/reference:Makefile.am:
2569         * docs/reference/cspi:
2570         * docs/reference/cspi:Makefile.am:
2571         * docs/reference/cspi:tmpl:
2572         * docs/reference/cspi:tmpl:*.sgml:
2573         * docs/reference/idl:
2574         * docs/reference/idl:Makefile.am:
2575         * docs/reference/idl:at-spi-idl-sections.txt:
2576         * docs/reference/idl:at-spi-idl-docs.sgml:
2577         * docs/reference/idl:tmpl:
2578         * docs/reference/idl:tmpl:*.sgml:
2579
2580         Restructured docs directory to allow separate 'reference' docs
2581         section, and forked idl and cspi docs.  Added the sgml template
2582         files to CVS.  Added the first sections/structural sgml for the
2583         IDL docs.
2584
2585 2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
2586
2587         * configure.in, libspi/Makefile.am: find libXtst.
2588
2589 2001-11-21  Michael Meeks  <michael@ximian.com>
2590
2591         * test/accessx-gui.c: s/spi_value/value/ - doh.
2592
2593         * libspi/base.[ch]: add.
2594
2595 2001-18-11  Bill Haneman <bill.haneman@sun.com>
2596
2597         * idl/Accessible.idl:
2598         * idl/Application.idl:
2599         * idl/Registry.idl:
2600         * idl/Action.idl:
2601         Started gtk-doc cleanup on IDL.
2602
2603         * libspi/deviceeventcontroller.c:
2604         Added and connected non-preemptive key notification from the
2605         toolkits (in addition to the pre-emptive support from XServer
2606         which we had before, but which causes 'focus flashing').  Filters
2607         are presently limited to key modifiers and global/non-global,
2608         KeySets are presently ignored, as are KeyEvent masks.
2609
2610         Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
2611         structs into the persistant structure rather than just storing
2612         pointers to things that might not persist across servant
2613         invocations.
2614
2615         The XGrabKey call now does async keygrabs, because synchronous
2616         ones were deadlocking with GDK_event code in a very nasty way.
2617
2618         Added boolean to internal method notify_keylisteners, to indicate
2619         whether the event came from the 'toolkit source' or the 'global
2620         (XServer) source' - this is used in the notification process to
2621         determine which listeners to send the event to.
2622
2623         deviceeventcontroller.c is now warning-free.
2624         
2625         * libspi/registry.c:
2626         Fixed regression in application de-registration.
2627         Also fixed some really brain-dead weirdness having to do with
2628         event dispatching - event structs are now duplicated before being
2629         re-marshalled in the dispatch to listeners.  This also fixes a
2630         Solaris build problem.
2631         
2632         
2633 2001-20-11  Michael Meeks  <michael@ximian.com>
2634
2635         * libspi/registry.c
2636         (impl_accessibility_registry_deregister_global_event_listener): 
2637         segv. protection.
2638
2639         * libspi/deviceeventcontroller.c
2640         (spi_device_event_controller_check_key_event): return
2641         FALSE on no virtual method.
2642
2643         * libspi/*..h: make includes work on a correctly pathed install.
2644
2645         * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
2646
2647         * libspi/application.h: kill unused ( and whacked out )
2648         gboolean *spi_application_set_id (AtkObject *app, long id);
2649
2650 2001-20-11  Michael Meeks  <michael@ximian.com>
2651
2652         * libspi/*.[ch]: further convert to bonobo's type func
2653         macros, remove redundnant casts etc.
2654
2655         * libspi/text.c s/accessibility_text/spi_text/g,
2656         re-order to de-cruft.
2657
2658         * libspi/hypertext.c: re-order to kill a huge slew
2659         of redundant forward decls.
2660
2661         * libspi/relation.c: ditto.
2662
2663         * libspi/image.c: ditto.
2664
2665         * */.cvsignore: update
2666         
2667 2001-20-11  Michael Meeks  <michael@ximian.com>
2668
2669         * libspi/deviceeventcontroller.c
2670         (_controller_register_with_devices): use g_getenv,
2671         kill stdlib.h include.
2672
2673         * libspi/keystrokelistener.c
2674         (spi_keystroke_listener_get_type): kill
2675         (spi_keystroke_listener_class_init),
2676         (spi_keystroke_listener_init): rename to this.
2677
2678         * libspi/text.c (impl_getAttributes): fix warning / bug.
2679
2680         * libspi/*.[ch]: more headers, includes and over commenting.
2681         
2682 2001-20-11  Michael Meeks  <michael@ximian.com>
2683
2684         * libspi/*.[ch]: fixup headers, includes and over commenting.
2685
2686         * libspi/image.c (impl__get_imageDescription): const
2687         correctness warning fix. remove redundant casting.
2688
2689         * libspi/table.c (impl_getRowDescription): ditto.
2690         (impl_getColumnDescription): ditto.
2691
2692         * libspi/libspi.h: add.
2693
2694 2001-19-11  Michael Meeks  <michael@ximian.com>
2695
2696         * libspi/editabletext.c (impl_setAttributes): fix warnings.
2697
2698         * libspi/component.c (accessibility_component_get_type): 
2699         rename to (spi_component_get_type): and macroify.
2700         (accessibility_component_init): rename to
2701         (spi_component_init): this
2702         (accessibility_component_class_init): rename to
2703         (spi_component_class_init): this
2704
2705         * libspi/action.c (spi_action_get_type): kill, use the macro.
2706
2707         * libspi/deviceeventcontroller.c (_compare_listeners): re-order
2708         to avoid prototype.
2709
2710         * libspi/application.c (spi_application_object_event_listener),
2711         (impl_accessibility_application_register_object_event_listener):
2712         warning fixes / const understanding updates.
2713
2714         * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
2715         warning fixes.
2716
2717 2001-18-11  Bill Haneman <bill.haneman@sun.com>
2718
2719         * libspi/spi_accessible.c: Added docs and C bindings for
2720         AccessibleStateSet. (No implementations yet).  Documentation
2721         coverage for C bindings now 100%. Made docs for event listeners
2722         more explicit.
2723         
2724         * idl/Registry.idl:
2725         Added methods 
2726             boolean notifyListenersSync (in DeviceEventListener listener,
2727                                      in DeviceEvent event);
2728
2729             oneway void notifyListenersAsync (in DeviceEventListener listener,
2730                                           in DeviceEvent event);
2731
2732         Added DeviceEventListener and DeviceEvent structs (may deprecate
2733         KeyStroke and KeystrokeListener in favor of this generic
2734         event/listener framework for devices).
2735
2736         * libspi/deviceeventcontroller.c:
2737
2738         Changed some key listener code to take masks, etc., and paved the
2739         way for integration of toolkit/non-preemptive key events. Changed
2740         signatures of some internal methods.
2741
2742         * at-bridge/bridge.c:
2743         Fixed regression connecting to interface signals, apparently
2744         caused by GTK+ changes.
2745
2746         Added an internal bridge_state_listener to deal with
2747         property-change:accessible-state signals.
2748
2749         Changed the key_listeners GList to store structs (including masks,
2750         etc.) instead of just CORBA_Objects (required for full
2751         implementation of key listener API).
2752
2753         Connected the bridge to all currently supported Atk signals.
2754         Events now supported: 
2755             object:property-change
2756             object:property-change:accessible-name
2757             object:property-change:accessible-state
2758             object:property-change:accessible-description
2759             object:property-change:accessible-parent
2760             object:property-change:accessible-value
2761             object:property-change:accessible-role
2762             object:property-change:accessible-table-caption
2763             object:property-change:accessible-table-column-description
2764             object:property-change:accessible-table-column-header
2765             object:property-change:accessible-table-row-description
2766             object:property-change:accessible-table-row-header
2767             object:property-change:accessible-table-summary
2768             object:children-changed
2769             object:visible-data-changed
2770             object:selection-changed
2771             object:text-selection-changed
2772             object:text-changed
2773             object:text-caret-moved
2774             object:row-inserted
2775             object:row-reordered
2776             object:row-deleted
2777             object:column-inserted
2778             object:column-reordered
2779             object:column-deleted
2780             object:model-changed        
2781
2782 2001-16-11  Bill Haneman <bill.haneman@sun.com>
2783
2784         * libspi/hyperlink.c,h:
2785         Fixed some broken stuff in hyperlink.
2786         
2787         * libspi/relation.h:
2788         * libspi/relation.c:
2789         * cspi/spi_accessible.c:
2790         Initial implementations of AccessibleRelation methods, and docs.
2791
2792         * libspi/accessible.c:
2793         Fixed a bug that caused SEGV  if an accessible
2794         object's description is NULL, and a client
2795         requests it.  An empty string is now returned.
2796
2797         * cspi/spi_editabletext.c:
2798         * cspi/spi_hypertext.c:
2799         * cspi/spi_image.c:
2800         * cspi/spi_hyperlink.c:
2801         * cspi/spi_table.c:
2802         Added docs.  
2803
2804         Doc coverage now 95%.
2805
2806 2001-16-11  Bill Haneman <bill.haneman@sun.com>
2807
2808         One last namespacing revision:
2809         * libspi/accessibleeventlistener.[ch]:
2810         Renamed SpiAccessibleEventListener to SpiEventListener,
2811         (no need for two namespaces ;-)
2812
2813         And lots of documentation fixes:
2814
2815         * docs/at-spi-docs.sgml:
2816         Fixed 'underscore vs. hyphen' bug that was preventing
2817         the gtk-doc API docs from being automatically generated.
2818
2819         * cspi/spi-impl.h
2820         * cspi/spi-listener.h
2821         * cspi/spi.h
2822         * cspi/spi_accessible.c
2823         * cspi/spi_action.c
2824         * cspi/spi_application.c
2825         * cspi/spi_component.c
2826         * cspi/spi_editabletext.c
2827         * cspi/spi_event.c
2828         * cspi/spi_hypertext.c
2829         * cspi/spi_main.c
2830         * cspi/spi_registry.c
2831         * cspi/spi_selection.c
2832         * cspi/spi_text.c
2833         * cspi/spi_value.c
2834         * docs/Makefile.am
2835         * docs/at-spi-docs.sgml
2836         * docs/at-spi-sections.txt
2837         
2838         Added and fixed up gtk-doc documentation in cspi.
2839         
2840         Interfaces now (fully) documented (subject to revision and enhancement):
2841         SPI_main
2842         Event Listener Support
2843         Registry API
2844         AccessibleApplication
2845         Accessible
2846         AccessibleAction
2847         AccessibleComponent
2848         AccessibleEditableText
2849         AccessibleSelection
2850         AccessibleText
2851         AccessibleValue
2852
2853         still pending:
2854         AccessibleStateSet
2855         AccessibleRelationSet
2856         AccessibleImage
2857         AccessibleTable
2858         AccessibleHyperlink
2859         
2860 2001-14-11  Bill Haneman <bill.haneman@sun.com>
2861
2862         * at-bridge/bridge.c:
2863         Initial work for toolkit-level key snooper connection by bridge.
2864
2865         * cspi/spi-impl.h:
2866         * cspi/spi_*.h:
2867         * cspi/spi_*.c:
2868         New typedefs and fixes to support new namespacing, and cleaner
2869         separation of cspi bindings from libspi bonobo implementation.  
2870         Removed inconsistent and extraneous Spi* namespace prefix that
2871         had crept into cspi headers.
2872         Lots of comment fixes that sed had missed.
2873
2874         * cspi/spi-roletypes.h:
2875         * cspi/spi-statetypes.h:
2876         Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
2877         to AccessibleRoleType.
2878         
2879         * libspi/accessibleeventlistener.h:
2880         Fixed minor namespacing weirdness.
2881
2882         * libspi/deviceeventcontroller.c:
2883         Reordered some internal API for device listeners.
2884         Changed the key registry final boolean to 'is_system_global'
2885         rather than 'is_synchronous', which is more descriptive of its 
2886         actual meaning.
2887         Added spi_device_event_controller_new().
2888         Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
2889          
2890         * libspi/keystrokelistener.[ch]:
2891         Namespaced KeystrokeListener to SpiKeystrokeListener.
2892         Changed uses of keymasks to use SPI_ prefix, and did other
2893         knock-on fixups.
2894
2895         * libspi/keymasks.h:
2896         Namespaced keymask constants with SPI_ prefix.
2897
2898         * libspi/registry.c:
2899         Some warning fixes, and knock-on fixes from namespace changes.
2900
2901         * test/Makefile.am:
2902         Added rules for accessx-gui test program.
2903
2904         * test/accessx-gui.c:
2905         Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
2906         utility.  It doesn't actually use at-spi, but it's still cool and
2907         useful ;-)
2908
2909         * test/keysynth-demo.c:
2910         * test/simple-at.c:
2911         * test/at.c:
2912         * test/app.c:
2913         Fixes so that these test clients work properly with the namespaced
2914         libraries. (Incompletely tested for technical reasons, fixes may follow)
2915         
2916
2917 2001-13-11  Michael Meeks  <michael@ximian.com>
2918
2919         * libspi/application.c
2920         (impl_accessibility_application_get_version),
2921         (impl_accessibility_application_get_toolkit_name):
2922         warning fixes.
2923         (impl_accessibility_application_set_id),
2924         (impl_accessibility_application_get_id): remove
2925         redundant casting code.
2926
2927         * libspi/action.c (impl_getDescription): fix warnings.
2928
2929         * libspi/accessible.c
2930         (impl_accessibility_accessible_get_parent),
2931         (impl_accessibility_accessible_get_child_at_index),
2932         (impl_accessibility_accessible_get_state),
2933         (impl_accessibility_accessible_get_relation_set):
2934         warning fixes & include action.h
2935
2936 2001-13-11  Michael Meeks  <michael@ximian.com>
2937
2938         * *.[ch] fix bits I screwed up:
2939
2940                 s/([^ \tb(\*\&\?\",])spi_/\1/g;
2941                 s/([^ \tb(\*\&\?\",])Spi/\1/g;
2942         
2943 2001-13-11  Michael Meeks  <michael@ximian.com>
2944
2945         * *.[ch] Namespace libspi into spi_ and Spi.
2946
2947 2001-13-11  Michael Meeks  <michael@ximian.com>
2948
2949         * Makefile.am: dist & install at-spi-1.0.pc
2950
2951         * libspi/Makefile.am: install into at-spi-1.0
2952
2953         * idl/Makefile.am (idldir): install into at-spi-1.0
2954
2955         * at-spi-1.0.pc.in: add.
2956
2957         * configure.in: build it.
2958
2959 2001-12-11  Bill Haneman <bill.haneman@sun.com>
2960
2961         * test/keysynth-demo.c:
2962         Use a 'realize' signal-handler to set the WM properties for
2963         the virtual keyboard, rather than making it a "POPUP" type
2964         override-redirect window (thanks to anders carlsson for that
2965         tip!)
2966
2967 2001-11-11  Bill Haneman <bill.haneman@sun.com>
2968
2969         * test/Makefile.am:
2970         * test/keysynth-demo.c:
2971         Added new test of key synthesis, which creates a simple
2972         (mouse-operated) onscreen keyboard.  It inserts key events into
2973         the currently-focused window, thus it does not grab keyboard focus
2974         itself.
2975
2976         * cspi/spi_registry.c:
2977         Added C binding for AT-SPI generateKeyEvent.
2978
2979         * libspi/deviceeventcontroller.c:
2980         Added call to XFilterEvent so that key listener works with XIM (we
2981         hope).  Added event_synth_type to generateKeyEvent, so that we can
2982         produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
2983         synthesize a press/release pair for KeySyms.    
2984         
2985 2001-11-09  Bill Haneman <bill.haneman@sun.com>
2986
2987         * libspi/Makefile.am: 
2988         * registryd/Makefile.am:
2989         (temporary) hack to include libXtst in libspi and registryd.
2990         (Needed for keystroke synthesis, see below).
2991
2992         * idl/Registry.idl:
2993         Improved API for registerKeystrokeListener, in accordance with
2994         discussions with Gnopernicus team and X server research.
2995
2996         * libspi/registry.c:
2997         * libspi/deviceeventcontroller.c:
2998         * libspi/accessible.c:
2999         * libspi/keystrokelistener.c:
3000         Changes and fixes to support keylisteners for potentially
3001         consumed key events (that is, 'passive grabs').
3002         Added implementation for generateKeyEvent() [untested].
3003
3004         * cspi/spi.h:
3005         Changes to registerKeystrokeListener() API, as above.
3006         Added deregisterGlobalEventListenerAll(), and 
3007         deregisterKeystrokeListener(), which are needed for clean exit of
3008         clients.
3009         Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
3010         and a macro ALL_KEYS which may be used in place of a KeySet pointer.
3011         
3012         * cspi/spi_registry.c:
3013         Added implementations of function prototypes mentioned above.
3014         
3015         * registryd/registryd.c:
3016         Added the key listener event source as a g_timeout(), to allow
3017         receipt of key events that are not caught by GDK (since GDK
3018         doesn't support passive keygrabs, this was necessary).
3019
3020         * test/simple-at.c:
3021         Changed to attach a keylistener to 'Alt' keys, and
3022         respond to the following keycommands: Alt-M (toggle magnifier);
3023         Alt-F (toggle speech); Alt-Q (quit).
3024         Added an exit routine to deregister the listeners, and a key
3025         listener that prints some key info to the console when a key
3026         matches the listener mask (and is thus received by the listener).
3027         
3028         * util/idl/Magnifier.idl:
3029         Changes to magnifier API to support multiple zoom regions,
3030         non-uniform scaling in x and y, markDirty, and a host of other
3031         features that would be useful to magnification.
3032
3033         * util/mag_image.h:
3034         * util/mag_client.c:
3035         * util/mag_client.h:
3036         * util/mag_control.c:
3037         * util/magnifier.c:
3038         Source code changes to support the above IDL changes.
3039         
3040         * util/mag_image.c:
3041         As above, and also changes to use a (slower) generic conversion
3042         path for colormap conversions, since the fast RGB conversions have been
3043         reported to fail for 16-bit displays.
3044
3045 2001-10-26  Michael Meeks  <michael@ximian.com>
3046
3047         * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
3048
3049 <2001-10-26  Laszlo Peter <laca@ireland.sun.com>
3050
3051         * at-bridge/Makefile.am: fix LDFLAGS.
3052
3053 <2001-10-09  Bill Haneman <bill.haneman@sun.com>
3054
3055         * at-bridge/bridge.c:
3056         Re-worked listeners for toolkit events, now we have signal
3057         and property listeners. Added a private method
3058         register_atk_event_listeners(), which registers with the
3059         various atk and gtk signals we need to monitor in order to emit
3060         our at-spi events.
3061         Added emission hook for AtkObject:property-change events, to
3062         support the 'property listeners'.
3063         Fixed some alloc()s of Accessibility_Event structs to use CORBA
3064         allocation.
3065
3066         * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
3067         which emit warnings and exit, respectively, if CORBA errors occur
3068         during remote calls, and we now use these methods to check most of
3069         our CORBA calls in the C bindings.
3070
3071         * cspi/spi_accessible.c:
3072         Changed AccessibleSelection_refSelectedChild() to
3073         AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
3074         now increment refcounts.
3075
3076         * cspi/spi_component.c:
3077         Fixed some long pointer casts (dangerous!) to pass pointers to
3078         CORBA_longs of the proper type to the CORBA stubs, and copy the
3079         data into the longs that were passed into the C bindings code.
3080         
3081         * at-bridge/bridge.c:
3082         
3083         * libspi/accessible.c:
3084         Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
3085         hyperlinks, AtkHyperlink is an object type.     
3086
3087         * libspi/application.c:
3088         Added various conversions to and from "generic" event types and
3089         atk-specific types; this is really part of the 'bridge'
3090         implementation but is valid for all AtkObject-based accessibility 
3091         implementations.
3092
3093         * libspi/editabletext.c:
3094         Fixed nasty bug wherein editable text's finalize method was
3095         unref'ing tha AtkObject reference that the text parent class was
3096         about to unref _again_.  There was also a nasty inheritance bug
3097         that meant that the AccessibleEditableText class was corrupt.
3098
3099         * libspi/selection.c:
3100         Provided implementations for some selection API that was broken.
3101         
3102         * idl/Application.idl:
3103         Added registerObjectEventListener () method.
3104
3105         * THROUGHOUT:
3106         Fixed a number of return values that were Bonobo_Unknowns from
3107         bonobo_object_corba_objref(), which I
3108         forgot to dup before returning.  Changed instances of 
3109         bonobo_object_corba_objref (bonobo_object(o)) to
3110         BONOBO_OBJREF(o), for concision and clarity.
3111         
3112 <2001-10-13  Louise Miller <louise.miller@sun.com>
3113
3114         * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
3115         idl/Event.idl, idl/Registry.idl
3116         Changed these files to include Bonobo_Unknown.idl instead
3117         of Bonobo.idl
3118
3119 <2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
3120
3121         * libspi/component.c libspi/component.h:
3122                 Fixed typo.  Added assertions for object checks in 
3123         AccessibleComponent code.
3124
3125 <2001-10-09  Bill Haneman <bill.haneman@sun.com>
3126
3127         * idl/Accessible.idl:
3128                 Added 'isEqual (Accessible *object)' 
3129         method for Accessible. (Not Yet Implemented).
3130         
3131         * idl/Registry.idl:
3132                 Changed signature of registerKeystrokeListener() to
3133         take a KeySet and KeyEventSeq so that specific keys and event
3134         types could be requested for monitoring, and added a flag
3135         is_synchronous so that either synchronous or asynchronous
3136         notification could be requested.  (However this is not all
3137         implemented yet). This also meant adding two new typedefs,
3138         KeyEventSeq and KeySet.
3139
3140         * idl/Relation.idl: 
3141                 Added two new relations, RELATION_TOOLTIP_FOR and
3142         RELATION_LEAFNODE_OF.
3143
3144         * idl/State.idl:
3145                 Added new state, STATE_HAS_TOOLTIP.
3146         
3147         * libspi/text.c, editabletext.c:
3148                 Added new assertions to all casts of bonobo-objects from
3149         CORBA servants, to prevent Text API calls on non-text objects.
3150                 Changed suspect casts of int-pointer types, so that we
3151         always send a valid CORBA_long pointer to the CORBA APIs that use
3152         in/out long parameters.  We then have to copy from the CORBA_long
3153         into the regular long or int for return to the C bindings, or
3154         vice-versa when returning parameters from ATK calls to the bonobo wrappers.
3155         
3156         * cspi/spi_text.c:
3157         * libspi/deviceeventcontroller.c:
3158                 Cleaned these sources up.
3159         * idl/Text.idl:
3160                 Changed return type for getCharacterAtOffset to
3161         CORBA_unsigned_long, to allow for 32-bit characters.
3162         
3163                 
3164 <2001-10-08  Bill Haneman <bill.haneman@sun.com>
3165
3166         * util/Makefile.am:
3167         * idl/Makefile.am:
3168                 Fixed 'make dist' so that distro compiles...
3169         * libspi/keymasks.h:
3170                 new file.
3171         * cspi/spi-listener.c:
3172                 KeystrokeListenerCB now returns a boolean.
3173         * cspi/spi.h:
3174                 Added KeyEventType struct, and KeyStroke.
3175                 Also added createKeystrokeListener(),
3176         KeystrokeListener_addCallback(),
3177         KeystrokeListener_removeCallback(), and added a keymask to
3178         registerKeystrokeListener().
3179         * cspi/spi_accessible.c:
3180                 Changed numerous return types for interfaces from
3181         AccessibleComponent to Accessible<InterfaceName>; this was
3182         probably a cut-and-paste error.
3183         * cspi/spi_event.c:
3184                 Implementations of new KeystrokeListener api (from spi.h,
3185         above).
3186         * idl/Registry.idl:
3187                 Changes to key modifier mapping.
3188                 Created ControllerEventMask struct.
3189                 Made DeviceEventController derive from Bonobo::Unknown.
3190         * idl/Text.idl:
3191                 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
3192         * libspi/deviceeventcontroller.c:
3193                 Added a number of new internal (private) methods.
3194         * libspi/editabletext.c:
3195         * libspi/editabletext.h:
3196                 Fixed a number of bugs related to the fact that
3197         editabletext inherits from text.  Fixed the EditableText struct,
3198         the init() call, and use correct casts when calling Text methods
3199         from an EditableText object.  Removed (duplicate) atko from the
3200         EditableText structure, we use the one in the parent Text
3201         structure via the casts mentioned above.
3202         * libspi/keystrokelistener.[ch]:
3203         * libspi/registry.c:
3204                 Changes in support of keyboard handling (above).
3205         
3206         Keyboard handling, though partly functional, is still not
3207         recommended for at-spi client use as there is considerable 
3208         work yet to be done.
3209
3210         * libspi/text.c:
3211                 Changed some places where pointers to various int types
3212         are cast to be pointers to CORBA_long types and vice-versa:
3213         pointer casting is not safe so we pass pointers of the correct
3214         types and then cast the result before putting it into the target
3215         pointers.
3216
3217         * libspi/text.h: minor typos corrected.
3218         * test/simple-at.c: 
3219                 We now speak not only the name of a Text element, but the
3220         first sentence of its content, when it receives focus.
3221                 I also changed the text compression to 75% from 50%.
3222         * util/Accessibility_Util.server.in:
3223                 Changed the default magnifier type to be a 3x vertical
3224         splitscreen magnifier (was previously a 2x horizontal one).
3225
3226 <2001-10-03  Bill Haneman <bill.haneman@sun.com>
3227
3228         * libspi/keystrokelistener.h:
3229         * libspi/keystrokelistener.c:
3230                 Initial functional implementations of KeystrokeListener.
3231         * idl/Registry.idl:
3232         
3233 <2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
3234
3235         Fixed string handling for NULL strings in libspi.
3236         Added spi_freeString to free strings returned by C bindings.
3237
3238 <2001-09-30  Bill Haneman <bill.haneman@sun.com>
3239
3240         * libspi/keystrokelistener.h:
3241         * libspi/keystrokelistener.c:
3242                 Began (no-op) implementations of KeystrokeListener
3243                         (see below).
3244         * libspi/deviceeventcontroller.c:
3245         * libspi/deviceeventcontroller.h:
3246                 Began creating implementations of DeviceEventController,
3247                         to handle keystroke and mouse event listening and
3248                         synthesis.
3249         * libspi/accessible.c:
3250                 Stubbed-in the implementations for
3251                         Accessibility_Accessible_getState and
3252                         Accessibility_Accessible_getRelationSet.
3253         * libspi/registry.c:
3254                 Improved de-registration process and fixed some bugs, 
3255                         deregistration now works correctly.
3256         * libspi/desktop.c:
3257                 Added initialization of applications list (to NULL).
3258         * util/magnifier.c:
3259                 Reduced speech compression from 0.5 to 0.7, for demo.
3260                 Changed call to gdk_window_set_decorations()
3261                         to gtk_window_set_decorated().
3262         * at-bridge/bridge.c:
3263                 Bridge now deregisters when app exits, via
3264                         registration of a cleanup function
3265                         with the g_atexit() call.
3266                         Required making 'app' static, renamed 'this_app'.
3267                 Fixed broken use of bonobo_init, passing argv wrongly.
3268
3269 <2001-09-27  Bill Haneman <bill.haneman@sun.com>
3270
3271         * util:
3272         * util/Makefile.am: 
3273                 Created a new directory for 
3274                         accessibility-related utilities, primarily for
3275                         testing and demo purposes, but with possible
3276                         end-user utility.
3277         
3278         * util/magnifier.c:
3279         * util/magnifier.h:
3280         * util/mag_image.c:
3281         * util/mag_image.h:
3282                 Onscreen magnifier utility that
3283                         is implemented as a bonobo service.
3284         
3285         * util/mag_client.c:
3286         * util/mag_client.h:
3287                 Client-side support (simple C bindings) 
3288                         for Magnification service
3289         
3290         * util/mag_control.c:
3291                 Client program example for 
3292                         Magnification service
3293         
3294         * util/Accessibility_Magnifier.server.in:
3295                 Bonobo-activation file for the 
3296                         Magnification service.
3297         
3298         * util/idl:
3299         * util/idl/Magnifier.idl:
3300                 IDL defining the bonobo Magnification
3301                         service interface.
3302
3303         * test/simple-at.c:
3304                 Modifications to use the bonobo-activated magnifier
3305                         above, in place of trying to connect to an existing
3306                         magnifier that uses socket-listening IPC.
3307
3308                 If env variable MAGNIFIER is set, a magnifier service
3309                         will be started if one does not exist.
3310         
3311 <2001-09-25  Bill Haneman <bill.haneman@sun.com>
3312         * at-bridge/bridge.c:
3313                 applied patch from Marc to build and run 
3314                 against new glib and gtk+ (seemed like a change 
3315                 to bonobo_init signature was made ?)
3316         * test/simple-at.c:
3317                 made festival-server support turned off by default.
3318                 Added support for a simple magnifier (off by default)
3319                 which will be added to a 'util' directory later.
3320         * at-bridge/Makefile.am:
3321                 Changed "application.h" header from a 'source'
3322                 to a 'dependency' of libat-bridge.
3323
3324 <2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
3325         * cspi/Makefile.am:
3326                 Added spi-util.c.
3327
3328         * cspi/spi-util.c:
3329                 Fixed typo
3330
3331         * cspi/spi.c:
3332                 Added interface implementation c files to list of
3333                         includes so they are included in libcspi.
3334
3335         * cspi/spi.h:
3336                 Changed prototype of AccessibleAction_doAction to return a
3337                         boolean.
3338                 Changed prototype of AccessibleTable_getCaption to
3339                         return an Accessible.
3340                 Changed prototype of AccessibleTable_getSelectedRows
3341                         and AccessibleTable_getSelectedColumns to
3342                         return a long (returns the number of selected rows
3343                         or columns respectively).
3344                 Changed name of AccessibleText_refRunAttributes to
3345                         AccessibleText_getAttributes.
3346                 Changed prototype of AccessibleText_getCharacterExtents to
3347                         return a void rather than a boolean. 
3348                 Added support for a AccessibleCoordType parameter
3349                         specifying what type of coordinates are desired.
3350                 Added an AccessibleCordType parameter to
3351                         AccessibleText_getPointAtOffset.
3352
3353         * cspi/spi_accessible.c:
3354                 Added code to return the outstanding interfaces from
3355                         Accessible_queryInterface.
3356
3357         * cspi/spi_action.c:
3358                 Fixed typos.
3359                 Corrected call to getNActions to call the c binding
3360                         for an attribute.
3361
3362         * cspi/spi_editabletext.c:
3363                 Fixed typos.
3364                 Changed name from setRunAttributes to setAttributes.
3365
3366         * cspi/spi_hyperlink.c:
3367                 Fixed typos.
3368                 Changed call to getNAnchors to correctly call the c
3369                         binding for an attribute.
3370
3371         * cspi/spi_hypertext.c:
3372                 Fixed typos.
3373                 Changed getImageDescription to correctly call the
3374                         binding for an attribute.
3375
3376         * cspi/spi_selection.c:
3377                 Changed getNSelectedChildren to correctly call the c
3378                         binding for the attribute.
3379                 Changed refSelectedChild to getSelectedChild.
3380
3381         * cspi/spi_table.c:
3382                 Fixed typos.
3383                 Changed getCaption to return an Accessible.
3384                 Fixed calls which retrieve attributes.
3385                 Changed refAt to getAccessibleAt.
3386                 Changed getNSelectedRows and getNSelectedColumns to
3387                         return longs.
3388
3389         * cspi/spi_text.c:
3390                 Changed getCharacterExtents and getPointAtOffset to accept an
3391                         AccessibleCoordType.
3392                 Fixed typos.
3393                 Changed calls which retrieve attributes.
3394                 Changed refRunAttributes to getAttributes.
3395
3396         * cspi/spi_value.c:
3397                 Fixed typos.
3398
3399         * idl/Hyperlink.idl:
3400                 Changed n_anchors attribute to nAnchors to keep naming
3401                         convention consistent.
3402
3403         * idl/Table.idl:
3404                 Made Table inherit from Bonobo::Unknown.
3405                 Added nSelectedColumns and nSelectedRows attributes.
3406
3407         * idl/Value.idl:
3408                 Made Value inherit from Bonobo::Unknown.
3409
3410         * libspi/hyperlink.c:
3411                 Change for nAnchors attributte name change.
3412
3413 <2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
3414         * cspi/Makefile.am:
3415                 Added spi-util.c.
3416
3417         * cspi/spi-util.c:
3418                 Fixed typo
3419
3420         * cspi/spi.c:
3421                 Added interface implementation c files to list of
3422                         includes so they are included in libcspi.
3423
3424         * cspi/spi.h:
3425                 Changed prototype of AccessibleAction_doAction to return a
3426                         boolean.
3427                 Changed prototype of AccessibleTable_getCaption to
3428                         return an Accessible.
3429                 Changed prototype of AccessibleTable_getSelectedRows
3430                         and AccessibleTable_getSelectedColumns to
3431                         return a long (returns the number of selected rows
3432                         or columns respectively).
3433                 Changed name of AccessibleText_refRunAttributes to
3434                         AccessibleText_getAttributes.
3435                 Changed prototype of AccessibleText_getCharacterExtents to
3436                         return a void rather than a boolean. 
3437                 Added support for a AccessibleCoordType parameter
3438                         specifying what type of coordinates are desired.
3439                 Added an AccessibleCordType parameter to
3440                         AccessibleText_getPointAtOffset.
3441
3442         * cspi/spi_accessible.c:
3443                 Added code to return the outstanding interfaces from
3444                         Accessible_queryInterface.
3445
3446         * cspi/spi_action.c:
3447                 Fixed typos.
3448                 Corrected call to getNActions to call the c binding
3449                         for an attribute.
3450
3451         * cspi/spi_editabletext.c:
3452                 Fixed typos.
3453                 Changed name from setRunAttributes to setAttributes.
3454
3455         * cspi/spi_hyperlink.c:
3456                 Fixed typos.
3457                 Changed call to getNAnchors to correctly call the c
3458                         binding for an attribute.
3459
3460         * cspi/spi_hypertext.c:
3461                 Fixed typos.
3462                 Changed getImageDescription to correctly call the
3463                         binding for an attribute.
3464
3465         * cspi/spi_selection.c:
3466                 Changed getNSelectedChildren to correctly call the c
3467                         binding for the attribute.
3468                 Changed refSelectedChild to getSelectedChild.
3469
3470         * cspi/spi_table.c:
3471                 Fixed typos.
3472                 Changed getCaption to return an Accessible.
3473                 Fixed calls which retrieve attributes.
3474                 Changed refAt to getAccessibleAt.
3475                 Changed getNSelectedRows and getNSelectedColumns to
3476                         return longs.
3477
3478         * cspi/spi_text.c:
3479                 Changed getCharacterExtents and getPointAtOffset to accept an
3480                         AccessibleCoordType.
3481                 Fixed typos.
3482                 Changed calls which retrieve attributes.
3483                 Changed refRunAttributes to getAttributes.
3484
3485         * cspi/spi_value.c:
3486                 Fixed typos.
3487
3488         * idl/Hyperlink.idl:
3489                 Changed n_anchors attribute to nAnchors to keep naming
3490                         convention consistent.
3491
3492         * idl/Table.idl:
3493                 Made Table inherit from Bonobo::Unknown.
3494                 Added nSelectedColumns and nSelectedRows attributes.
3495
3496         * idl/Value.idl:
3497                 Made Value inherit from Bonobo::Unknown.
3498
3499         * libspi/hyperlink.c:
3500                 Change for nAnchors attributte name change.
3501
3502
3503 <2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
3504
3505         implementations-- made server implementations own AtkObject pointers
3506         rather than their respective AtkInterrface pointers to fix
3507         refcounting.  AtkHyperlink is still broken.
3508
3509 <2001-09-04  Bill Haneman <bill.haneman@sun.com>
3510         * cspi/spi_accessible.c:
3511                 Added method Accessible_Role_getName(),
3512                         and requisite string array (role_names).
3513                 Added conversion string_from_corba_strin() call
3514                         to Accessible_getName and _getDescription.
3515         * libspi/accessible.c:
3516                 Added implementation for Accessible_getRole()
3517         * test/simple-at.c:
3518                 Added festival support, used if environment variable
3519                         FESTIVAL is set.
3520         
3521 2001-09-04  Bill Haneman <bill.haneman@sun.com>
3522
3523         * at-bridge/bridge.c:
3524             Now allocate Accessibility_Event using
3525             Accessibility_Event__alloc() instead of g_new0().
3526         * libspi/accessibleeventlistener.c:
3527             Initialize AccessibleEventListener->callbacks to NULL.
3528             Fixed accessible__event_listener_init() param, changed to
3529             "AccessibleEventListener *" type.
3530             Changed a bonobo_object_release_unref() call to
3531             Accessibility_Accessible_unref().
3532         * libspi/listener.c:
3533             Changed Bonobo_Unknown_unref to (equivalent) 
3534             Accessibility_Accessible_unref.
3535         * libspi/registry.c:
3536             Changed bonobo_object_release_unref to 
3537             Accessibility_Accessible_unref.
3538         
3539 <2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
3540         
3541         * Added files:
3542             spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
3543             spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
3544             spi-util.c spi-util.h
3545             Implementations for C bindings to remaining accessibility 
3546             interfaces.
3547
3548 <2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
3549         
3550         * idl/Action.idl:
3551             changed return value of Action from void to boolean to 
3552             bring in line with ATK.
3553
3554         * idl/Text.idl:
3555             Changed getText funcions to return "out" start and end offsets.
3556             Changed getAttributes to take and offset and return the start 
3557             and end offset of the attribute run.
3558             Changed getOffsetAtPoint and getCharacterExtents to take an 
3559              enum describing whether coordinates are window or screen.
3560
3561         * Added files:
3562             libspi/action.c libspi/action.h libspi/editabletext.c 
3563             libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
3564             libspi/hypertext.c libspi/hypertext.h libspi/image.c 
3565             libspi/image.h libspi/selection.c libspi/selection.h
3566             libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
3567             libspi/value.c libspi/value.h
3568             Added server implementations for outstanding ATK interfaces 
3569             not yet implemented.
3570  
3571 2001-09-04  Bill Haneman <bill.haneman@sun.com>
3572
3573         * idl/Action.idl:
3574                 Added (missing) getName() method. 
3575                 Made nActions an attribute.
3576         * idl/EditableText.idl:
3577                 Changed order of params in setAttributes.
3578         * idl/Hyperlink.idl:
3579                 Removed getAnchor, added getURI.
3580         * idl/Image.idl:
3581                 Changed attributes to methods, for efficiency
3582                 (so that getting extents can be done in one call)
3583         * idl/Selection.idl:
3584                 Changed nSelectedChildren to attribute, and re-indented.
3585         * idl/Table.idl: changed nrows, ncolumns, caption, summary 
3586                 to attributes.
3587         * idl/Text.idl: reformatted to match our coding style.
3588                 (temporarily?) removed getRowColumnAtOffset().
3589                 Changed text selection API to support multi-select and
3590                 non-contiguous selections, as in ATK.
3591         * idl/Value.idl: changed some methods to attributes.
3592
3593 2001-08-24  Mark McLoughlin <mark@skynet.ie>
3594
3595         * libspi/listener.c(impl_notify_event):
3596         BonoboUnkown_unref the source instead
3597         of bonobo_object_release_unref - the ORB
3598         handles the releasing.
3599
3600         * configure.in: require ORBit-2.3.94 for
3601         this behaviour.
3602
3603 2001-08-21  Bill Haneman <bill.haneman@sun.com>
3604
3605         Tagged CVS repository 'EA_1_0'.
3606         * README.EARLY_ACCESS:
3607         Alphabetized acknowledgements list, and
3608         added someone.
3609         Listed some known dependencies of at-spi.
3610
3611 2001-08-20  Bill Haneman <bill.haneman@sun.com>
3612
3613         * docs/at-spi-docs.sgml:
3614         * docs/at-spi-sections.txt:
3615         * docs/at-spi-overrides.txt: (Added zero-length file)
3616         Documentation improvements - gtk-doc should build
3617         docs for all implemented C bindings now.
3618         * cspi/Makefile.am:
3619         * cspi/spi_main.c:
3620         * cspi/spi.c: (New file)
3621         * cspi/spi_event.c: (New file)
3622         * cspi/spi_registry.c: (New file)
3623         * cspi/spi_accessible.c: (New file)
3624         * cspi/spi_application.c: (New file)
3625         * cspi/spi_component.c: (New file)
3626         Split spi_main.c into six parts, and included them from
3627         "spi.c".  This is a bit of a hack, probably temporary,
3628         but required by gtk-doc, apparently.
3629         
3630 2001-08-20  Bill Haneman <bill.haneman@sun.com>
3631
3632         * docs/Makefile.am:
3633         * docs/at-spi-docs.sgml:
3634         * docs/at-spi-sections.txt:
3635         * configure.in:
3636         Initial checkins/modifications for gtk-doc generation.
3637         * cspi/spi.h:
3638         * cspi/spi.c:
3639         Added (missing) interface query methods to Accessible's C binding.
3640         * cspi/spi-impl.h:
3641         Added GenericInterface type definition.
3642         * test/simple-at.c:
3643         Added query for AccessibleComponent interface to focus event handler.
3644         Added printout of bounding box for focussed component.
3645         * libspi/component.c:
3646         Added partial implementation for AccessibleComponent to C binding.
3647         * idl/Application.idl:
3648         * libspi/registry.c:
3649         * libspi/listener.c:
3650         * libspi/application.c:
3651         * libspi/application.h:
3652         Changed "ID" attribute type from string to long.
3653
3654 2001-08-19  Bill Haneman <bill.haneman@sun.com>
3655
3656         * cspi/spi.h:
3657         * cspi/spi.c:
3658         Made method naming consistent: methods taking object args
3659         start with uppercase, other methods (except those using
3660         acronyms) start with lowercase.  Underscores delimit between
3661         object names and method names:
3662         SPI_init() - uppercase since it starts with an acronym.
3663         getDesktopCount () - lowercase start since no object param0.
3664         Accessible_getName() - uppercase object type name, studlyCaps method
3665                                name.
3666
3667         *cspi/spi.h:
3668         Added gtk-doc documentation for all currently implemented
3669         methods in the C bindings API.
3670
3671 2001-08-18  Bill Haneman <bill.haneman@sun.com>
3672
3673         * Makefile.am : changed build order to build test last.
3674         * cspi/spi.h :
3675         * cspi/spi_main.c :
3676         Changed "createEventListener" to "CreateEventListener".
3677         * libspi/accessibleeventlistener.c :
3678         Bugfix for addition of callbacks.
3679         * test/Makefile.am :
3680         * test/simple-at.c :
3681         Added new test that uses the C bindings API.
3682         * idl/Event.idl :
3683         * libspi/listener.c :
3684         * libspi/registry.c :
3685         * libspi/accessibleeventlistener.c :
3686         * at-bridge/bridge.c :
3687         Renamed member "target" of Accessibility_Event to "source",
3688         which is more descriptive.
3689         
3690
3691 2001-08-18  Bill Haneman <bill.haneman@sun.com>
3692
3693         * Makefile.am: 
3694         * configure.in :
3695         * cspi/Makefile.am :
3696         Added makefile support for at-spi/cspi directory.
3697         * cspi/spi.h : 
3698         * cspi/spi-impl.h :
3699         * cspi/spi-listener.h : (NEW FILE)
3700         Added support for/use of spi-listener.h.
3701         * cspi/spi_main.c :
3702         C bindings now build successfully, with no warnings.
3703         * libspi/accessibleeventlistener.h : (NEW FILE)
3704         * libspi/accessibleeventlistener.c : (NEW FILE)
3705         * libspi/Makefile.am :
3706         Added new object type "AccessibleEventListener"
3707         which inherits from Listener, and allows attachment
3708         of in-process callbacks (so that a client with a listening
3709         object instance can add functionality to the local 
3710         implementation, dynamically).
3711
3712 2001-08-18  Bill Haneman <bill.haneman@sun.com>
3713
3714         * libspi/accessible.c: 
3715         Add implementation for get_index_in_parent().
3716         * cspi/spi.h : 
3717         Added #include of "spi-roletypes.h", and
3718         added enumerated type AccessibleCoordType.
3719         Added definition for KeystrokeListener (function type).
3720
3721         ADDED FILES:
3722         * cspi/spi-statetypes.h :
3723         * cspi/spi-roletypes.h :
3724         * cspi/spi-impl.h :
3725         Added these headers, used by spi.h.
3726         * cspi/spi_main.c : 
3727         Added code (NOTE: not yet built by make).
3728
3729 2001-08-18  Mark McLoughlin <mark@skynet.ie>
3730
3731         * libspi/Makefile.am: generate imodule
3732         at the same time as other idl compiler 
3733         generated files. 
3734
3735 2001-08-17  Bill Haneman <bill.haneman@sun.com>
3736         * libspi/registry.c :
3737         * libspi/application.c :
3738         * idl/Application.idl :
3739         Made registration with toolkit an application method,
3740         which is required since each app has its own toolkit static
3741         environment.  Thus the bridge must register for 
3742         notification of toolkit events from each application in turn.
3743         Toolkit notifications are now successfully registered for, and
3744         sent to the listening at client.
3745         * test/at.c :
3746         Changed toolkit event string to use hyphens rather than underscores.
3747         * libspi/listener.c :
3748         listner now gives more info in debug mode - it reports the
3749         name of the event received, as well as the name of the source.
3750         
3751
3752 2001-08-16  Bill Haneman <bill.haneman@sun.com>
3753
3754         * libspi/registry.c :
3755         added more implementation for toolkit events.
3756         Fixed bug such that toolkit event registrations
3757         (via atk) use the whole event name string, not 
3758         just minor+detail.
3759         Removed a useless call to an ORBit_ method.
3760         * at-bridge/bridge.c :
3761         Removed unused local sbuf[] variable.
3762         * test/at.c :
3763         We now register for Gtk:GtkWidget:button_press_event 
3764         events as well as "focus:" events.
3765         * cspi/spi.h :
3766         Add some more API from Registry.idl that was missing,
3767         for keystroke listening, keystroke and mouse event
3768         synthesis, and enumeration of accessible desktops.
3769
3770 2001-08-16  Michael Meeks  <michael@ximian.com>
3771
3772         * configure.in: use AM_GLIB_GNU_GETTEXT.
3773
3774         * Makefile.am (SUBDIRS): kill intl.
3775
3776 2001-08-15  Michael Meeks  <michael@ximian.com>
3777
3778         * registryd/Makefile.am: s/oaf/server/ relocate info file.
3779
3780         * configure.in: upd.
3781
3782         * configure.in: depend on a recent bonobo-activation that
3783         will find our server files ...
3784
3785 2001-08-16  Bill Haneman <bill.haneman@sun.com>
3786
3787         * libspi/accessible.c : accessible_new() :
3788         Now we add the Component interface via bonobo_object_add_interface,
3789         if the contained AtkObject implements AtkComponent.
3790         * libspi/accessible.h : now include "component.h"
3791         * libspi/component.h :
3792         * libspi/component.c : added files - implementation of
3793         bonobo wrapper object for Accessibility/Component
3794         * libspi/listener.c :
3795         Added test code to check for Accessibility/Component:1.0
3796         interface and report whether it is implemented by the
3797         event source.
3798         * libspi/registry.c :
3799         Now we check for not only the hash of the whole event 
3800         string before relaying the event, we also check the
3801         "minor" event string (without the detail string).
3802         This allows event listeners to be registered against
3803         all events of a certain major+minor type, or just
3804         against a specific major+minor+detail type.
3805         * libspi/accessible.c :
3806         Added implementations for Accessible:get_parent(),
3807         Accessible:getChildCount(), and Accessible:getChildAtIndex().
3808         * libspi/registry.c :
3809         * libspi/listener.c :
3810         Replaced calls to Accessibility_Accessible_ref() and
3811         Accessibility_Accessible_unref() with 
3812         calls to bonobo_object_dup_ref() and 
3813         bonobo_object_release_unref(), so that the CORBA object
3814         is dup-ed and released when relayed, as well as the bonobo object.
3815
3816 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3817
3818         * libspi/Makefile.am,
3819           registryd/Makefile.am,
3820           at-bridge/Makefile.am.
3821           test/Makefile.am, configure.in:
3822         reverse previous changes.
3823
3824         * /idl/Image.idl: fix typo.
3825
3826         * test/Makefile.am: put DEBUG_FLAGS
3827         in CFLAGS.
3828
3829 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3830
3831         * test/app.c: use argv[0] instead of
3832         g_type_prgname.
3833
3834 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3835
3836         * libspi/Makefile.am,
3837           registryd/Makefile.am,
3838           at-bridge/Makefile.am.
3839           test/Makefile.am, configure.in:
3840         cleanup, replace individual LIBS/CFLAGS with
3841         AT_COMMON_{LIBS|CFLAGS}.
3842
3843         * README: format.
3844
3845 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3846         
3847         * configure.in, libspi/Makefile.am:
3848         Change IDL path checking for bonobo-activation
3849         as opposed to oaf.
3850
3851 2001-08-15  Bill Haneman <bill.haneman@sun.com>
3852
3853         * registryd/registry.c : separated event listeners to use
3854         3 separate lists (focus, window, toolkit).  Began testing
3855         event names against hashes before relaying events.
3856         * test/at.c : now register for events of type "focus:"
3857         * test/app.c : now generate events of type "focus:"
3858         * at-bridge/bridge.c : register with ATK for focus events,
3859         and we now relay those focus events to any "focus:" listeners.
3860         This now works with the bridge as a GTK_MODULE when running test/at.
3861         * libspi/registry.c :
3862         * libspi/listener.c : 
3863         now we ref event sources before propagating, and unref on receipt.
3864         * libspi/registry.c : 
3865         some changes to internal structs, to support event typestring hashes.
3866         * text/app.c : changed the way the appname is generated.
3867         * cspi : added directory that will hold the C bindings library for 
3868                 non-CORBA/bonobo-savvy clients.
3869         * cspi/spi.h : header file that contains the function prototypes for the C binding.
3870         * idl/Component.idl : added in parameter to indicate coord system for
3871                 geometry-related calls.
3872         * idl/Hyperlink.idl : added readonly n_links attribute
3873         * idl/Image.idl : changed methods to attributes.
3874         
3875 2001-08-15  Mark McLoughlin <mark@skynet.ie>
3876
3877         * at-bridge/Makefile.am: link against
3878         ../libspi/libspi.la instead of -lspi.
3879
3880         * at-spi/test/app.c: include 
3881         bonobo-activation.h. Use a default appname
3882         if one is not provided.
3883
3884 2001-08-14  Bill Haneman <bill.haneman@sun.com>
3885
3886         * idl/Registry.idl : temporarily changed register_Application
3887         to oneway, to work around issue with initial registration 
3888         re-entrancy.
3889         * idl/Application.idl : changed attribute "id" from readonly 
3890         to read-write, since it needs to be assigned by Registry.
3891         * registryd/registryd.c : added call to set application id 
3892         on registration.
3893         * registryd/registry.c : changed de-registration procedure to
3894         use CORBA_Object_hash() to find matching object ref in application
3895         lists and listener lists.
3896         * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
3897         began distinguishing between event types (work in progress).
3898
3899 2001-08-13  Bill Haneman <bill.haneman@sun.com>
3900
3901         CHANGES:
3902         * libspi/application.c:
3903         Added implementations for get/set id, get_toolkitName,
3904         get_version.
3905         * registryd/registryd.c :
3906         * test/at.c :
3907         * test/app.c :
3908         * Makefile.am :
3909         Converted from use of OAF to bonobo-activation.
3910         * libspi/desktop.h :
3911         * libspi/desktop.c :
3912         * test/app.c :
3913         Removed references to atksimpleobject, since base atkobject
3914         implementation now provides functionality we need.
3915         * libspi/atksimpleobject.c :
3916         * libspi/atksimpleobject.h :
3917         Removed.
3918         
3919         ADDITIONS:
3920         * at-bridge
3921         * at-bridge/Makefile.am
3922         * at-bridge/bridge.c
3923         * configure.in
3924         * Makefile.am
3925         Added directory "bridge" and contents, and added dependencies
3926         in Makefile.am/configure.in.  
3927         Initial checkin of "at-bridge".
3928         This code is a GTK_MODULE which automatically registers
3929         GTK+ apps with the accessibility registry, using an object
3930         reference to the root ATK object.
3931         
3932 2001-08-10  Mark McLoughlin <mark@skynet.ie>
3933
3934         * po/Makefile.in.in: Remove. Again. If this
3935         doesn't get autogenerated - you need to update
3936         gnome-common.
3937
3938 2001-08-07  Mark McLoughlin <mark@skynet.ie>
3939
3940         * po/Makefile.in.in: Add. Again.
3941
3942 2001-07-31  Bill Haneman <bill.haneman@sun.com>
3943
3944         * libspi/accessible.c : added support for 'description' property.
3945         * libspi/accessible.c
3946         * libspi/desktop.c
3947         * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
3948             (since the two are now equivalent in libbonobo)
3949         * idl/Action.idl
3950         * idl/Component.idl
3951         * idl/Hyperlink.idl
3952         * idl/Image.idl
3953         * idl/Selection.idl
3954         * idl/Table.idl
3955         * idl/Text.idl
3956         * idl/Value.idl : changed these 'secondary' interfaces to inherit from
3957              Bonobo::Unknown as does Accessibility::Accessible.
3958         * idl/StreamableContent.idl : as above, and replaced internal InputStream
3959              interface with Bonobo::Stream, since it was redundant with it.
3960              (The Stream returned by a StreamableContext object is expected to
3961              implement only a subset of Bonobo::Stream)
3962
3963 2001-07-28  Anders Carlsson  <andersca@gnome.org>
3964
3965         * libspi/accessible.c (accessible_object_finalize): Change
3966           g_free to g_object_unref since the AtkObject is a GObject.
3967
3968 2001-07-30  Bill Haneman <bill.haneman@sun.com>
3969
3970         * idl/Accessibility.idl: add new IDL files
3971         
3972         Added:
3973         * idl/Action.idl: Definitions of actionable UI object
3974         * idl/Component.idl: Definitions of UI component geometry, etc.
3975         * idl/Hyperlink.idl: Defs of hyperlink behavior
3976         * idl/Image.idl: Def of accessible image
3977         * idl/Selection.idl: Definition of UI object with selectable children
3978         * idl/StreamableContent.idl: Definition of UI object with streamable backing data
3979         * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
3980         * idl/Text.idl: Interface defs for UI elements with complex textual content
3981         * idl/Value.idl: Definition of UI element that is a value controller or display
3982         
3983 2001-07-27  Michael Meeks  <michael@ximian.com>
3984
3985         * po/Makefile.in.in: remove autogenerated file from CVS.
3986
3987         * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
3988         type library.
3989
3990         * idl/Registry.idl: include guard.
3991
3992         * idl/Accessibility.idl: Add, and include all the other IDL
3993         files.
3994
3995         * idl/*.idl: remove mass of pragmas etc.
3996
3997 2001-07-26  Michael Meeks  <michael@ximian.com>
3998
3999         * registryd/Makefile.am (registryd_SOURCES): remove
4000         redundant at_.
4001
4002 2001-07-27  Mark McLoughlin <mark@skynet.ie>
4003
4004         * libspi/.cvsignore, registryd/.cvsignore,
4005           test/.cvsignore: updated.
4006
4007         * po/Makefile.in.in: gettext update.
4008
4009 2001-07-25  Bill Haneman <bill.haneman@sun.com>
4010
4011         * initial CVS checkin
4012
4013 2001-06-29  Michael Meeks  <michael@ximian.com>
4014
4015         * configure.in: add AM_CONFIG_HEADER to gen config.h
4016
4017         * acconfig.h: add.
4018