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