/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */
#ifndef __com_sun_star_text_AccessibleTextFrameView_idl__
#define __com_sun_star_text_AccessibleTextFrameView_idl__

#include <com/sun/star/accessibility/XAccessibleContext.idl>
#include <com/sun/star/accessibility/XAccessibleComponent.idl>


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


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


/** The accessible view of text frames.

     @since OOo 1.1.2
 */
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
                ::com::sun::star::accessibility::XAccessibleContext::getAccessibleParent()
                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
                ::com::sun::star::accessibility::XAccessibleContext::getAccessibleChild()
                all support the interface XAccessible. Calling
                ::com::sun::star::accessibility::XAccessible::getAccessibleContext()
                for these children returns an object that supports one of the
                following services.
                <ul>
                    <li>::com::sun::star::text::AccessibleParagraphView:
                        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>::com::sun::star::table::AccessibleTableView:
                        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
                ::com::sun::star::accessibility::AccessibleRole::TEXT_FRAME
            <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
                ::com::sun::star::accessibility::XAccessibleContext::getAccessibleStateSet():
                <ul>
                    <li>::com::sun::star::accessibility::AccessibleStateType::DEFUNC
                        (indicates that
                        the document window has been closed or the graphic
                        is not existing any longer)
                    <li>::com::sun::star::accessibility::AccessibleStateType::EDITABLE
                    <li>::com::sun::star::accessibility::AccessibleStateType::ENABLED
                        (always contained)
                    <li>::com::sun::star::accessibility::AccessibleStateType::OPAQUE
                    <li>::com::sun::star::accessibility::AccessibleStateType::SELECTABLE
                    <li>::com::sun::star::accessibility::AccessibleStateType::SELECTED
                    <li>::com::sun::star::accessibility::AccessibleStateType::FOCUSABLE
                    <li>::com::sun::star::accessibility::AccessibleStateType::FOCUSED
                    <li>::com::sun::star::accessibility::AccessibleStateType::SHOWING
                    <li>::com::sun::star::accessibility::AccessibleStateType::VISIBLE
                </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

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
