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

#include <com/sun/star/awt/Rectangle.idl>
#include <com/sun/star/beans/PropertyValue.idl>
#include <com/sun/star/beans/PropertyValues.idl>
#include <com/sun/star/drawing/EnhancedCustomShapeHandle.idl>
#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.idl>


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

/**
  This service may be represented by a ::com::sun::star::beans::PropertyValue [].
*/

service EnhancedCustomShapeGeometry
{
    /**
        The Type attribute contains the name of a shape type. This name can be
        used to offer specialized user interfaces for certain classes of shapes, like
        for arrows, smileys, etc. The shape type is rendering engine dependent and does
        not influence the geometry of the shape. If the value of the draw:type
        attribute is non-primitive, then no shape type is available.
    */
    [property] string Type;

    /** This property describes the user space of the shape in its canonical form
    */
    [optional, property] ::com::sun::star::awt::Rectangle ViewBox;

    /** This property specifies if the orientation of the shape is horizontal mirrored.
    */
    [optional, property] boolean MirroredX;

    /** This property specifies if the orientation of the shape is vertical mirrored.
    */
    [optional, property] boolean MirroredY;

    /** This property specifies the text rotation angle in degrees. The text rotation is added
        to the shape geometry rotation.
    */
    [optional, property] double TextRotateAngle;

    /** This property specifies a sequence of Adjustment values.
    */
    [optional, property] sequence<::com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue> AdjustmentValues;

    /** This property sequence is including the extrusion description, the properties
        are as same as specified in the service com::sun::star:drawing::EnhancedCustomShapeExtrusion
    */
    [optional, property] sequence<::com::sun::star::beans::PropertyValue> Extrusion;

    /** This property sequence is including the path description, the properties
        are as same as specified in the service com::sun::star:drawing::EnhancedCustomShapePath
    */
    [optional, property] sequence<::com::sun::star::beans::PropertyValue> Path;

    /** This property sequence is including the text path description, the properties
        are as same as specified in the service com::sun::star:drawing::EnhancedCustomShapeTextPath
    */
    [optional, property] sequence<::com::sun::star::beans::PropertyValue> TextPath;

    /** This property is describing the equations that are used, each equation can be referenced
        by com::sun::star::drawing::EnhancedCustomShapeParameter which are often used in Path, Extrusion
        and or Handle descriptions.
    */
    [optional, property] sequence<string> Equations;

    /** This property is describing the interaction handles that are used, each inner property sequence
        is having the same properties as they are specified in the service com::sun::star:drawing::EnhancedCustomShapeHandle
    */
    [optional, property] sequence<::com::sun::star::beans::PropertyValues> Handles;
};


}; }; }; };

#endif

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