1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef	__com_sun_star_accessibility_XAccessibleAction_idl__
29#define	__com_sun_star_accessibility_XAccessibleAction_idl__
30
31#ifndef __com_sun_star_uno_XInterface_idl__
32#include <com/sun/star/uno/XInterface.idl>
33#endif
34#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
35#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
36#endif
37
38module com { module sun { module star { module accessibility {
39
40 published interface XAccessibleKeyBinding;
41
42/** Implement this interface to give access to actions that can be executed
43    for accessible objects.
44
45    <p>Every accessible object that can be manipulated beyond its methods
46    exported over the accessibility API should support this interface to
47    expose all actions that it can perform.  Each action can be performed or
48    be queried for a description or associated key bindings.</p>
49
50    @since OOo 1.1.2
51*/
52published interface XAccessibleAction : ::com::sun::star::uno::XInterface
53{
54	/** Returns the number of accessible actions available in this object.
55
56        <p>If there are more than one, the first one is considered the
57        "default" action of the object.</p>
58
59        @return
60            The returned value of the number of actions is zero if there are
61            no actions.
62    */
63	long getAccessibleActionCount ();
64
65	/** Perform the specified Action on the object.
66
67        @param nIndex
68            This index specifies the action to perform.  If it lies outside
69            the valid range <FALSE/> is returned and no action is performed.
70        @return
71            Returns <TRUE/> if the action was successfully performed.  If
72            the action could not be performed successfully <FALSE/> is
73            returned.
74
75        @throws IndexOutOfBoundsException
76            If no action with the given index exists then an
77            <type scope="::com::sun::star::lang">IndexOutOfBoundsException</type>
78            exception is thrown.
79    */
80	boolean	doAccessibleAction ([in] long nIndex)
81        raises (::com::sun::star::lang::IndexOutOfBoundsException);
82
83	/** Returns a description of the specified action of the object.
84
85        @param nIndex
86            This index specifies the action of which to return a
87            description.  If it lies outside the valid range an empty string
88            is returned.
89
90        @return
91            The returned value is a localized string of the specified action.
92
93        @throws IndexOutOfBoundsException
94            If the given index lies not in the valid range then an
95            <type scope="::com::sun::star::lang">IndexOutOfBoundsException</type>
96            exception is thrown.
97    */
98	string getAccessibleActionDescription ([in] long nIndex)
99        raises (::com::sun::star::lang::IndexOutOfBoundsException);
100
101	/** Returns a key binding object, if there is one, associated with the
102        specified action.  Note that there can be several alternative key
103        bindings for an action.  See <type>XAccessibleKeyBinding</type> for
104        more information about how key bindings are represented.
105
106        @param nIndex
107            This index specifies the action of which to return the key
108            binding.
109
110        @return
111            The returned object describes a set of key bindings associated
112            with the specified action.
113
114        @throws IndexOutOfBoundsException
115            if the given index is not valid.
116    */
117    XAccessibleKeyBinding getAccessibleActionKeyBinding ([in] long nIndex)
118        raises (::com::sun::star::lang::IndexOutOfBoundsException);
119};
120
121}; }; }; };
122
123#endif
124