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_text_AccessibleTextDocumentView_idl__
28#define __com_sun_star_text_AccessibleTextDocumentView_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//=============================================================================
48
49module com {  module sun {  module star {  module text {
50
51//=============================================================================
52
53/** The accessible view of a text document.
54
55	 @since OOo 1.1.2
56 */
57published service AccessibleTextDocumentView
58{
59	/** This interface gives access to any text, table, graphic, embedded
60	  	object and drawing that is at least partially visible on the screen.
61		The tree that arises from the children of this object reflects the
62		structure of the document as it is displayed.
63
64		<ul>
65			<li>The children returned by
66                <method scope="::com::sun::star::accessibility"
67                >XAccessibleContext::getAccessibleChild</method> all support
68                the interface XAccessible. Calling
69				<method scope="::com::sun::star::accessibility"
70                >XAccessible::getAccessibleContext</method> for these children
71                returns an object that supports one of the following
72                services.
73				<ul>
74					<li><type scope="::com::sun::star::text"
75                        >AccessibleHeaderFooterView</type>:
76						A child of this kind is returned for every header
77						and footer that is at least partially visible.
78					<li><type scope="::com::sun::star::text"
79                        >AccessibleFootnoteView</type>:
80						A child of this kind is returned for every footnote
81						that is at least partially visible.
82					<li><type scoep="::com::sun::star::text"
83                        >AccessibleEndnoteView</type>:
84						A child of this kind is returned for every endnote
85						that is at least partially visible.
86					<li><type scope="::com::sun::star::text"
87                        >AccessibleParagraphView</type>:
88						A child of this kind is returned for every paragraph
89						fragment that is contained in the document body and
90						is at least partially visible. A paragraph fragment is
91						the part of a paragraph that is displayed on a
92						certain page.
93					<li><type scope="::com::sun::star::table"
94                        >AccessibleTableView</type>:
95						A child of this kind is returned for every table
96						fragment that is contained in the document body
97						and is at least partially visible. A table fragment is
98						the part of a table that is displayed on a certain page.
99					<li><type scope="::com::sun::star::text"
100                        >AccessibleTextFrameView</type>: A child of this
101                        kind is returned for every text frame that is at
102                        least partially visible. These objects are children
103                        of the
104						<type>AccessibleTextDocumentView</type> regardless
105						whether they are bound to a page, a paragarph, a
106						frame, or a character. The only exception are text
107						frames that are bound as character. They are childen
108						of the paragraph they are contained in.
109					<li><type scope="::com::sun::star::text"
110                        >AccessibleTextGraphicObject</type>:
111						A child of this kind is returned for every graphic that
112						is at least partially visible. These objects are
113						children of the <type>AccessibleTextDocumentView</type>
114						regardless whether they are bound to a page, paragraph,
115						a frame or a character. The only exception
116						are text frames that are bound as character. They are
117						childen of the paragraph they are contained in.
118					<li><type scope="::com::sun::star::text"
119                        >AccessibleTextEmbeddedObject</type>:
120						A child of this kind is returned for every embedded
121						object that is at least partially visible.
122						These objects are children of the
123						<type>AccessibleTextDocumentView</type> regardless
124						whether they are bound to a page, a paragarph, a frame,
125						or a character.  They are childen of the paragraph they
126						are contained in.
127					<li><type scope="::com::sun::star::drawing"
128                        >AccessibleShape</type>: A child of this kind (or a
129                        derived interface) is returned for every shape that
130                        is at least partially visible. These objects are
131                        children of the
132                        <type>AccessibleTextDocumentView</type> regardless
133                        whether they are bound to a page, a paragraph, a
134                        frame or a character.
135				</ul>
136				<p>The following rules apply to the children order:
137				<ul>
138					<li>The logical order of paragraph and table fragments is
139						never changed.
140					<li>Headers appear immediately before the first paragraph or
141						table fragment of the header's page.
142					<li>Footnotes appear immediately after the last paragraph or
143						table fragment of the footnote's page. The logical order
144						of footnotes isn't changed.
145					<li>Endnotes appear immediately after the last footnote of
146						the endnote's page or after the last paragraph or
147						table fragment of this page if there are no footnotes.
148						The logical order of endnotes isn't changed.
149					<li>Footers appear immediately after the last endnote,
150						footnote, paragraph or table fragment of the footer's
151						page.
152					<li>Text frames, graphics, embedded objects and shapes that
153						are painted in the background appear before any other
154						children. Their order reflects the z order.
155					<li>Text frames, graphics, embedded objects and shapes
156						that are painted in the foreground appear behind any
157					   	other children. Their order reflects the z order,
158						with the exception of controls that appear really last,
159						but also keep the z order.
160				</ul>
161			<li>The role is <const scope="::com::sun::star::accessibility"
162                >AccessibleRole::DOCUMENT</const>.
163			<li>The name is "document view" (or the equivalent term
164				in application's language).
165			<li>The description also is "document view" (or the equivalent term
166				in application's language).
167			<li>There are no relation sets.
168			<li>The following states might be contained in the state set
169				returned by <method scope="::com::sun::star::accessibility"
170                >XAccessibleContext::getAccessibleStateSet</method>:
171				<ul>
172					<li><const scope="::com::sun::star::accessibility"
173                        >AccessibleStateType::DEFUNC</const> (indicates that
174                        the document window has been closed)
175					<li><const scope="::com::sun::star::accessibility"
176                        >AccessibleStateType::EDITABLE</const>
177					<li><const scope="::com::sun::star::accessibility"
178                        >AccessibleStateType::ENABLED</const> (always
179                        contained)
180					<li><const scope="::com::sun::star::accessibility"
181                        >AccessibleStateType::MULTI_SELECTABLE</const>
182                        (always contained)
183					<li><const scope="::com::sun::star::accessibility"
184                        >AccessibleStateType::OPAQUE</const> (always
185                        contained)
186					<li><const scope="::com::sun::star::accessibility"
187                        >AccessibleStateType::SHOWING</const>
188					<li><const scope="::com::sun::star::accessibility"
189                        >AccessibleStateType::VISIBLE</const>
190				</ul>
191			<li>Depending of the application's region setting, the locale is
192				the western, asian or complex default language of the document.
193		</ul>
194
195    */
196	interface ::com::sun::star::accessibility::XAccessibleContext;
197
198	/** This interface describes the graphical representation of a text
199	  	document view.
200    */
201	interface ::com::sun::star::accessibility::XAccessibleComponent;
202
203	/** This interface is for selecting the document's children. Selectable
204	  	are any children with the exception of headers, footers, footnotes
205		and endnotes, where only the grandchildren might be selectable.
206    */
207	interface ::com::sun::star::accessibility::XAccessibleSelection;
208
209	/** This is the interface for listeners
210    */
211	interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster;
212};
213
214//=============================================================================
215
216}; }; }; };
217
218#endif
219