/* -*- 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_Paragraph_idl__
#define __com_sun_star_text_Paragraph_idl__

#include <com/sun/star/style/ParagraphProperties.idl>
#include <com/sun/star/style/ParagraphPropertiesAsian.idl>
#include <com/sun/star/style/ParagraphPropertiesComplex.idl>
#include <com/sun/star/style/CharacterProperties.idl>
#include <com/sun/star/style/CharacterPropertiesAsian.idl>
#include <com/sun/star/style/CharacterPropertiesComplex.idl>
#include <com/sun/star/text/TextContent.idl>
#include <com/sun/star/beans/XPropertySet.idl>
#include <com/sun/star/beans/XTolerantMultiPropertySet.idl>
#include <com/sun/star/beans/XPropertyState.idl>
#include <com/sun/star/container/XEnumerationAccess.idl>
#include <com/sun/star/text/TextTable.idl>



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

/** is a piece of text which can take its own paragraph-specific
    attributes (technically, properties).
 */
published service Paragraph
{
    /** This service is present when the paragraph object refers
        to a text range */
    [optional] service com::sun::star::style::ParagraphProperties;
    /** This service is present when the paragraph object refers
        to a text range */
    [optional] service com::sun::star::style::ParagraphPropertiesAsian;
    /** This service is present when the paragraph object refers
        to a text range */
    [optional] service com::sun::star::style::ParagraphPropertiesComplex;
    /** This service is present when the paragraph object refers
        to a text range */
    [optional] service com::sun::star::style::CharacterProperties;
    /** This service is present when the paragraph object refers
        to a text range */
    [optional] service com::sun::star::style::CharacterPropertiesAsian;
    /** This service is present when the paragraph object refers
        to a text range */
    [optional] service com::sun::star::style::CharacterPropertiesComplex;
    /** This service is present when the paragraph object refers
        to a text table */
    [optional] service com::sun::star::text::TextTable;
    service com::sun::star::text::TextContent;

    /** This interface gives access to the properties of the paragraph
                itself (or its style sheet). So this interface may show
                property values which are not valid for any of the
                text portions of the paragraph, if the text itself has its
                own style properties set.
     */
    interface com::sun::star::beans::XPropertySet;

    /** This interface gives access to the state of the property values
                in these properties. So, it is possible to determine if a specific
                properties value is defined in the paragraph or its style sheet.
     */
    interface com::sun::star::beans::XPropertyState;

    /** This interface enumerates the text portions of this paragraph.

                <p>A text portion is defined as the largest possible TextRange
                within a paragraph with the same property values and the same bound objects.

                <p>In general this interface is used for exporting into file
                formats.

                @see com::sun::star::text::TextRange@see com::sun::star::text::TextRange
     */
    interface com::sun::star::container::XEnumerationAccess;

    /** gives access to a sequence of properties.
        @since OOo 2.0
     */
    [optional] interface ::com::sun::star::beans::XTolerantMultiPropertySet;
};


}; }; }; };

#endif

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