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