1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_accessibility_XAccessibleSelection_idl__
25*b1cdbd2cSJim Jagielski#define __com_sun_star_accessibility_XAccessibleSelection_idl__
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__
28*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl>
29*b1cdbd2cSJim Jagielski#endif
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module accessibility {
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski published interface XAccessible;
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski/** Implement this interface to represent a selection of accessible objects.
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielski    <p>This interface is the standard mechanism to obtain and modify the
41*b1cdbd2cSJim Jagielski    currently selected children.  Every object that has children that can be
42*b1cdbd2cSJim Jagielski    selected should support this interface.</p>
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski    <p>The <type>XAccessibleSelection</type> interface has to be implemented
45*b1cdbd2cSJim Jagielski    in conjunction with the <type>XAccessibleContext</type> interface that
46*b1cdbd2cSJim Jagielski    provides the children on which the first operates.</p>
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielski    <p>It depends on the class implementing this interface, whether it
49*b1cdbd2cSJim Jagielski    supports single or multi selection.</p>
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski    @since OpenOffice 1.1.2
52*b1cdbd2cSJim Jagielski*/
53*b1cdbd2cSJim Jagielskipublished interface XAccessibleSelection : ::com::sun::star::uno::XInterface
54*b1cdbd2cSJim Jagielski{
55*b1cdbd2cSJim Jagielski    /** Selects the specified <type>Accessible</type> child of the
56*b1cdbd2cSJim Jagielski        object.
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim Jagielski        <p>Depending on the implementing class the child is added to the
59*b1cdbd2cSJim Jagielski        current set a selected children (multi selection) or a previously
60*b1cdbd2cSJim Jagielski        selected child is deselected first (single selection).</p>
61*b1cdbd2cSJim Jagielski
62*b1cdbd2cSJim Jagielski        @param nChildIndex
63*b1cdbd2cSJim Jagielski            Index of the child which is to add to the selection.  This index
64*b1cdbd2cSJim Jagielski            referes to all the children of this object.
65*b1cdbd2cSJim Jagielski        @throws ::com::sun::star::lang::IndexOutOfBoundsException
66*b1cdbd2cSJim Jagielski            if the given index does not lie in the valid range of 0 up to
67*b1cdbd2cSJim Jagielski            the result of
68*b1cdbd2cSJim Jagielski            <member>XAccessibleContext::getAccessibleChildCount()</member>-1.
69*b1cdbd2cSJim Jagielski    */
70*b1cdbd2cSJim Jagielski    void selectAccessibleChild ([in] long nChildIndex)
71*b1cdbd2cSJim Jagielski        raises (::com::sun::star::lang::IndexOutOfBoundsException);
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim Jagielski    /** Determines if the specified child of this object is selected.
74*b1cdbd2cSJim Jagielski
75*b1cdbd2cSJim Jagielski        @param nChildIndex
76*b1cdbd2cSJim Jagielski            Index of the child for which to detect whether it is selected.
77*b1cdbd2cSJim Jagielski            This index referes to all the children of this object.
78*b1cdbd2cSJim Jagielski
79*b1cdbd2cSJim Jagielski        @return
80*b1cdbd2cSJim Jagielski            Returns <TRUE/> if the specified child is selected and <FALSE/>
81*b1cdbd2cSJim Jagielski            if it is not selected.
82*b1cdbd2cSJim Jagielski        @throws ::com::sun::star::lang::IndexOutOfBoundsException
83*b1cdbd2cSJim Jagielski            if the given index does not lie in the valid range of 0 up to
84*b1cdbd2cSJim Jagielski            the result of
85*b1cdbd2cSJim Jagielski            <member>XAccessibleContext::getAccessibleChildCount()</member>-1.
86*b1cdbd2cSJim Jagielski    */
87*b1cdbd2cSJim Jagielski    boolean isAccessibleChildSelected ([in] long nChildIndex)
88*b1cdbd2cSJim Jagielski        raises (::com::sun::star::lang::IndexOutOfBoundsException);
89*b1cdbd2cSJim Jagielski
90*b1cdbd2cSJim Jagielski    /** Clears the selection, so that no children of the
91*b1cdbd2cSJim Jagielski        object are selected.
92*b1cdbd2cSJim Jagielski    */
93*b1cdbd2cSJim Jagielski    [oneway] void clearAccessibleSelection ();
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski    /** Select all children.
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski        <p>Causes every child of the object to be selected if the object
98*b1cdbd2cSJim Jagielski        supports multiple selections.  If multiple selection is not
99*b1cdbd2cSJim Jagielski        supported then the first child, if it exists, is selected and all
100*b1cdbd2cSJim Jagielski        other children are deselected.</p>
101*b1cdbd2cSJim Jagielski    */
102*b1cdbd2cSJim Jagielski    [oneway] void selectAllAccessibleChildren ();
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski    /** Returns the number of Accessible children that are currently
105*b1cdbd2cSJim Jagielski        selected.
106*b1cdbd2cSJim Jagielski
107*b1cdbd2cSJim Jagielski        <p>This number specifies the valid interval of indices that can be
108*b1cdbd2cSJim Jagielski        used as arguments for the methods
109*b1cdbd2cSJim Jagielski        <member>XAccessibleSelection::getSelectedChild</member> and
110*b1cdbd2cSJim Jagielski        <member>XAccessibleSelection::deselectSelectedChild</member>.</p>
111*b1cdbd2cSJim Jagielski
112*b1cdbd2cSJim Jagielski        @return
113*b1cdbd2cSJim Jagielski            Returns the number of selected children of this object or 0 if
114*b1cdbd2cSJim Jagielski            no child is selected.
115*b1cdbd2cSJim Jagielski    */
116*b1cdbd2cSJim Jagielski    long getSelectedAccessibleChildCount ();
117*b1cdbd2cSJim Jagielski
118*b1cdbd2cSJim Jagielski    /** Returns the specified selected Accessible child.
119*b1cdbd2cSJim Jagielski
120*b1cdbd2cSJim Jagielski        @param nSelectedChildIndex
121*b1cdbd2cSJim Jagielski            This index refers only to the selected children, not to all the
122*b1cdbd2cSJim Jagielski            children of this object.  Even if all children are selected, the
123*b1cdbd2cSJim Jagielski            indices enumerating the selected children need not be the same
124*b1cdbd2cSJim Jagielski            as those enumerating all children.  If only single selection is
125*b1cdbd2cSJim Jagielski            supported the only valid value is 0.
126*b1cdbd2cSJim Jagielski
127*b1cdbd2cSJim Jagielski        @return
128*b1cdbd2cSJim Jagielski            If the index is valid, i.e. not negative and lower than the
129*b1cdbd2cSJim Jagielski            number of selected children, then a valid reference to the
130*b1cdbd2cSJim Jagielski            corresponding <type>XAccessible</type> child is returned.
131*b1cdbd2cSJim Jagielski            Otherwise an exception is thrown.
132*b1cdbd2cSJim Jagielski        @throws ::com::sun::star::lang::IndexOutOfBoundsException
133*b1cdbd2cSJim Jagielski            if the given index does not lie in the valid range of 0 up to
134*b1cdbd2cSJim Jagielski            the result of
135*b1cdbd2cSJim Jagielski            <member>XAccessibleRelationSet::getAccessibleChildCount()</member>-1.
136*b1cdbd2cSJim Jagielski    */
137*b1cdbd2cSJim Jagielski    XAccessible getSelectedAccessibleChild ([in] long nSelectedChildIndex)
138*b1cdbd2cSJim Jagielski        raises (::com::sun::star::lang::IndexOutOfBoundsException);
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski    /** Removes the specified child from the set of this object's
141*b1cdbd2cSJim Jagielski        selected children.  Note that not all applications support
142*b1cdbd2cSJim Jagielski        deselection: calls to this method may be silently ignored.
143*b1cdbd2cSJim Jagielski
144*b1cdbd2cSJim Jagielski        @param nChildIndex
145*b1cdbd2cSJim Jagielski            This index refers to all children not just the selected ones.
146*b1cdbd2cSJim Jagielski            If the specified child is not selected or it can not be
147*b1cdbd2cSJim Jagielski            deselected for any reason then the method call is silently
148*b1cdbd2cSJim Jagielski            ignored.
149*b1cdbd2cSJim Jagielski        @throws ::com::sun::star::lang::IndexOutOfBoundsException
150*b1cdbd2cSJim Jagielski            if the given index does not lie in the valid range of 0 up to,
151*b1cdbd2cSJim Jagielski            but not including, the result of
152*b1cdbd2cSJim Jagielski            <member scope="XAccessibleContext">getAccessibleChildCount()</member>.
153*b1cdbd2cSJim Jagielski    */
154*b1cdbd2cSJim Jagielski    void deselectAccessibleChild ([in] long nChildIndex)
155*b1cdbd2cSJim Jagielski        raises (::com::sun::star::lang::IndexOutOfBoundsException);
156*b1cdbd2cSJim Jagielski};
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski}; }; }; };
159*b1cdbd2cSJim Jagielski
160*b1cdbd2cSJim Jagielski#endif
161