1*d1766043SAndrew Rist/**************************************************************
2cdf0e10cSrcweir *
3*d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*d1766043SAndrew Rist * distributed with this work for additional information
6*d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9*d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10*d1766043SAndrew Rist *
11*d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*d1766043SAndrew Rist *
13*d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*d1766043SAndrew Rist * software distributed under the License is distributed on an
15*d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17*d1766043SAndrew Rist * specific language governing permissions and limitations
18*d1766043SAndrew Rist * under the License.
19*d1766043SAndrew Rist *
20*d1766043SAndrew Rist *************************************************************/
21*d1766043SAndrew Rist
22*d1766043SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir#ifndef __com_sun_star_accessibility_XAccessible_idl__
25cdf0e10cSrcweir#define __com_sun_star_accessibility_XAccessible_idl__
26cdf0e10cSrcweir
27cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__
28cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl>
29cdf0e10cSrcweir#endif
30cdf0e10cSrcweir
31cdf0e10cSrcweirmodule com { module sun { module star { module accessibility {
32cdf0e10cSrcweir
33cdf0e10cSrcweir published interface XAccessibleContext;
34cdf0e10cSrcweir
35cdf0e10cSrcweir/** This interface has to be implemented by any class that wants to be
36cdf0e10cSrcweir    accessible.
37cdf0e10cSrcweir
38cdf0e10cSrcweir    <p>It is used to provide access to the <type>XAccessibleContext</type>
39cdf0e10cSrcweir    interface but allows at the same time that that interface is implemented
40cdf0e10cSrcweir    by another class.</p>
41cdf0e10cSrcweir
42cdf0e10cSrcweir    <p>The distinction between the interfaces <type>XAccessible</type> and
43cdf0e10cSrcweir    <type>XAccessibleContext</type> makes it possible to split up the
44cdf0e10cSrcweir    implementation of the
45cdf0e10cSrcweir    class that is made accessible and the actual accessibility code into two
46cdf0e10cSrcweir    (mostly) independant parts.  The only necessary dependance is the
47cdf0e10cSrcweir    <member scope="XAccessible">getAccessibleContext()</member> function
48cdf0e10cSrcweir    that returns the accessible context.  This one-way link has to be
49cdf0e10cSrcweir    persistant in some sense: As long as there is at least one reference to
50cdf0e10cSrcweir    a specific <type>XAccessibleContext</type> object the
51cdf0e10cSrcweir    <type>XAccessible</type> object has to return the same context for every
52cdf0e10cSrcweir    call to <member scope="XAccessible">getAccessibleContext()</member>.
53cdf0e10cSrcweir    This is necessary to allow the use of object identity for comparing
54cdf0e10cSrcweir    accessibility contexts for being equal.</p>
55cdf0e10cSrcweir
56cdf0e10cSrcweir    @see AccessibleContext
57cdf0e10cSrcweir
58cdf0e10cSrcweir    @since OOo 1.1.2
59cdf0e10cSrcweir*/
60cdf0e10cSrcweirpublished interface XAccessible : ::com::sun::star::uno::XInterface
61cdf0e10cSrcweir{
62cdf0e10cSrcweir    /** Returns the AccessibleContext associated with this object.
63cdf0e10cSrcweir
64cdf0e10cSrcweir        <p>The idea to let this interface only return an
65cdf0e10cSrcweir        <type>XAccessibleContext</type> instead of directly supporting its
66cdf0e10cSrcweir        functions is to allow the seperation of the implementation of the
67cdf0e10cSrcweir        functions that make a class accessible from the implementation of
68cdf0e10cSrcweir        that class.  You may, of course, implement <type>XAccessible</type>
69cdf0e10cSrcweir        and <type>XAccessibleContext</type> in one class.</p>
70cdf0e10cSrcweir
71cdf0e10cSrcweir        @return
72cdf0e10cSrcweir            A reference to the object that contains the actual accessibility
73cdf0e10cSrcweir            information.
74cdf0e10cSrcweir
75cdf0e10cSrcweir        @see AccessibleContext
76cdf0e10cSrcweir	*/
77cdf0e10cSrcweir    XAccessibleContext getAccessibleContext ();
78cdf0e10cSrcweir};
79cdf0e10cSrcweir
80cdf0e10cSrcweir}; }; }; };
81cdf0e10cSrcweir
82cdf0e10cSrcweir#endif
83