1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 *   Licensed to the Apache Software Foundation (ASF) under one or more
12 *   contributor license agreements. See the NOTICE file distributed
13 *   with this work for additional information regarding copyright
14 *   ownership. The ASF licenses this file to you under the Apache
15 *   License, Version 2.0 (the "License"); you may not use this file
16 *   except in compliance with the License. You may obtain a copy of
17 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19#ifndef __com_sun_star_style_ParagraphProperties_idl__
20#define __com_sun_star_style_ParagraphProperties_idl__
21
22#include <com/sun/star/style/ParagraphAdjust.idl>
23#include <com/sun/star/util/Color.idl>
24#include <com/sun/star/style/LineSpacing.idl>
25#include <com/sun/star/style/GraphicLocation.idl>
26#include <com/sun/star/style/TabStop.idl>
27#include <com/sun/star/style/DropCapFormat.idl>
28#include <com/sun/star/container/XIndexReplace.idl>
29#include <com/sun/star/table/ShadowFormat.idl>
30#include <com/sun/star/table/BorderLine.idl>
31#include <com/sun/star/style/BreakType.idl>
32#include <com/sun/star/container/XNameContainer.idl>
33#include <com/sun/star/beans/PropertyValue.idl>
34#include <com/sun/star/graphic/XGraphic.idl>
35
36module com {  module sun {  module star {  module style {
37
38/** describes the style of paragraphs.
39 */
40published service ParagraphProperties
41{
42
43    /** determines the adjustment of a paragraph.
44     */
45    [property] com::sun::star::style::ParagraphAdjust ParaAdjust;
46
47
48    /** contains the type of the line spacing of a paragraph.
49     */
50    [optional, property] com::sun::star::style::LineSpacing ParaLineSpacing;
51
52
53    /** contains the paragraph background color.
54     */
55    [optional, property] com::sun::star::util::Color ParaBackColor;
56
57
58    /** This value is `TRUE` if the paragraph background color
59        is set to transparent.
60     */
61    [optional, property] boolean ParaBackTransparent;
62
63
64    /** contains the value of a link for the background graphic of a paragraph.
65
66        @deprecated as of LibreOffice 6.1 - use ParaBackGraphic instead
67
68        Note the new behaviour since it this was deprecated:
69        This property can only be set and only external URLs are
70        supported (no more vnd.sun.star.GraphicObject scheme). When an
71        URL is set, then it will load the graphic and set the ParaBackGraphic
72        property.
73     */
74    [optional, property] string ParaBackGraphicURL;
75
76    /** contains the name of the graphic filter for the background graphic of a paragraph.
77     */
78    [optional, property] string ParaBackGraphicFilter;
79
80
81    /** contains the value for the position of a background graphic.
82
83        @see com::sun::star::style::GraphicLocation
84     */
85    [optional, property] com::sun::star::style::GraphicLocation ParaBackGraphicLocation;
86
87
88    /** determines the adjustment of the last line.
89        <p>It is only valid if ParagraphProperties::ParaAdjust
90        is set to ParagraphAdjust::BLOCK.</p>
91     */
92    [property] short ParaLastLineAdjust;
93
94
95    /** determines if single words are stretched.
96
97        <p>It is only valid if ParagraphProperties::ParaAdjust and
98        ParagraphProperties::ParaLastLineAdjust are also valid.</p>
99     */
100    [optional, property] boolean ParaExpandSingleWord;
101
102
103    /** determines the left margin of the paragraph in 100th mm.
104     */
105    [property] long ParaLeftMargin;
106
107
108    /** determines the right margin of the paragraph in 100th mm.
109     */
110    [property] long ParaRightMargin;
111
112
113    /** determines the top margin of the paragraph in 100th mm.
114
115        <p>The distance between two paragraphs is specified by:</p>
116        <ul>
117        <li>either the bottom margin of the previous paragraph.</li>
118        <li>or the top margin of the following paragraph.</li>
119        </ul>
120        The greater one is chosen.
121     */
122    [property] long ParaTopMargin;
123
124
125    /** determines the bottom margin of the paragraph in 100th mm.
126
127        <p>The distance between two paragraphs is specified by:</p>
128        <ul>
129        <li>either the bottom margin of the previous paragraph
130        </li>
131        <li>or the top margin of the following paragraph.
132        </li>
133        </ul>
134        The greater one is chosen.
135     */
136    [property] long ParaBottomMargin;
137
138    /** determines if contextual spacing is used.
139
140        @since LibreOffice 3.6
141
142        <p>If true, the top and bottom margins of the paragraph should not be
143        applied when the previous and next paragraphs have the same style.</p>
144     */
145    [optional, property] boolean ParaContextMargin;
146
147    /** Grab bag of paragraph properties, used as a string-any map for interim interop purposes.
148
149        @since LibreOffice 4.2
150
151        <p>This property is intentionally not handled by the ODF filter. Any
152        member that should be handled there should be first moved out from this grab
153        bag to a separate property.</p>
154    */
155    [optional, property] sequence<com::sun::star::beans::PropertyValue> ParaInteropGrabBag;
156
157    /** determines if the paragraph is included in the
158        line numbering.
159     */
160    [optional, property] boolean ParaLineNumberCount;
161
162
163    /** contains the start value for the line numbering.
164     */
165    [optional, property] long ParaLineNumberStartValue;
166
167
168    /** If this property is set, it creates a page break before the
169        paragraph it belongs to and assigns the value as the name
170        of the new page style sheet to use.
171     */
172    [optional, property] string PageDescName;
173
174
175    /** If a page break property is set at a paragraph, this property contains the new value for the page number.
176     */
177    [optional, property] short PageNumberOffset;
178
179
180    /** determines if the register mode is applied to a
181        paragraph.
182
183
184
185        <p>Remark: Register mode is only used if the register
186        mode property of the page style is switched on.</p>
187     */
188    [optional, property] boolean ParaRegisterModeActive;
189
190
191    /** specifies the positions and kinds of the tab stops within this
192                paragraph.
193     */
194    [optional, property] sequence<com::sun::star::style::TabStop> ParaTabStops;
195
196
197    /** contains the name of the current paragraph style.
198     */
199    [optional, property] string ParaStyleName;
200
201
202        /** contains the name of the current page style.
203         */
204        [optional, property, maybevoid, readonly] string PageStyleName;
205
206
207    /** specifies whether the first characters of the
208        paragraph are displayed in capital letters and how they are
209        formatted.
210     */
211    [optional, property] com::sun::star::style::DropCapFormat DropCapFormat;
212
213
214    /** specifies if the property <var>DropCapFormat</var>
215        is applied to the whole first word.
216     */
217    [optional, property] boolean DropCapWholeWord;
218
219
220    /** Setting this property to `TRUE` prevents page or column
221        breaks between this and the following paragraph.
222
223
224        <p>This feature is useful for preventing title paragraphs to be
225        the last line on a page or column.</p>
226     */
227    [optional, property] boolean ParaKeepTogether;
228
229
230    /** Setting this property to `FALSE` prevents the paragraph from
231        getting split into two pages or columns.
232     */
233    [optional, property] boolean ParaSplit;
234
235
236    /** specifies the numbering level of the    paragraph.
237     */
238    [optional, property] short NumberingLevel;
239
240    /** contains the numbering rules applied to this paragraph.
241     */
242        [optional, property] com::sun::star::container::XIndexReplace NumberingRules;
243
244
245    /** specifies the start value for numbering if a new numbering starts at this paragraph.
246     */
247    [optional, property] short NumberingStartValue;
248
249    /** determines if the numbering rules restart, counting at the current paragraph.
250     */
251    [optional, property] boolean ParaIsNumberingRestart;
252
253    /** specifies the name of the style for the numbering.
254
255
256        <p>The name must be one of the names which are available via
257        XStyleFamiliesSupplier.</p>
258     */
259    [optional, property] string NumberingStyleName;
260
261    /** specifies the minimum number of lines of the paragraph that have
262        to be at bottom of a page if the paragraph is spread over more than
263        one page.
264     */
265    [optional, property] byte ParaOrphans;
266
267    /** specifies the minimum number of lines of the paragraph that have
268        to be at top of a page if the paragraph is spread over more than
269        one page.
270     */
271    [optional, property] byte ParaWidows;
272    /** determines the type, color, and size of the shadow.
273     @see com::sun::star::table::ShadowFormat
274     */
275    [optional, property] com::sun::star::table::ShadowFormat ParaShadowFormat;
276    /** contains the left border of the object.
277     */
278        [property, optional] com::sun::star::table::BorderLine LeftBorder;
279
280    /** contains the right border of the object.
281     */
282        [property, optional] com::sun::star::table::BorderLine RightBorder;
283
284    /** contains the top border of the object.
285     */
286        [property, optional] com::sun::star::table::BorderLine TopBorder;
287
288    /** contains the bottom border of the object.
289     */
290        [property, optional] com::sun::star::table::BorderLine BottomBorder;
291
292    /** contains the distance from the border to the object.
293     */
294        [property, optional] long BorderDistance;
295
296    /** contains the distance from the left border to the object.
297     */
298        [property, optional] long LeftBorderDistance;
299
300    /** contains the distance from the right border to the object.
301     */
302        [property, optional] long RightBorderDistance;
303
304    /** contains the distance from the top border to the object.
305     */
306        [property, optional] long TopBorderDistance;
307
308    /** contains the distance from the bottom border to the object.
309     */
310        [property, optional] long BottomBorderDistance;
311
312        /** determines the type of break that is applied at the beginning of the table.
313            @see com::sun::star::style::BreakType
314         */
315        [optional, property] com::sun::star::style::BreakType BreakType;
316
317        /** specifies the character style name for drop caps.
318         */
319        [optional, property] string DropCapCharStyleName;
320
321        /** specifies the indent for the first line.
322         */
323        [optional, property] long ParaFirstLineIndent;
324
325        /** determines if the first line should be indented automatically.
326         */
327        [optional, property] boolean ParaIsAutoFirstLineIndent;
328
329        /** specifies if automatic hyphenation is applied.
330         */
331        [property] boolean ParaIsHyphenation;
332
333        /** specifies the maximum number of consecutive hyphens.
334         */
335        [optional, property] short ParaHyphenationMaxHyphens;
336
337        /** specifies the maximum number of characters to remain before the
338            hyphen character (when hyphenation is applied).
339         */
340        [optional, property] short ParaHyphenationMaxLeadingChars;
341
342        /** specifies the maximum number of characters to remain after the
343            hyphen character (when hyphenation is applied).
344         */
345        [optional, property] short ParaHyphenationMaxTrailingChars;
346
347        /** specifies the vertical alignment of a paragraph.
348
349            @see com::sun::star::text::ParagraphVertAlign
350         */
351        [optional, property] short ParaVertAlignment;
352
353        /** this property stores xml attributes.
354            They will be saved to and restored from automatic styles inside xml files.
355
356            @see com::sun::star::xml::AttributeContainer
357         */
358        [optional, property] com::sun::star::container::XNameContainer ParaUserDefinedAttributes;
359
360        /** returns `FALSE` if the paragraph is part of a numbering, but has no
361            numbering label.
362
363            <p>A paragraph is part of a numbering, if a style for a numbering is
364            set - see NumberingStyleName.</p>
365            <p>If the paragraph is not part of a numbering the property is void.</p>
366         */
367        [optional, property, maybevoid] boolean NumberingIsNumber;
368
369        /** the property determines if borders set at a paragraph are merged with the
370         next paragraph.
371         <p>Borders are only merged if they are identical.</p>
372         */
373        [optional, property, maybevoid] boolean ParaIsConnectBorder;
374
375        /** specifies the id of the list to which the paragraph belongs
376
377         */
378        [optional, property] string ListId;
379
380        /** specifies the outline level to which the paragraph belongs
381
382            @since OOo 3.1
383
384            <p>Value 0 indicates that the paragraph belongs to the body text.</p>
385            <p>Values [1..10] indicates that the paragraph belongs to the corresponding outline level.</p>
386         */
387        [optional, property] short OutlineLevel;
388
389        /** contains the graphic for the background of a paragraph.
390
391            @since LibreOffice 6.1
392         */
393        [optional, property] com::sun::star::graphic::XGraphic ParaBackGraphic;
394
395        /** specifies that a child node of a parent node that is not counted
396            is continuing the numbering of parent's previous node's sub tree.
397
398            @since OOo 3.0.1
399
400            @note misspelling retained for compatibility
401         */
402        [optional, property, readonly] boolean ContinueingPreviousSubTree;
403
404        /** allows reading the generated numbering list label.
405
406            @since OOo 3.0.1
407         */
408        [optional, property, readonly] string ListLabelString;
409
410        /** Specifies whether words written in CAPS will be hyphenated.
411            Setting to `true` will disable hyphenation of words written in CAPS for this paragraph.
412
413            @since LibreOffice 6.4
414         */
415        [optional, property] boolean ParaHyphenationNoCaps;
416
417};
418
419
420}; }; }; };
421
422#endif
423
424/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
425