/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: AccessibleTextFrameView.idl,v $
 *
 *  $Revision: 1.7 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-08 06:02:36 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/
#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 OOo 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
