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

#include <com/sun/star/drawing/Alignment.idl>

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

/** Determines a position of an object relative to a size defined by other means.
    Values from 0 to 1 cover the entire reference rectangle. Values
    may also be outside this range, especially negative.
 */
struct RelativePosition
{
    /** The position in the primary direction.
        The direction is defined by the object using this point.

        <p>For example for western languages the primary direction may be
        the horizontal distance measured from left to right.</p>

        <p>The values are relative to a reference size (for example the page size).
        Values between 0 and 1 span the complete bounding rectangle.</p>
     */
    double       Primary;

    /** The position in the secondary direction.
        The direction is defined by the object using this point.

        <p>For example for western languages the secondary direction may be
        the vertical distance measured from top to bottom.</p>

        <p>The values are relative to a reference size (for example the page size).
        Values between 0 and 1 span the complete bounding rectangle.</p>
     */
    double       Secondary;

    /** This indicates how the object is placed at the relative position.

        <p>The Anchor indicates which point of the placed object
        will be placed at the coordinates given within Primary and Secondary.</p>

        <p>For example if Anchor is TOP_LEFT the top left corner of an object will
        be placed at the given coordinates. If Anchor is RIGHT the right middle corner of the object will
        be placed at the given coordinates.</p>
     */
    ::com::sun::star::drawing::Alignment Anchor;
};

} ; // chart2
} ; // com
} ; // sun
} ; // star

#endif

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