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

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


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


/** An IncrementData describes how tickmarks are positioned on the scale of an axis.

@see Axis
@see Grid
@see Scale
@see XScaling
*/
struct IncrementData
{
    /** if the any contains a double value this is used as a fixed
        Distance value.  Otherwise, if the any is empty or contains an
        incompatible type, the Distance is meant to be calculated
        automatically by the view component representing the model
        containing this increment.
     */
    any         Distance;

    /**
    #PostEquidistant rules whether the member #Distance
    describes a distance before or after the scaling is applied.

    <p>If #PostEquidistant equals `TRUE` #Distance
    is given in values after XScaling is applied, thus resulting
    main tickmarks will always look equidistant on the screen.
    If #PostEquidistant equals `FALSE` #Distance
    is given in values before XScaling is applied.</p>
    */
    any         PostEquidistant;

    /** if the any contains a double value this is used as a fixed
        BaseValue.  Otherwise, if the any is empty or contains an
        incompatible type, the BaseValue is meant to be calculated
        automatically by the view component representing the model
        containing this increment.
     */
    any         BaseValue;

    /** #SubIncrements describes the positioning of further
    sub tickmarks on the scale of an axis.

    <p>The first SubIncrement in this sequence determines how the
    distance between two neighboring main tickmarks is divided for positioning
    of further sub tickmarks. Every following SubIncrement determines the
    positions of subsequent tickmarks in relation to their parent tickmarks
    given by the preceding SubIncrement.</p>
    */
    sequence< SubIncrement > SubIncrements;
};


}; }; }; };

#endif

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