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