2001-12-10 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_Application.idl
1 /* 
2  * AT-SPI - Assistive Technology Service Provider Interface 
3  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
4  *
5  * Copyright 2001 Sun Microsystems Inc.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */
22
23 #ifndef __ACCESSIBILITY_APPLICATION_DEFINED__
24 #define __ACCESSIBILITY_APPLICATION_DEFINED__
25
26 #include <Bonobo_Unknown.idl>
27 #include <Accessible.idl>
28
29 module Accessibility {
30   interface Application : Accessible {
31
32     /**
33      * @toolkitName:
34      * A string indicating the type of user interface toolkit
35      * which is used by the application.
36      * Ordinarily clients of @AccessibleApplication should be
37      * toolkit-agnostic, dependencies on this method probably
38      * should be reconsidered!
39      **/
40     readonly attribute string toolkitName;
41
42     /**
43      * @version:
44      * A string indicating the version number of the application's
45      * accessibility bridge implementation.
46      **/
47     readonly attribute string version;
48
49     /**
50      * @id:
51      * The application instance's unique ID as assigned by the registry.
52      **/
53     attribute long id;
54
55     /**
56      * registerToolkitEventListener:
57      * @listener: an #EventListener object which will receive the requested
58      *            events from the application's toolkits via toolit 'bridges'
59      * @eventName: a UTF-8 string indicating the type of (toolkit-specific) event
60      *            being requested.  Not all applications can generate toolkit events of
61      *            a given type.
62      *
63      * Register with this application's toolkit for "toolkit-specific" event notifications.
64      *       For most event support, clients should use non-toolkit-specific events
65      *       whenever possible, via #Registry::registerGlobalEventListener - this method 
66      *       is provided as a 'back door' when generic names do not exist for the events in question.
67      * SUBJECT TO DEPRECATION in favor of Registry::registerGlobalEventListener forms.
68      *
69      **/
70     void registerToolkitEventListener (in EventListener listener, in string eventName);
71
72     /**
73      * registerObjectEventListener:
74      * @listener: an #EventListener object which will receive the requested
75      *            events
76      * @eventName: a UTF-8 string indicating the type of (toolkit-specific) event
77      *            being requested.  
78      * Register with this application toolkit for "Accessibility::Accessible" 
79      * event notifications. SUBJECT TO DEPRECATION
80      *
81      **/
82     void registerObjectEventListener (in EventListener listener, in string eventName);
83
84     /**
85      * pause:
86      *
87      * Request that the application temporarily stop sending events.
88      * In most cases this should pause the application's main event loop.
89      *
90      * Returns: %true if the request succeeded, %false otherwise.
91      **/
92     boolean       pause ();
93
94     /**
95      * resume:
96      *
97      * Request that the application resume sending events.
98      *
99      * Returns: %true if the request succeeded, %false otherwise.
100      **/
101     boolean       resume ();
102   };
103 };
104
105 #endif