/* -*- 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_chart_AccessibleChartDocumentView_idl__
#define __com_sun_star_chart_AccessibleChartDocumentView_idl__

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

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

/** The AccessibleChartDocumentView 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 AccessibleChartDocumentView
    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
*/
service AccessibleChartDocumentView
{
    /** Base interface for being accessible.  It gives access to the
        ::com::sun::star::accessibility::XAccessibleContext
        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
             com::sun::star::accessibility::AccessibleRole::DOCUMENT.</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
             AccessibleChartElement.  Additionally, there may be
             shapes a user added via the clipboard.  For details see the
             ::com::sun::star::drawing::AccessibleShape.
             </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
             com::sun::star::accessibility::XAccessibleContext::getAccessibleRelationSet()
             will always return an empty set.</dd>
         <dt>States</dt>
             <dd>The following states are supported:
             <ul>
              <li>com::sun::star::accessibility::AccessibleStateType::DEFUNC
                  is set if a document view becomes obsolete like when
                  the window, which displays the view, is closed.</li>
              <li>com::sun::star::accessibility::AccessibleStateType::ENABLED
                  is always set unless the
                  com::sun::star::accessibility::AccessibleStateType::DEFUNC
                  state is set.</li>
              <li>com::sun::star::accessibility::AccessibleStateType::OPAQUE
                  is always set.</li>
              <li>com::sun::star::accessibility::AccessibleStateType::SHOWING
                  is always set unless the
                  com::sun::star::accessibility::AccessibleStateType::DEFUNC
                  state is set.</li>
              <li>com::sun::star::accessibility::AccessibleStateType::VISIBLE
                  is always set unless the
                  com::sun::star::accessibility::AccessibleStateType::DEFUNC
                  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
        AccessibleChartElement</p>

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

}; }; }; };

#endif

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