/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org 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 version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/

#ifndef __com_sun_star_chart_AccessibleChartDocumentView_idl__
#define __com_sun_star_chart_AccessibleChartDocumentView_idl__

#ifndef __com_sun_star_accessibility_XAccessible_idl__
#include <com/sun/star/accessibility/XAccessible.idl>
#endif
#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

module com {  module sun {  module star {  module chart {

/** The <type>AccessibleChartDocumentView</type> service is supported
    by a Component that represents the view of a Chart document to
    provide an entry point to the document tree for accessibility.

    <p>An object that implements the <type>AccessibleChartDocumentView</type>
    service provides information about itself and about the chart
    subcomponents contained in the chart document displayed in a
    window.  This service gives a simplified view on the underlying
    implementation.  It tries both to keep the structure of the
    accessibility representation tree as simple as possible and
    provide as much relevant information as possible.</p>

    @since OOo 1.1.2
*/
published service AccessibleChartDocumentView
{
    /** Base interface for being accessible.  It gives access to the
        <type scope="::com::sun::star::accessibility">XAccessibleContext</type>
        interface.
    */
    interface ::com::sun::star::accessibility::XAccessible;

    /** Provide access to a Chart document's view.

        <p>You can access the following information:</p>
        <dl>
         <dt>Role</dt>
             <dd>The object's role is
             <const scope="com::sun::star::accessibility">AccessibleRole::DOCUMENT</const>.</dd>
         <dt>Name</dt>
             <dd>Its name is the document's name or the base name of the filename if
             no document name has been set explicitly.</dd>
         <dt>Description</dt>
             <dd>The description is the document's description or the
             full filename if no description has been set
             explicitly.</dd>
          <dt>Children</dt>
             <dd>The subcomponents of a chart.  This includes all kinds of
             titles, a legend and the diagram.  The diagram and the legend are
             the only children that themselves contain children.  The Chart
             subcomponents support the service
             <type>AccessibleChartElement</type>.  Additionally, there may be
             shapes a user added via the clipboard.  For details see the
             <type scope="::com::sun::star::drawing">AccessibleShape</type>.
             </dd>
         <dt>Parent</dt>
             <dd>The parent will usually be the window that contains the
             Chart document view.  It has to be set via implementation dependent
             ways.</dd>
         <dt>Relations</dt>
             <dd>At the moment relations are not supported.  The method
             <member scope="com::sun::star::accessibility">XAccessibleContext::getAccessibleRelationSet</member>
             will always return an empty set.</dd>
         <dt>States</dt>
             <dd>The following states are supported:
             <ul>
              <li><const scope="com::sun::star::accessibility">AccessibleStateType::DEFUNC</const>
                  is set if a document view becomes obsolete like when
                  the window, which displays the view, is closed.</li>
              <li><const scope="com::sun::star::accessibility">AccessibleStateType::ENABLED</const>
                  is always set unless the
                  <const scope="com::sun::star::accessibility">AccessibleStateType::DEFUNC</const>
                  state is set.</li>
              <li><const scope="com::sun::star::accessibility">AccessibleStateType::OPAQUE</const>
                  is always set.</li>
              <li><const scope="com::sun::star::accessibility">AccessibleStateType::SHOWING</const>
                  is always set unless the
                  <const scope="com::sun::star::accessibility">AccessibleStateType::DEFUNC</const>
                  state is set.</li>
              <li><const scope="com::sun::star::accessibility">AccessibleStateType::VISIBLE</const>
                  is always set unless the
                  <const scope="com::sun::star::accessibility">AccessibleStateType::DEFUNC</const>
                  state is set.</li>
             </ul>
             </dd>
         <dt>Locale</dt>
             <dd>Is the locale set at the document.</dd>
         <dt>Property change listeners</dt>
             <dd>They are supported to inform the
             listeners about changes in this object.</dd>
        </dl>
    */
    interface ::com::sun::star::accessibility::XAccessibleContext;

    /** Provide access to a Chart document's graphical representation.

        <p>The main purpose of this interface is to provide a bounding
        box of the currently visible area and to let the user find the
        subcomponents of a chart that cover a given test point.</p>

        <p>The accessible Chart subcomponents all support the service
        <type>AccessibleChartElement</type></p>

        @see AccessibleChartElement
    */
    interface ::com::sun::star::accessibility::XAccessibleComponent;
};

}; }; }; };

#endif
