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