/* * AT-SPI - Assistive Technology Service Provider Interface * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) * * Copyright 2001-2004 Sun Microsystems Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __ACCESSIBILITY_APPLICATION_DEFINED__ #define __ACCESSIBILITY_APPLICATION_DEFINED__ #include module Accessibility { /** * An interface identifying an object which is the root of the * user interface Accessible hierarchy associated with a running application. * Children of Application are typically, but not exclusively, * top-level windows. * @note It is possible for an element deeper in an Accessibility stack to * implement Application, for instance in the case of "embedded applications" * which draw into toplevel windows associated with other applications * from the user's point of view. */ interface Application : Accessible { /** * A string indicating the type of user interface toolkit * which is used by the application. * @note Ordinarily clients of ::Application should be * toolkit-agnostic, dependencies on this property should * be avoided where possible. **/ readonly attribute string toolkitName; /** * A string indicating the version number of the application's * accessibility bridge implementation. **/ readonly attribute string version; /** * The application instance's unique ID as assigned by the registry. **/ attribute long id; /** * @param listener: an ::EventListener object which will receive the requested * events from the application's toolkits via toolit 'bridges' * @param eventName: a UTF-8 string indicating the type of (toolkit-specific) event * being requested. Not all applications can generate toolkit events of * a given type. * * Register with this application's toolkit for "toolkit-specific" event notifications. * @note * For most event support, clients should use non-toolkit-specific events * whenever possible, via ::Registry::registerGlobalEventListener - this method * is provided as a 'back door' when generic names do not exist for the events in * question. **/ void registerToolkitEventListener (in EventListener listener, in string eventName); /** * registerObjectEventListener: * @param listener: an ::EventListener object which will receive the requested * events * @param eventName: a UTF-8 string indicating the type of (toolkit-specific) event * being requested. * Register with this application toolkit for "Accessibility::Accessible" * event notifications. * @note: SUBJECT TO DEPRECATION. **/ void registerObjectEventListener (in EventListener listener, in string eventName); /** * Request that the application temporarily stop sending events. * In most cases this should pause the application's main event loop. * * @returns: \c true if the request succeeded, \c false otherwise. * * @note: This method is not implemented in most toolkits, and therefore should be treated with caution. **/ boolean pause (); /** * Request that the application resume sending events. * * @returns: \c True if the request succeeded, \c False otherwise. **/ boolean resume (); /** * Gets the locale in which the application is currently operating. * For the current message locale, use \a lctype LOCALE_TYPE_MESSAGES. * * @param lctype The LocaleType for which the locale is queried. * @returns a string compliant with the POSIX standard for locale description. **/ string getLocale (in LOCALE_TYPE lctype); /**\cond (This comment tells doxygen not to document these) */ void unImplemented_ (); void unImplemented2_ (); void unImplemented3_ (); /**\endcond */ }; }; #endif