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

#include <ooo/vba/XCollection.idl>
#include <ooo/vba/excel/XGraphicObjects.idl>

//=============================================================================

/*  Note: This file collects all compatibility interfaces for collections of
    drawing objects and drawing controls embedded in sheets. All these symbols
    are deprecated in VBA and kept for compatibility with old VBA scripts. */

//=============================================================================

module ooo {  module vba { module excel {

//=============================================================================

/** Collections that implement this interface provide access to a specific type
    of drawing objects in a single sheet.

    <p>The following sheet symbols represent collections of line objects, and
    therefore implement this interface:</p>
    <ul><li>Arcs: arc objects, and</li>
    <li>Lines: straight line ojects.</li></ul>

    <p>These symbols are now deprecated in VBA but kept for compatibility with
    old VBA scripts.</p>
 */
interface XLineObjects : com::sun::star::uno::XInterface
{
    /** Adds a new line object to the sheet this collection belongs to. The
        type of the object is determined by the type of the collection.

        @param X1  Position of the first X coordinate in points (1/72 inch).
        @param Y1  Position of the first Y coordinate in points (1/72 inch).
        @param X2  Position of the last X coordinate in points (1/72 inch).
        @param Y2  Position of the last Y coordinate in points (1/72 inch).

        @return  The created line object.
     */
    any Add( [in] any X1, [in] any Y1, [in] any X2, [in] any Y2 );
};

//=============================================================================

/** A collection providing access to all polygon objects in a single sheet.

    <p>This symbol is now deprecated in VBA but kept for compatibility with old
    VBA scripts.</p>
 */
interface XDrawings : com::sun::star::uno::XInterface
{
    /** Adds a new polygon object to the sheet this collection belongs to.

        @param X1  Position of the first X coordinate in points (1/72 inch).
        @param Y1  Position of the first Y coordinate in points (1/72 inch).
        @param X2  Position of the last X coordinate in points (1/72 inch).
        @param Y2  Position of the last Y coordinate in points (1/72 inch).
        @param Closed  True = outline closed (last and first point connected).

        @return  The created polygon object.
     */
    any Add( [in] any X1, [in] any Y1, [in] any X2, [in] any Y2, [in] any Closed );
};

//=============================================================================

/** Represents the collection of drawing button controls in a spreadsheet. */
service Buttons
{
    interface ooo::vba::XCollection;
    interface XGraphicObjects;
};

//=============================================================================

}; }; };

#endif
