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

#include <com/sun/star/drawing/LineStyle.idl>
#include <com/sun/star/util/Color.idl>
#include <com/sun/star/drawing/LineDash.idl>
#include <com/sun/star/drawing/PolyPolygonBezierCoords.idl>
#include <com/sun/star/drawing/LineJoint.idl>
#include <com/sun/star/drawing/LineCap.idl>


module com {  module sun {  module star {  module drawing {


/** This is a set of properties to describe the style for rendering a Line.
    <p>The properties for line ends and line starts are only supported by
    shapes with open line ends.
 */
published service LineProperties
{
    /** This property contains the type of the line.
     */
    [property] com::sun::star::drawing::LineStyle LineStyle;


    /** This property contains the dash of the line.
     */
    [property] com::sun::star::drawing::LineDash LineDash;


    /** This property contains the name of the dash of the line.
     */
    [optional, property] string LineDashName;


    /** This property contains the line color.
     */
    [property] com::sun::star::util::Color LineColor;


    /** This property contains the extent of transparency.
     */
    [property] short LineTransparence;


    /** This property contains the width of the line in 1/100th mm.
     */
    [property] long LineWidth;


    /** This property defines the rendering of joints between thick lines
     */
    [property] com::sun::star::drawing::LineJoint LineJoint;


    /** This property defines the rendering of ends of thick lines
     */
    [optional, property] com::sun::star::drawing::LineCap LineCap;


    /** This property contains the name of the line start poly polygon Bezier.
        <p>If this string is empty, no line start polygon is rendered.
     */
    [optional, property] string LineStartName;


    /** This property contains the name of the line end poly polygon Bezier.
        <p>If this string is empty, no line end polygon is rendered.
     */
    [optional, property] string LineEndName;


    /** This property contains the line start in the form of a poly polygon Bezier.
     */
    [optional, property] com::sun::star::drawing::PolyPolygonBezierCoords LineStart;


    /** This property contains the line end in the form of a poly polygon Bezier.
     */
    [optional, property] com::sun::star::drawing::PolyPolygonBezierCoords LineEnd;


    /** If this property is `TRUE`, the line will
        start from the center of the polygon.
     */
    [optional, property] boolean LineStartCenter;


    /** This property contains the width of the line start polygon.
     */
    [optional, property] long LineStartWidth;


    /** If this property is `TRUE`, the line will end
        in the center of the polygon.
     */
    [optional, property] boolean LineEndCenter;


    /** This property contains the width of the line end polygon.
     */
    [optional, property] long LineEndWidth;
};


}; }; }; };

#endif

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