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