1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir *
3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir *
5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir *
7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir *
9*cdf0e10cSrcweir * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir *
11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir *
15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir *
21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir *
26*cdf0e10cSrcweir ************************************************************************/
27*cdf0e10cSrcweir
28*cdf0e10cSrcweir#ifndef __com_sun_star_drawing_AccessibleShape_idl__
29*cdf0e10cSrcweir#define __com_sun_star_drawing_AccessibleShape_idl__
30*cdf0e10cSrcweir
31*cdf0e10cSrcweir#ifndef __com_sun_star_accessibility_XAccessible_idl__
32*cdf0e10cSrcweir#include <com/sun/star/accessibility/XAccessible.idl>
33*cdf0e10cSrcweir#endif
34*cdf0e10cSrcweir#ifndef __com_sun_star_accessibility_XAccessibleContext_idl__
35*cdf0e10cSrcweir#include <com/sun/star/accessibility/XAccessibleContext.idl>
36*cdf0e10cSrcweir#endif
37*cdf0e10cSrcweir#ifndef __com_sun_star_accessibility_XAccessibleExtendedComponent_idl__
38*cdf0e10cSrcweir#include <com/sun/star/accessibility/XAccessibleExtendedComponent.idl>
39*cdf0e10cSrcweir#endif
40*cdf0e10cSrcweir
41*cdf0e10cSrcweirmodule com {  module sun {  module star {  module drawing {
42*cdf0e10cSrcweir
43*cdf0e10cSrcweir/** The <type>AccessibleShape</type> service is implemented by UNO shapes to
44*cdf0e10cSrcweir    provide accessibility information that describe the shapes' features.
45*cdf0e10cSrcweir    A UNO shape is any object that implements the <type
46*cdf0e10cSrcweir    scope="::com::sun::star::drawing">XShape</type> interface.
47*cdf0e10cSrcweir
48*cdf0e10cSrcweir    <p>The content of a draw page is modeled as tree of accessible shapes
49*cdf0e10cSrcweir    and accessible text paragraphs.  The root of this (sub-)tree is the
50*cdf0e10cSrcweir    accessible draw document view.  An accessible shape implements either
51*cdf0e10cSrcweir    this service or one of the 'derived' services
52*cdf0e10cSrcweir    <type>AccessibleGraphicShape</type> or <type>AccessibleOLEShape</type>.
53*cdf0e10cSrcweir    See the section Children in the description of the
54*cdf0e10cSrcweir    <type scope="::com::sun::star::accessibility"
55*cdf0e10cSrcweir    >XAccessibleContext</type> interface support for more details.</p>
56*cdf0e10cSrcweir
57*cdf0e10cSrcweir    <p>There are two services that extend this one:  the
58*cdf0e10cSrcweir    <type>AccessibleGraphicShape</type> and the
59*cdf0e10cSrcweir    <type>AccessibleOLEShape</type> services provide additional interfaces.
60*cdf0e10cSrcweir    See there for details.</p>
61*cdf0e10cSrcweir
62*cdf0e10cSrcweir    <p>A shape object is either fully or partially visible on the screen or
63*cdf0e10cSrcweir    has set the <const scope="::com::sun::star::accessibility"
64*cdf0e10cSrcweir    >AccessibleStateType::DEFUNC</const> state to indicate that it is no longer
65*cdf0e10cSrcweir    actively supported by its parent.</p>
66*cdf0e10cSrcweir
67*cdf0e10cSrcweir    <p>Each shape object that has not set the DEFUNC state has a valid
68*cdf0e10cSrcweir    parent.  That is either the containing draw page or a group shape or a
69*cdf0e10cSrcweir    3D scene object.</p>
70*cdf0e10cSrcweir
71*cdf0e10cSrcweir	 @since OOo 1.1.2
72*cdf0e10cSrcweir*/
73*cdf0e10cSrcweirpublished service AccessibleShape
74*cdf0e10cSrcweir{
75*cdf0e10cSrcweir    /** Base interface for being accessible.  It gives access to the
76*cdf0e10cSrcweir        <type scope="::com::sun::star::accessibility">XAccessibleContext</type>
77*cdf0e10cSrcweir        interface.
78*cdf0e10cSrcweir    */
79*cdf0e10cSrcweir    interface ::com::sun::star::accessibility::XAccessible;
80*cdf0e10cSrcweir
81*cdf0e10cSrcweir    /** Give access to the structural information of a shape.
82*cdf0e10cSrcweir
83*cdf0e10cSrcweir        <p>You can access the following information for the shape being made
84*cdf0e10cSrcweir        accessible:
85*cdf0e10cSrcweir        <ul>
86*cdf0e10cSrcweir        <li>Role: The role of all shapes is <const
87*cdf0e10cSrcweir            scope="com::sun::star::accessibility"
88*cdf0e10cSrcweir            >AccessibleRole::SHAPE</const>.</li>
89*cdf0e10cSrcweir        <li>Name: The name of a shape is its localized type name.</li>
90*cdf0e10cSrcweir        <li>Description: Descriptions are localized and start with the
91*cdf0e10cSrcweir            shape's type and style.  After that follow some properties that
92*cdf0e10cSrcweir            differ from the defaults with respect to the style.
93*cdf0e10cSrcweir        <li>Children: The children of a shape are either other accessible
94*cdf0e10cSrcweir            shapes or accessible text paragraphs.  Only group shapes, 3D scene
95*cdf0e10cSrcweir            shapes, and OLE shapes may contain other shapes as children.
96*cdf0e10cSrcweir            Some of the shapes may have text paragraphs as (additional)
97*cdf0e10cSrcweir            children.  See <type scope="::com::sun::star::text"
98*cdf0e10cSrcweir            >AccessibleParagraphView</type> for details of
99*cdf0e10cSrcweir            how this text is represented.</li>
100*cdf0e10cSrcweir        <li>Parent: The parent is either the document view as represented by
101*cdf0e10cSrcweir            <type>AccessibleDrawDocumentView</type> or a group shape, 3D
102*cdf0e10cSrcweir            scene shape, or OLE shape.</li>
103*cdf0e10cSrcweir        <li>Relations: Are set and maintained from the outside.  See the
104*cdf0e10cSrcweir        service description of the object that has accessible shapes as
105*cdf0e10cSrcweir        children for details.</li>
106*cdf0e10cSrcweir        <li>States: The states supported by this service are:
107*cdf0e10cSrcweir            <ul>
108*cdf0e10cSrcweir            <li><p><const scope="com::sun::star::accessibility"
109*cdf0e10cSrcweir                >AccessibleStateType::DEFUNC</const> is set if an accessible
110*cdf0e10cSrcweir                shape is not visible but still existent for some reason.
111*cdf0e10cSrcweir                This should not really happen and is a sign that someone,
112*cdf0e10cSrcweir                e.g. an AT-Tool holds references to such a shape.  The
113*cdf0e10cSrcweir                reason for this is that either the owner of the accessible
114*cdf0e10cSrcweir                shape did not remove it from its list of children or that
115*cdf0e10cSrcweir                the AT-Tool does not care for the events indicating
116*cdf0e10cSrcweir                this.</p>
117*cdf0e10cSrcweir                <p>Usually an object that has the <const
118*cdf0e10cSrcweir                scope="com::sun::star::accessibility"
119*cdf0e10cSrcweir                >AccessibleStateType::DEFUNC</const> state set has already
120*cdf0e10cSrcweir                been disposed and subsequent calls to this object result in
121*cdf0e10cSrcweir                <type scope="::com::sun::star::lang">DisposedException</type>
122*cdf0e10cSrcweir                exceptions.</p>
123*cdf0e10cSrcweir                <p>If this state is set then no other of the states below is
124*cdf0e10cSrcweir                set.  This  is also true for the states that are otherwise
125*cdf0e10cSrcweir                allways set (which  makes 'allways' more of a sort of
126*cdf0e10cSrcweir                'normally').</p></li>
127*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
128*cdf0e10cSrcweir                >AccessibleStateType::EDITABLE</const></li> is always set.
129*cdf0e10cSrcweir                This state is interpreted to mean that not only text but
130*cdf0e10cSrcweir                also other, graphical, properties of a shape can be modified.
131*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
132*cdf0e10cSrcweir                >AccessibleStateType::ENABLED</const> is always set.</li>
133*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
134*cdf0e10cSrcweir                >AccessibleStateType::FOCUSABLE</const> is always set.</li>
135*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
136*cdf0e10cSrcweir                >AccessibleStateType::FOCUSED</const> is set according to
137*cdf0e10cSrcweir                whether the shape currently has the focus.</li>
138*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
139*cdf0e10cSrcweir                >AccessibleStateType::MULTI_LINE</const> is set if a shape
140*cdf0e10cSrcweir                supports the <type scope="::com::sun::star::accessibility"
141*cdf0e10cSrcweir                >XAccessibleText</type> interface.</li>
142*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
143*cdf0e10cSrcweir                >AccessibleStateType::OPAQUE</const> is set for certain shapes
144*cdf0e10cSrcweir                with certain attributes like for a filled rectangle.</li>
145*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
146*cdf0e10cSrcweir                >AccessibleStateType::RESIZABLE</const> is always set.</li>
147*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
148*cdf0e10cSrcweir                >AccessibleStateType::SELECTABLE</const> is always set.</li>
149*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
150*cdf0e10cSrcweir                >AccessibleStateType::SELECTED</const> is set according to
151*cdf0e10cSrcweir                whether the shape is currently selected.</li>
152*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
153*cdf0e10cSrcweir                >AccessibleStateType::SHOWING</const> is always set.</li>
154*cdf0e10cSrcweir            <li><const scope="com::sun::star::accessibility"
155*cdf0e10cSrcweir                >AccessibleStateType::VISIBLE</const> is always set.</li>
156*cdf0e10cSrcweir            </ul>
157*cdf0e10cSrcweir        <li>Locale: The shape returns the locale of its parent.</li>
158*cdf0e10cSrcweir        <li>Property change listeners: Property change listeners that are
159*cdf0e10cSrcweir            registered with a shape are informed of the usual events.</li>
160*cdf0e10cSrcweir        </ul>
161*cdf0e10cSrcweir    */
162*cdf0e10cSrcweir    interface ::com::sun::star::accessibility::XAccessibleContext;
163*cdf0e10cSrcweir
164*cdf0e10cSrcweir    /** Give access to the graphical representation of a shape.
165*cdf0e10cSrcweir
166*cdf0e10cSrcweir        <p>The bounding box returned by the <method
167*cdf0e10cSrcweir        scope="::com::sun::star::accessibility"
168*cdf0e10cSrcweir        >XAccessibleComponent::getBounds</method> function returns the
169*cdf0e10cSrcweir        shape's bounding box clipped at its parent's bounding box</p>
170*cdf0e10cSrcweir
171*cdf0e10cSrcweir        <p>An accessible shape tries as best as it can to return proper
172*cdf0e10cSrcweir        values for calls to the
173*cdf0e10cSrcweir        <method scope="::com::sun::star::accessibility"
174*cdf0e10cSrcweir        >XAccessibleExtendedComponent::getForeground</method> and
175*cdf0e10cSrcweir        <method scope="::com::sun::star::accessibility"
176*cdf0e10cSrcweir        >XAccessibleExtendedComponent::getBackground</method> functions.
177*cdf0e10cSrcweir        If the shape is painted with a uniform and non-transparent color
178*cdf0e10cSrcweir        then the returned colors may differ from the ones visible on the
179*cdf0e10cSrcweir        screen.</p>
180*cdf0e10cSrcweir
181*cdf0e10cSrcweir        <p>Key bindings are not supported at the moment</p>
182*cdf0e10cSrcweir    */
183*cdf0e10cSrcweir    interface ::com::sun::star::accessibility::XAccessibleComponent;
184*cdf0e10cSrcweir
185*cdf0e10cSrcweir    /** Give extended access to the graphical representation of a shape.
186*cdf0e10cSrcweir
187*cdf0e10cSrcweir        <p>The functions <method
188*cdf0e10cSrcweir        scope="::com::sun::star::accessibility"
189*cdf0e10cSrcweir        >XAccessibleExtendedComponent::getFont</method>,
190*cdf0e10cSrcweir        <method scope="::com::sun::star::accessibility"
191*cdf0e10cSrcweir        >XAccessibleExtendedComponent::getTitledBorderText</method>, and
192*cdf0e10cSrcweir        <method scope="::com::sun::star::accessibility"
193*cdf0e10cSrcweir        >XAccessibleExtendedComponent::getToolTipText</method> are not
194*cdf0e10cSrcweir        supported and return empty references respectively empty
195*cdf0e10cSrcweir        strings.</p>
196*cdf0e10cSrcweir
197*cdf0e10cSrcweir        <p>The support of this interface is optional to reduce overhead in
198*cdf0e10cSrcweir        case that no text is displayed and color information can not be
199*cdf0e10cSrcweir        determined with an acceptable cost.</p>
200*cdf0e10cSrcweir    */
201*cdf0e10cSrcweir    [optional] interface ::com::sun::star::accessibility::XAccessibleExtendedComponent;
202*cdf0e10cSrcweir};
203*cdf0e10cSrcweir
204*cdf0e10cSrcweir}; }; }; };
205*cdf0e10cSrcweir
206*cdf0e10cSrcweir#endif
207