/* -*- 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_text_CellProperties_idl__
#define __com_sun_star_text_CellProperties_idl__

#include <com/sun/star/beans/XPropertySet.idl>
#include <com/sun/star/util/Color.idl>
#include <com/sun/star/text/XTextSection.idl>
#include <com/sun/star/style/GraphicLocation.idl>
#include <com/sun/star/table/BorderLine.idl>
#include <com/sun/star/container/XNameContainer.idl>
#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl>
#include <com/sun/star/graphic/XGraphic.idl>

module com {  module sun {  module star {  module text {

/** service that holds all cell properties of a text table cell in a text document.

    @see com::sun::star::text::Cell
 */
published service CellProperties
{
    /** contains user defined attributes.

        @see    com::sun::star::xml::UserDefinedAttributesSupplier
     */
    service com::sun::star::xml::UserDefinedAttributesSupplier;


    /** gives access to the objects properties
     */
    interface com::sun::star::beans::XPropertySet;

    /** contains the cell name, see SwXTextTable::getCellByName for more information
     */
    [property] string CellName;

    /** contains the background color.
     */
    [property] com::sun::star::util::Color BackColor;

    /** contains the URL to the background graphic.

        @deprecated as of LibreOffice 6.1 - use BackGraphic instead

        Note the new behaviour since it this was deprecated:
        This property can only be set and only external URLs are
        supported (no more vnd.sun.star.GraphicObject scheme). When an
        URL is set, then it will load the graphic and set the BackGraphic
        property.
     */
    [property] string BackGraphicURL;

    /** contains the name of the graphic filter of the background graphic.
     */
    [property] string BackGraphicFilter;

    /** determines the position of the background graphic.
     */
    [property] com::sun::star::style::GraphicLocation BackGraphicLocation;

    /** contains the number format.
     */
    [property] long NumberFormat;

    /** determines whether the background is transparent.
     */
    [property] boolean BackTransparent;

    /** contains the left border line.
     */
    [property] com::sun::star::table::BorderLine LeftBorder;

    /** contains the right border line.
     */
    [property] com::sun::star::table::BorderLine RightBorder;

    /** contains the top border line.
     */
    [property] com::sun::star::table::BorderLine TopBorder;

    /** contains the bottom border line.
     */
    [property] com::sun::star::table::BorderLine BottomBorder;

    /** contains the distance of the left border.
     */
    [property] long LeftBorderDistance;

    /** contains the distance of the right border.
     */
    [property] long RightBorderDistance;

    /** contains the distance of the top border.
     */
    [property] long TopBorderDistance;

    /** contains the distance of the bottom border.
     */
    [property] long BottomBorderDistance;

    /** contains the text section the text table is contained in if there is any.
     */
    [readonly, property]com::sun::star::text::XTextSection TextSection;

    /** determines whether the cell is write protected or not.
     */
    [property] boolean IsProtected;

    /** the vertical orientation of the text inside of the table cells in
        this row.@see VertOrientation
     */
    [property] short VertOrient;

    /** contains the graphic object that is displayed as background graphic.

        @since LibreOffice 6.1
     */
    [optional, property] com::sun::star::graphic::XGraphic BackGraphic;

    /** Parent text of this table cell.

        This might be a header text, body text, parent cell, etc.

        @since LibreOffice 6.3
     */
    [optional, readonly, property] com::sun::star::text::XText ParentText;
};


}; }; }; };
#endif

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