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