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