/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


#ifndef __com_sun_star_text_AccessibleTextFrameView_idl__
#define __com_sun_star_text_AccessibleTextFrameView_idl__

#ifndef __com_sun_star_accessibility_XAccessibleContext_idl__
#include <com/sun/star/accessibility/XAccessibleContext.idl>
#endif

#ifndef __com_sun_star_accessibility_XAccessibleComponent_idl__
#include <com/sun/star/accessibility/XAccessibleComponent.idl>
#endif


#ifndef __com_sun_star_accessibility_XAccessibleEventBroadcaster_idl__
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.idl>
#endif

//=============================================================================

module com {  module sun {  module star {  module text {

//=============================================================================

/** The accessible view of text frames.

	 @since OpenOffice 1.1.2
 */
published service AccessibleTextFrameView
{
	/** This interface gives access to any paragraph fragment and table 
	    fragment that is contained in a text frame and at least
		partially visible on the screen.
		
		<ul>
			<li>The parent returned by 
                <method scope="::com::sun::star::accessibility"
                >XAccessibleContext::getAccessibleParent</type> is the
                accessible view of a paragraph if the text frame is bound as
                character, and the accessible view (or of a page in the page
                preview) of the document in any other case.
			<li>The children returned by 
                <method scope="::com::sun::star::accessibility"
                >XAccessibleContext::getAccessibleChild</type> all support the
                interface XAccessible. Calling
				<method scope="::com::sun::star::accessibility"
                >XAccessible::getAccessibleContext</type> for these children
                returns an object that supports one of the following
                services.
				<ul>
					<li><type scope="::com::sun::star::text"
                        >AccessibleParagraphView</type>: A child of this
                        kind is returned for every paragraph fragment that
                        is contained in the document body and is at least
                        partially visible. A paragraph fragment is the part
                        of a paragraph that is displayed on a certain page
                        or a certain column.
					<li><type scope="::com::sun::star::table"
                        >AccessibleTableView</type>: A child of this kind is
                        returned for every table fragment that is contained
                        in the document body and is at least partially
                        visible. A table fragment is the part of a table
                        that is displayed on a certain page or a certain
                        column.
				</ul>
				<p>The logical order of paragraph and table fragments is never
				   changed.
			<li>The role is <const scope="::com::sun::star::accessibility"
                >AccessibleRole::TEXT_FRAME</const>
			<li>The name is the one assigned to the text frame in the text
				document. This means that it is not internationalized.
			<li>The description is the one assigned to the text frame in the
				text document. This means that it is not internationalized. If
				no description has been set, the description equals the name.
			<li>There are no relations.
			<li>The following states might be contained in the state set
				returned by <method scope="::com::sun::star::accessibility"
				>XAccessibleContext::getAccessibleStateSet</method>:
				<ul>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::DEFUNC</const> (indicates that
                        the document window has been closed or the graphic
                        is not existing any longer)
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::EDITABLE</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::ENABLED</const> (always
                        contained)
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::OPAQUE</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::SELECTABLE</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::SELECTED</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::FOCUSABLE</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::FOCUSED</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::SHOWING</const>
					<li><const scope="::com::sun::star::accessibility"
                        >AccessibleStateType::VISIBLE</const>
				</ul>
			<li>The locale is the one the text document itself.
			<li>There are the two relations CONTENT_FLOWS_FROM and
				CONTENT_FLOWS_TO supported.
		</ul>

	 */
	interface ::com::sun::star::accessibility::XAccessibleContext;

	/** This interface describes the graphical representation of a 
	  	text frame.
	 */
	interface ::com::sun::star::accessibility::XAccessibleComponent;

	/** This is the interface for listeners */
	interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster;
};

//=============================================================================

}; }; }; };

#endif