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