/**************************************************************
 * 
 * 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
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


#ifndef com_sun_star_chart2_Symbol_idl
#define com_sun_star_chart2_Symbol_idl

#ifndef __com_sun_star_drawing_PolyPolygonBezierCoords_idl__
#include <com/sun/star/drawing/PolyPolygonBezierCoords.idl>
#endif

#include <com/sun/star/awt/Size.idl>
#include <com/sun/star/graphic/XGraphic.idl>

#include <com/sun/star/chart2/SymbolStyle.idl>

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

module com {  module sun {  module star {  module chart2 {

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

/** properties that are used for DataSeries that display symbols.
 */
struct Symbol
{
    /** determines which of the following members determines the
        appearance of the symbol.
     */
    SymbolStyle                                 		Style;

    /** The given polygon is used as symbol.
     */
    com::sun::star::drawing::PolyPolygonBezierCoords	PolygonCoords;

    /** Use the nth standard symbol, if <member>Style</member> is set
        to <member>SymbolStlye::STANDARD</member>.

        <p>If n is the number of standard symbols available in an
        implementation, the symbol number is
        <member>StandardSymbol</member> modulo n.</p>

        <p>The default implementation for example currently uses 8 different
        standard symbols that are matched to the numbers 0 to 7.

        <table border=1 rules="groups">
        <thead>
        <tr><th>&nbsp;value StandardSymbol&nbsp;</th><th>&nbsp;visible Symbol&nbsp;</th></tr>
        </thead>
        <tbody>
        <tr><td><code>0</code></td><td>square</td></tr>
        <tr><td><code>1</code></td><td>diamond</td></tr>
        <tr><td><code>2</code></td><td>down arrow</td></tr>
        <tr><td><code>3</code></td><td>up arrow</td></tr>
        <tr><td><code>4</code></td><td>right arrow</td></tr>
        <tr><td><code>5</code></td><td>left arrow</td></tr>
        <tr><td><code>6</code></td><td>bowtie</td></tr>
        <tr><td><code>7</code></td><td>sandglass</td></tr>
        </tbody>
        </table>

        </p>
     */
    long 												StandardSymbol;

    /** use this graphic as symbol
     */
    com::sun::star::graphic::XGraphic 					Graphic;

    /** The size of the symbol in 100th of a mm.

        @todo use a structure using doubles insted of longs
     */
    com::sun::star::awt::Size 							Size;

    /** The color used for drawing the border of symbols.

        <p>Only effective if <member>Style</member> is
        <member>SymbolStyle::AUTO</member>,
        <member>SymbolStyle::STANDARD</member> or
        <member>SymbolStyle::POLYGON</member>.</p>
     */
    long 												BorderColor;

    /** The color used for filling symbols that contain closed polygons.

        <p>Only effective if <member>Style</member> is
        <member>SymbolStyle::AUTO</member>,
        <member>SymbolStyle::STANDARD</member> or
        <member>SymbolStyle::POLYGON</member>.</p>
     */
    long 												FillColor;
};

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

}; }; }; };

#endif

