/* -*- 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_sheet_AccessiblePageHeaderFooterAreasView_idl__
#define __com_sun_star_sheet_AccessiblePageHeaderFooterAreasView_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 sheet {


/** The accessible view of the Header/Footer in a spreadsheet page preview

     @since OOo 1.1.2

 */
service AccessiblePageHeaderFooterAreasView
{
    /** This interface gives access to the three Header/Footer areas in the
        page preview.

    <ul>
        <li>The parent returned by
        ::com::sun::star::accessibility::XAccessibleContext::getAccessibleParent()
            is the accessible spreadsheet page preview.</li>
        <li>The children returned by
            ::com::sun::star::accessibility::XAccessibleContext::getAccessibleChild()
            all support the interface
            ::com::sun::star::accessibility::XAccessible.
            Calling
            ::com::sun::star::accessibility::XAccessible::getAccessibleContext()
            for these children
            returns an object that supports one of the following services.</li>
        <ul>
            <li>::com::sun::star::text::AccessibleHeaderFooterView:
                A child where calling
                ::com::sun::star::accessibility::XAccessibleContext::getAccessibleChild()
                an object that supports this service is returned for
                every header and footer that is at least partially visible.</li>
        </ul>
        <p>The following rules apply to the children order.</p>
        <ul>
            <li>The first is the left area, then the center area and the last
            is the right area.</li>
        </ul>
        <li>The description is ???.</li>
        <li>The name is Header or Footer respectively.</li>
        <li>The role is ::com::sun::star::accessibility::AccessibleRole::HEADER
            or ::com::sun::star::accessibility::AccessibleRole::FOOTER.</li>
        <li>There are no relations.</li>
        <li>The following states are supported:
            <ul>
                <li>::com::sun::star::accessibility::AccessibleStateType::DEFUNC
                    is always false until the preview is closed.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::EDITABLE
                    is always false,
                    because the document is not editable in the page preview.
                    So it is left out of the list.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::ENABLED
                    is always true.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::MULTI_LINE
                    makes no sense on
                    a document and so it is left out of the list.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::MULTI_SELECTABLE
                    is always
                    false, because in a page preview a selection is not
                    possible. So it is left out of the list.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::OPAQUE
                    is always true.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::RESIZABLE
                    is always false,
                    because you can resize the window of the page preview, but
                    not the page preview itself. So it is left out of the
                    list.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::SELECTABLE
                    is always false,
                    because in the page preview is no selection possible. So it
                    is left out of the list.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::SELECTED
                    is always false,
                    because in the page preview is no selection possible. So it
                    is left out of the list.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::SHOWING
                    is true if the
                    Bounding Box lies in the Bounding Box of the parent.
                    Otherwise it is false.</li>
                <li>::com::sun::star::accessibility::AccessibleStateType::VISIBLE
                    is always true.</li>
            </ul>
        </li>
    </ul>

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

    /** This interface gives access to the visibility of the document.
    */
    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: */
