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_XAccessibleStateSet_idl__
29#define __com_sun_star_accessibility_XAccessibleStateSet_idl__
30
31#ifndef __com_sun_star_accessibility_AccessibleStateType_idl__
32#include <com/sun/star/accessibility/AccessibleStateType.idl>
33#endif
34
35#ifndef __com_sun_star_uno_XInterface_idl__
36#include <com/sun/star/uno/XInterface.idl>
37#endif
38
39module com { module sun { module star { module accessibility {
40
41 published interface XAccessible;
42
43/** Implement this interface to represent a set of states.
44
45    <p>The interface <type>XAccessibleStateSet</type> represents a set of
46    states of an accessible object.  It can hold any combination of states
47    defined by the constants collection
48    <type>AccessibleStateType</type>.</p>
49
50    @since OOo 1.1.2
51*/
52published interface XAccessibleStateSet : ::com::sun::star::uno::XInterface
53{
54    /** Checks whether the current state set is empty.
55
56        @return
57            Returns <TRUE/> if there is no state in this state set and
58            <FALSE/> if there is at least one set state in it.
59    */
60    boolean isEmpty ();
61
62    /** Checks if the given state is a member of the state set of the called
63        object.
64
65        @param aState
66            The state for which to check membership.  This has to be one of
67            the constants of <type>AccessibleStateType</type>.
68
69        @return
70            Returns <TRUE/> if the given state is a memeber of this object's
71            state set and <FALSE/> otherwise.
72    */
73    boolean contains ([in] short aState);
74
75    /** Checks if all of the given states are in the state set of the called
76        object.
77
78        @param aStateSet
79            This sequence of states is interpreted as set and every of its
80            members, duplicates are ignored, is checked for membership in
81            this object's state set.  Each state has to be one of the
82            constants of <type>AccessibleStateType</type>.
83
84        @return
85            Returns <TRUE/> if all states of the given state set are members
86            of this object's state set.  <FALSE/> is returned if at least
87            one of the states in the given state is not a member of this
88            object's state set.
89    */
90    boolean containsAll ([in] sequence<short> aStateSet);
91
92    /** Get all currently set states as a sequence of state ids.
93
94        <p>The purpose of this function is to reduce the communication
95        between accessibility objects and AT.  Without this function an
96        AT-Tool had to call <member>contains()</member> for every state
97        type.  Now a single call is sufficient.</p>
98
99        @return
100            The returned sequence contains one entry for every currently set
101            state.  This entry is the id of that state.  The order of the
102            states in the sequence is undefined.
103    */
104    sequence<short> getStates ();
105};
106
107}; }; }; };
108
109#endif
110