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