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