1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_style_ParagraphProperties_idl__
28#define __com_sun_star_style_ParagraphProperties_idl__
29
30#ifndef __com_sun_star_style_ParagraphAdjust_idl__
31#include <com/sun/star/style/ParagraphAdjust.idl>
32#endif
33
34#ifndef __com_sun_star_util_Color_idl__
35#include <com/sun/star/util/Color.idl>
36#endif
37
38#ifndef __com_sun_star_style_LineSpacing_idl__
39#include <com/sun/star/style/LineSpacing.idl>
40#endif
41
42#ifndef __com_sun_star_style_GraphicLocation_idl__
43#include <com/sun/star/style/GraphicLocation.idl>
44#endif
45
46#ifndef __com_sun_star_style_TabStop_idl__
47#include <com/sun/star/style/TabStop.idl>
48#endif
49
50#ifndef __com_sun_star_style_DropCapFormat_idl__
51#include <com/sun/star/style/DropCapFormat.idl>
52#endif
53
54#ifndef __com_sun_star_container_XIndexReplace_idl__
55#include <com/sun/star/container/XIndexReplace.idl>
56#endif
57#ifndef __com_sun_star_table_ShadowFormat_idl__
58#include <com/sun/star/table/ShadowFormat.idl>
59#endif
60#ifndef __com_sun_star_table_BorderLine_idl__
61#include <com/sun/star/table/BorderLine.idl>
62#endif
63#ifndef __com_sun_star_style_BreakType_idl__
64#include <com/sun/star/style/BreakType.idl>
65#endif
66#ifndef __com_sun_star_container_XNameContainer_idl__
67#include <com/sun/star/container/XNameContainer.idl>
68#endif
69
70//=============================================================================
71
72 module com {  module sun {  module star {  module style {
73
74//=============================================================================
75
76/** describes the style of paragraphs.
77 */
78published service ParagraphProperties
79{
80	//-------------------------------------------------------------------------
81
82	/** determines the adjustment of a paragraph.
83	 */
84	[property] com::sun::star::style::ParagraphAdjust ParaAdjust;
85
86	//-------------------------------------------------------------------------
87
88	/** contains the type of the line spacing of a paragraph.
89	 */
90	[optional, property] com::sun::star::style::LineSpacing ParaLineSpacing;
91
92	//-------------------------------------------------------------------------
93
94	/** contains the paragraph background color.
95	 */
96	[optional, property] com::sun::star::util::Color ParaBackColor;
97
98	//-------------------------------------------------------------------------
99
100	/** This value is <TRUE/> if the paragraph background color
101		is set to transparent.
102	 */
103	[optional, property] boolean ParaBackTransparent;
104
105	//-------------------------------------------------------------------------
106
107	/** contains the value of a link for the background graphic of a paragraph.
108	 */
109	[optional, property] string ParaBackGraphicURL;
110
111	//-------------------------------------------------------------------------
112
113	/** contains the name of the graphic filter for the background graphic of a paragraph.
114	 */
115	[optional, property] string ParaBackGraphicFilter;
116
117	//-------------------------------------------------------------------------
118
119	/** contains the value for the position of a background graphic.
120
121		@see com::sun::star::style::GraphicLocation
122	 */
123	[optional, property] com::sun::star::style::GraphicLocation ParaBackGraphicLocation;
124
125	//-------------------------------------------------------------------------
126
127	/** determines the adjustment of the last line.
128        <p>It is only valid if <member>ParagraphProperties::ParaAdjust</member>
129		is set to <const>ParagraphAdjust::BLOCK</const>.</p>
130	 */
131	[property] short ParaLastLineAdjust;
132
133	//-------------------------------------------------------------------------
134
135	/** determines if single words are stretched.
136
137		<p>It is only valid if <member>ParagraphProperties::ParaAdjust</member> and
138		<member>ParagraphProperties::ParaLastLineAdjust</member> are also valid.</p>
139	 */
140	[optional, property] boolean ParaExpandSingleWord;
141
142	//-------------------------------------------------------------------------
143
144	/** determines the left margin of the paragraph in 100th mm.
145	 */
146	[property] long ParaLeftMargin;
147
148	//-------------------------------------------------------------------------
149
150	/** determines the right margin of the paragraph in 100th mm.
151	 */
152	[property] long ParaRightMargin;
153
154	//-------------------------------------------------------------------------
155
156	/** determines the top margin of the paragraph in 100th mm.
157
158		<p>The distance between two paragraphs is specified by:</p>
159		<ul>
160		<li>either the bottom margin of the previous paragraph.</li>
161		<li>or the top margin of the following paragraph.</li>
162		</ul>
163		The greater one is chosen.
164	 */
165	[property] long ParaTopMargin;
166
167	//-------------------------------------------------------------------------
168
169	/** determines the bottom margin of the paragraph in 100th mm.
170
171		<p>The distance between two paragraphs is specified by:</p>
172		<ul>
173		<li>either the bottom margin of the previous paragraph
174		</li>
175		<li>or the top margin of the following paragraph.
176		</li>
177		</ul>
178		The greater one is chosen.
179	 */
180	[property] long ParaBottomMargin;
181
182	//-------------------------------------------------------------------------
183
184	/** determines if the paragraph is included in the
185		line numbering.
186	 */
187	[optional, property] boolean ParaLineNumberCount;
188
189	//-------------------------------------------------------------------------
190
191	/** contains the start value for the line numbering.
192	 */
193	[optional, property] long ParaLineNumberStartValue;
194
195	//-------------------------------------------------------------------------
196
197	/** If this property is set, it creates a page break before the
198		paragraph it belongs to and assigns the value as the name
199		of the new page style sheet to use.
200	 */
201	[optional, property] string PageDescName;
202
203	//-------------------------------------------------------------------------
204
205	/** If a page break property is set at a paragraph, this property contains the new value for the page number.
206	 */
207	[optional, property] short PageNumberOffset;
208
209	//-------------------------------------------------------------------------
210
211	/** determines if the register mode is applied to a
212		paragraph.
213
214
215
216		<p>Remark: Register mode is only used if the register
217		mode property of the page style is switched on.</p>
218	 */
219	[optional, property] boolean ParaRegisterModeActive;
220
221	//-------------------------------------------------------------------------
222
223	/** specifies the positions and kinds of thei tab stops within this
224				paragraph.
225	 */
226	[optional, property] sequence<com::sun::star::style::TabStop> ParaTabStops;
227
228	//-------------------------------------------------------------------------
229
230	/** contains the name of the current paragraph style.
231	 */
232	[optional, property] string ParaStyleName;
233
234        //-------------------------------------------------------------------------
235
236        /** contains the name of the current page style.
237         */
238        [optional, property, maybevoid, readonly] string PageStyleName;
239
240        //-------------------------------------------------------------------------
241
242	/** specifies whether the first characters of the
243		paragraph are displayed in capital letters and how they are
244		formatted.
245	 */
246	[optional, property] com::sun::star::style::DropCapFormat DropCapFormat;
247
248	//-------------------------------------------------------------------------
249
250	/** specifies if the property <var>DropCapFormat</var>
251		is applied to the whole first word.
252	 */
253	[optional, property] boolean DropCapWholeWord;
254
255	//-------------------------------------------------------------------------
256
257	/** Setting this property to <TRUE/> prevents page or column
258		breaks between this and the following paragraph.
259
260
261		<p>This feature is useful for preventing title paragraphs to be
262		the last line on a page or column.</p>
263	 */
264	[optional, property] boolean ParaKeepTogether;
265
266	//-------------------------------------------------------------------------
267
268	/** Setting this property to <FALSE/> prevents the paragraph from
269		getting split into two pages or columns.
270	 */
271	[optional, property] boolean ParaSplit;
272
273	//-------------------------------------------------------------------------
274
275	/** specifies the numbering level of the	paragraph.
276	 */
277	[optional, property] short NumberingLevel;
278
279	//-------------------------------------------------------------------------
280	/** contains the numbering rules applied to this paragraph.
281	 */
282        [optional, property] com::sun::star::container::XIndexReplace NumberingRules;
283
284	//-------------------------------------------------------------------------
285
286	/** specifies the start value for numbering if a new numbering starts at this paragraph.
287	 */
288	[optional, property] short NumberingStartValue;
289
290	//-------------------------------------------------------------------------
291	/** determines if the numbering rules restart, counting at the current paragraph.
292	 */
293	[optional, property] boolean ParaIsNumberingRestart;
294	//-------------------------------------------------------------------------
295
296	/** specifies the name of the style for the numbering.
297
298
299		<p>The name must be one of the names which are available via
300		<type>XStyleFamiliesSupplier</type>.</p>
301	 */
302	[optional, property] string NumberingStyleName;
303	//-------------------------------------------------------------------------
304
305	/** specifies the minimum number of lines of the paragraph that have
306		to be at bottom of a page if the paragraph is spread over more than
307		one page.
308	 */
309	[optional, property] byte ParaOrphans;
310	//-------------------------------------------------------------------------
311
312	/** specifies the minimum number of lines of the paragraph that have
313		to be at top of a page if the paragraph is spread over more than
314		one page.
315	 */
316	[optional, property] byte ParaWidows;
317	//-------------------------------------------------------------------------
318	/** determines the type, color, and size of the shadow.
319	 @see com.sun.star.table.ShadowFormat
320	 */
321	[optional, property] com::sun::star::table::ShadowFormat ParaShadowFormat;
322	//-------------------------------------------------------------------------
323	/** contains the left border of the object.
324	 */
325        [property, optional] com::sun::star::table::BorderLine LeftBorder;
326
327	//-------------------------------------------------------------------------
328	/** contains the right border of the object.
329	 */
330        [property, optional] com::sun::star::table::BorderLine RightBorder;
331
332	//-------------------------------------------------------------------------
333	/** contains the top border of the object.
334	 */
335        [property, optional] com::sun::star::table::BorderLine TopBorder;
336
337	//-------------------------------------------------------------------------
338	/** contains the bottom border of the object.
339	 */
340        [property, optional] com::sun::star::table::BorderLine BottomBorder;
341
342	//-------------------------------------------------------------------------
343	/** contains the distance from the border to the object.
344	 */
345        [property, optional] long BorderDistance;
346
347	//-------------------------------------------------------------------------
348	/** contains the distance from the left border to the object.
349	 */
350        [property, optional] long LeftBorderDistance;
351
352	//-------------------------------------------------------------------------
353	/** contains the distance from the right border to the object.
354	 */
355        [property, optional] long RightBorderDistance;
356
357	//-------------------------------------------------------------------------
358	/** contains the distance from the top border to the object.
359	 */
360        [property, optional] long TopBorderDistance;
361
362	//-------------------------------------------------------------------------
363	/** contains the distance from the bottom border to the object.
364	 */
365        [property, optional] long BottomBorderDistance;
366
367	//-------------------------------------------------------------------------
368        /** determins the type of break that is applied at the beginning of the table.
369            @see com.sun.star.style.BreakType
370         */
371        [optional, property] com::sun::star::style::BreakType BreakType;
372
373        //-------------------------------------------------------------------------
374        /** specifies the character style name for drop caps.
375         */
376        [optional, property] string DropCapCharStyleName;
377
378        //-------------------------------------------------------------------------
379        /** specifies the indent for the first line.
380         */
381        [optional, property] long ParaFirstLineIndent;
382
383        //-------------------------------------------------------------------------
384        /** determines if the first line should be indented automatically.
385         */
386        [optional, property] boolean ParaIsAutoFirstLineIndent;
387
388        //-------------------------------------------------------------------------
389        /** specifies if automatic hyphenation is applied.
390         */
391        [property] boolean ParaIsHyphenation;
392
393        //-------------------------------------------------------------------------
394        /** specifies the maximum number of consecutive hyphens.
395         */
396        [optional, property] short ParaHyphenationMaxHyphens;
397
398        //-------------------------------------------------------------------------
399        /** specifies the maximum number of characters to remain before the
400            hyphen character (when hyphenation is applied).
401         */
402        [optional, property] short ParaHyphenationMaxLeadingChars;
403
404        //-------------------------------------------------------------------------
405        /** specifies the maximum number of characters to remain after the
406            hyphen character (when hyphenation is applied).
407         */
408        [optional, property] short ParaHyphenationMaxTrailingChars;
409
410        //-------------------------------------------------------------------------
411        /** specifies the vertical alignment of a paragraph.
412
413            @see com::sun::star::text::ParagraphVertAlign
414         */
415        [optional, property] short ParaVertAlignment;
416
417        //-------------------------------------------------------------------------
418        /** this property stores xml attributes.
419            They will be saved to and restored from automatic styles inside xml files.
420
421            @see com::sun::star::xml::AttributeContainer
422         */
423        [optional, property] com::sun::star::container::XNameContainer ParaUserDefinedAttributes;
424
425        //-------------------------------------------------------------------------
426        /** returns <FALSE/> if the paragraph is part of a numbering, but has no
427            numbering label.
428
429            <p>A paragraph is part of a numbering, if a style for a numbering is
430            set - see NumberingStyleName.</p>
431            <p>If the paragraph is not part of a numbering the property is void.</p>
432         */
433        [optional, property, maybevoid] boolean NumberingIsNumber;
434
435        //-------------------------------------------------------------------------
436        /** the property determines if borders set at a paragraph are merged with the
437         next paragraph.
438         <p>Borders are only merged if they are identical.</p>
439         */
440        [optional, property, maybevoid] boolean ParaIsConnectBorder;
441
442        //-------------------------------------------------------------------------
443        /** specifies the id of the list to which the paragraph belongs
444
445         */
446        [optional, property] string ListId;
447
448        //-------------------------------------------------------------------------
449        /** specifies the outline level to which the paragraph belongs
450
451            @since OOo 3.1
452
453            <p>Value 0 indicates that the paragraph belongs to the body text.</p>
454            <p>Values [1..10] indicates that the paragraph belongs to the corresponding outline level.</p>
455         */
456        [optional, property] short OutlineLevel;
457};
458
459//=============================================================================
460
461}; }; }; };
462
463#endif
464