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