2 * AT-SPI - Assistive Technology Service Provider Interface
3 * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
5 * Copyright 2001-2004 Sun Microsystems Inc.
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.
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.
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.
23 #ifndef __ACCESSIBILITY_APPLICATION_DEFINED__
24 #define __ACCESSIBILITY_APPLICATION_DEFINED__
26 #include <Bonobo_Unknown.idl>
27 #include <Accessibility_Accessible.idl>
29 module Accessibility {
32 * An interface identifying an object which is the root of the
33 * user interface Accessible hierarchy associated with a running application.
34 * Children of Application are typically, but not exclusively,
36 * @note It is possible for an element deeper in an Accessibility stack to
37 * implement Application, for instance in the case of "embedded applications"
38 * which draw into toplevel windows associated with other applications
39 * from the user's point of view.
41 interface Application : Accessible {
44 * A string indicating the type of user interface toolkit
45 * which is used by the application.
46 * @note Ordinarily clients of ::Application should be
47 * toolkit-agnostic, dependencies on this property should
48 * be avoided where possible.
50 readonly attribute string toolkitName;
53 * A string indicating the version number of the application's
54 * accessibility bridge implementation.
56 readonly attribute string version;
59 * The application instance's unique ID as assigned by the registry.
64 * @param listener: an ::EventListener object which will receive the requested
65 * events from the application's toolkits via toolit 'bridges'
66 * @param eventName: a UTF-8 string indicating the type of (toolkit-specific) event
67 * being requested. Not all applications can generate toolkit events of
70 * Register with this application's toolkit for "toolkit-specific" event notifications.
72 * For most event support, clients should use non-toolkit-specific events
73 * whenever possible, via ::Registry::registerGlobalEventListener - this method
74 * is provided as a 'back door' when generic names do not exist for the events in
77 void registerToolkitEventListener (in EventListener listener, in string eventName);
80 * registerObjectEventListener:
81 * @param listener: an ::EventListener object which will receive the requested
83 * @param eventName: a UTF-8 string indicating the type of (toolkit-specific) event
85 * Register with this application toolkit for "Accessibility::Accessible"
86 * event notifications.
87 * @note: SUBJECT TO DEPRECATION.
89 void registerObjectEventListener (in EventListener listener, in string eventName);
92 * Request that the application temporarily stop sending events.
93 * In most cases this should pause the application's main event loop.
95 * @returns: \c true if the request succeeded, \c false otherwise.
97 * @note: This method is not implemented in most toolkits, and therefore should be treated with caution.
102 * Request that the application resume sending events.
104 * @returns: \c True if the request succeeded, \c False otherwise.
109 * Gets the locale in which the application is currently operating.
110 * For the current message locale, use \a lctype LOCALE_TYPE_MESSAGES.
112 * @param lctype The LocaleType for which the locale is queried.
113 * @returns a string compliant with the POSIX standard for locale description.
115 string getLocale (in LOCALE_TYPE lctype);
117 /**\cond (This comment tells doxygen not to document these) */
118 void unImplemented_ ();
119 void unImplemented2_ ();
120 void unImplemented3_ ();