Improved LoginHelper documentation.
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_LoginHelper.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 #include <Bonobo_Unknown.idl>
24
25 #ifndef _ACCESSIBILITY_LOGIN_HELPER_IDL_
26 #define _ACCESSIBILITY_LOGIN_HELPER_IDL_
27
28 module Accessibility {
29
30   interface LoginHelper : Bonobo::Unknown {
31
32       /* 
33        * WindowInfo:
34        * A structure containing info about toplevel X windows that
35        * the @LoginHelper instance wishes to have raised.
36        *
37        * @winID: The windowing-system-dependeny Window ID of the toplevel window.
38        */
39       struct WindowInfo {
40           long winID;
41       };
42
43       typedef sequence<WindowInfo> WindowList;
44
45       /*
46        * DeviceReq:
47        * @Accessibility_LoginHelper_GUI_EVENTS: Needs access to the GUI event subsystem (e.g. Xserver).
48        * @Accessibility_LoginHelper_CORE_KEYBOARD Needs access to the system keyboard events (read and write).
49        * @Accessibility_LoginHelper_CORE_POINTER: Needs access to the onscreen pointer (e.g. mouse pointer).
50        * @Accessibility_LoginHelper_EXT_INPUT: Reads XInput extended input devices.
51        * @Accessibility_LoginHelper_POST_WINDOWS: Posts Windows, and needs for toplevel windows to be visible
52        * @Accessibility_LoginHelper_AUDIO_OUT: Writes to audio device.
53        * @Accessibility_LoginHelper_AUDIO_IN: Reads from audio device.
54        * @Accessibility_LoginHelper_NETWORK: Requires access to general network services, including remote access.
55        * @Accessibility_LoginHelper_LOCALHOST: Requires network services hosted on LOCALHOST only.
56        * @Accessibility_LoginHelper_SERIAL_OUT: Writes to a serial port.
57        * @Accessibility_LoginHelper_SERIAL_IN: Reads from a serial port.
58        *
59        * The system and device access and services which the @LoginHelper-implementing 
60        * assistive technology requires in order to enable the user to use the system.
61        *
62        */
63       enum DeviceReq {
64           GUI_EVENTS,
65           CORE_KEYBOARD,
66           CORE_POINTER,
67           EXT_INPUT,
68           POST_WINDOWS,
69           AUDIO_OUT,
70           AUDIO_IN,
71           NETWORK,
72           LOCALHOST,
73           SERIAL_OUT,
74           SERIAL_IN
75       };
76
77       typedef sequence<DeviceReq> DeviceReqList;
78
79         /**
80          * setSafe:
81          * 
82          * Request a LoginHelper to enter "safe" mode, or
83          *         inform LoginHelper that "safe" mode may be exited.
84          *         If @safe_mode is %TRUE, but the return value is %FALSE,
85          *         the requesting client may wish to deny services to the 
86          *         %LoginHelper, for instance avoid raising its toplevels.
87          *         The return value is purely advisory, and no guarantees are 
88          *         intended about what the implementing LoginHelper will do 
89          *         to improve security when in "safe" mode.
90          *
91          * Returns: whether the %LoginHelper is now "safe" or not.
92          **/
93         boolean setSafe (in boolean safe_mode);
94
95         /**
96          * getDeviceReqs:
97          * 
98          * Query a @LoginHelper for the types of
99          *    device I/O it requires, in order to do its job.
100          *    For instance, a @LoginHelper which needs to receive keyboard
101          *    events will include 
102          *    Accessibility_LoginHelper_CORE_KEYBOARD in this list.
103          *
104          * Returns: A sequence of @LoginHelper_DeviceFlags indicating
105          *    the device I/O required in order to facilitate end-user access 
106          *    to the system.
107          **/
108         DeviceReqList getDeviceReqs ();
109
110         /**
111          * getRaiseWindows:
112          *
113          * Get a list of window IDs that need raising on login. 
114          *
115          * Returns: a sequence containing window IDS for toplevels which
116          *          need to be raised/made visible during user authentication, in
117          *          order for the @LoginHelper to facilitate end-user access to the 
118          *          system.
119          **/
120         WindowList getRaiseWindows ();
121
122         /**
123          * unImplemented:
124          *
125          * placeholders for future expansion.
126          */
127         void unImplemented ();
128         void unImplemented2 ();
129         void unImplemented3 ();
130         void unImplemented4 ();
131     };
132
133 };
134
135 #endif