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