1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_sheet_AccessibleSpreadsheetDocumentView_idl__
24#define __com_sun_star_sheet_AccessibleSpreadsheetDocumentView_idl__
25
26#ifndef __com_sun_star_accessibility_XAccessibleContext_idl__
27#include <com/sun/star/accessibility/XAccessibleContext.idl>
28#endif
29
30#ifndef __com_sun_star_accessibility_XAccessibleComponent_idl__
31#include <com/sun/star/accessibility/XAccessibleComponent.idl>
32#endif
33
34#ifndef __com_sun_star_accessibility_XAccessibleSelection_idl__
35#include <com/sun/star/accessibility/XAccessibleSelection.idl>
36#endif
37
38#ifndef __com_sun_star_accessibility_XAccessibleEventBroadcaster_idl__
39#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.idl>
40#endif
41
42//=============================================================================
43
44module com {  module sun {  module star {  module sheet {
45
46//=============================================================================
47
48/** The accessible view of a spreadsheet document
49
50	 @since OpenOffice 1.1.2
51
52 */
53published service AccessibleSpreadsheetDocumentView
54{
55	/** This interface gives access to any object that is contained in this
56		document.
57
58	<ul>
59		<li>The parent returned by <method>getAccessibleParent</method>
60			is the window which contains the view of these document.</li>
61		<li>The children returned by <method>getAccessibleChild</method> all
62			support the interface XAccessible. Calling
63			<method>getAccessibleContext</method> for these children returns
64			an object that supports one of the following services.</li>
65		<ul>
66			<li><type scope="::com::sun::star::sheet">AccessibleSpreadsheet</type>:
67				A child where calling <method>getAccessibleChild</method>
68				an object that supports this service is returned for
69				the current spreadsheet which is showing in this document
70				window. There is every time one child which supports this
71				service, because it is only possible to have one spreadsheet
72				in the current document window.</li>
73			<li><type scope="::com::sun::star::drawing">AccessibleShape</type>:
74				A child where calling <method>getAccessibleChild</method>
75				an object that supports this service is returned
76				for every shape that is at the current table. These
77				objects are children of the
78				<type>AccessibleSpreadsheetDocumentView</type> regardless
79				whether they are bound to a table or a cell.</li>
80			<li><type scope="::com::sun::star::text">AccessibleParagraphView</type>:
81				A child where calling <method>getAccessibleChild</method>
82				an object that supports this service is returned for
83				the current cell in edit mode. This is necessary to
84				have an object which allows event listeners. It exists
85				only if a cell is in edit mode.</li>
86			<li><type scope="::com::sun::star::accessibility">AccessibleContext</type>:
87				A child where calling <method>getAccessibleChild</method>
88				an object that supports this service is returned for
89				the current OLE object in edit mode. It exists
90				only if a OLE object is in edit mode.</li>
91		</ul>
92		<p>The following rules apply to the children order. General it
93			represents the paint order. The object in the background came
94			first and than all over lying objects. The last painted object
95			is also the last child.</p>
96		<ul>
97			<li>Graphics, embedded objects and shapes appear
98				before the other childs if they are painted in the
99				background. Their order reflects the z order.</li>
100			<li>The current table is painted after the background and so it
101				comes after all background objects.</li>
102			<li>Graphics, embedded objects and shapes appear
103				behind any other children except controls if they are
104				painted in the foreground. Their order reflects the z order.</li>
105			<li>Controls appear behind the other graphic objects. Their order
106				reflects the z order.</li>
107			<li>The temporary object for the cell or OLE in edit mode (only
108				one can exist in the same time) is the last object.</li>
109		</ul>
110		<li>The description is ???.</li>
111		<li>The name is Spreadsheet Document View with a unique number.</li>
112		<li>The role is <const scope="::com::sun::star::accessibility">AccessibleRole::DOCUMENT</const></li>
113		<li>There are no relations.</li>
114		<li>The following states are supported:
115			<ul>
116				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::DEFUNC</const> is always false until the document is
117					closed.</li>
118				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::EDITABLE</const> is always true.</li>
119				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::ENABLED</const> is always true.</li>
120				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::MULTI_LINE</const> makes no sense in on a document and
121					so it is left out of the list.</li>
122				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::MULTI_SELECTABLE</const> is always false, because a
123				document is not selectable. Only the children are
124				selectable. So it is left out of the list.</li>
125				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::OPAQUE</const> is always true.</li>
126				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::RESIZEABLE</const> is always false, because you can
127					resize the window, but not the document. So it is left out
128					of the list.</li>
129				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::SELECTABLE</const> is always false, because a
130					document is not selectable. Only the children are
131					selectable. So it is left out of the list.</li>
132				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::SELECTED</const> is always false, because a
133					document is not selectable. Only the children are
134					selectable. So it is left out of the list.</li>
135				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::SHOWING</const>Is true if the Bounding Box lies in
136					the Bounding Box of the parent. Otherwise it is false.</li>
137				<li><const scope="::com::sun::star::accessibility">AccessibleStateType::VISIBLE</const>Is always true.</li>
138			</ul>
139		</li>
140	</ul>
141
142	 */
143	interface ::com::sun::star::accessibility::XAccessibleContext;
144
145	/** This interface gives access to the visibility of the document.
146	*/
147	interface ::com::sun::star::accessibility::XAccessibleComponent;
148
149	/** This interface is for selecting the document's children like
150	  	shapes or the whole table.
151	 */
152	interface ::com::sun::star::accessibility::XAccessibleSelection;
153
154	/** This is the interface for listeners */
155	interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster;
156};
157
158//=============================================================================
159
160}; }; }; };
161
162#endif
163