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