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