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_text_BaseFrameProperties_idl__
20#define __com_sun_star_text_BaseFrameProperties_idl__
21
22#include <com/sun/star/style/GraphicLocation.idl>
23#include <com/sun/star/table/BorderLine.idl>
24#include <com/sun/star/table/ShadowFormat.idl>
25#include <com/sun/star/text/XTextFrame.idl>
26#include <com/sun/star/text/WrapTextMode.idl>
27#include <com/sun/star/awt/Size.idl>
28#include <com/sun/star/util/Color.idl>
29#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl>
30#include <com/sun/star/drawing/FillStyle.idl>
31#include <com/sun/star/awt/Gradient.idl>
32#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
33#include <com/sun/star/graphic/XGraphic.idl>
34
35module com {  module sun {  module star {  module text {
36
37/** specifies the properties that are provided by all text frames, graphic objects, embedded objects
38 and frame styles.
39 */
40published service BaseFrameProperties
41{
42    /** gives access to the UserDefinedAttributes property.
43        @since  OOo 2.1
44     */
45    [optional] service com::sun::star::xml::UserDefinedAttributesSupplier;
46
47    /** contains the number of the page where the objects are anchored.
48        <p> The value is valid only if the
49        AnchorType is
50        TextContentAnchorType::AT_PAGE.</p>
51     */
52    [property] short AnchorPageNo;
53    /** contains the text frame the current frame is anchored to.
54        <p> The value is valid only if the
55        AnchorType is TextContentAnchorType::AT_FRAME.</p>
56     */
57    [property] com::sun::star::text::XTextFrame AnchorFrame;
58
59    /** contains the color of the background of the object.
60     */
61    [property] com::sun::star::util::Color BackColor;
62
63    /** contains the URL for the background graphic.
64
65        @deprecated as of LibreOffice 6.1 - use BackGraphic instead
66
67        Note the new behaviour since it this was deprecated:
68        This property can only be set and only external URLs are
69        supported (no more vnd.sun.star.GraphicObject scheme). When an
70        URL is set, then it will load the graphic and set the BackGraphic
71        property.
72     */
73    [property] string BackGraphicURL;
74
75    /** contains the name of the file filter for the background graphic.
76     */
77    [property] string BackGraphicFilter;
78
79    /** determines the position of the background graphic.
80     */
81    [property] com::sun::star::style::GraphicLocation BackGraphicLocation;
82
83    /** contains the left border of the object.
84
85        @see BaseFrame::com::sun::star::table::BorderLine
86     */
87    [property] com::sun::star::table::BorderLine LeftBorder;
88
89    /** contains the right border of the object.
90
91        @see BaseFrame::com::sun::star::table::BorderLine
92     */
93    [property] com::sun::star::table::BorderLine RightBorder;
94
95    /** contains the top border of the object.
96
97        @see BaseFrame::com::sun::star::table::BorderLine
98     */
99    [property] com::sun::star::table::BorderLine TopBorder;
100
101    /** contains the bottom border of the object.
102
103        @see BaseFrame::com::sun::star::table::BorderLine
104     */
105    [property] com::sun::star::table::BorderLine BottomBorder;
106
107    /** contains the distance from the border to the object.
108     */
109    [property] long BorderDistance;
110
111    /** contains the distance from the left border to the object.
112     */
113    [property] long LeftBorderDistance;
114
115    /** contains the distance from the right border to the object.
116     */
117    [property] long RightBorderDistance;
118
119    /** contains the distance from the top border to the object.
120     */
121    [property] long TopBorderDistance;
122
123    /** contains the distance from the bottom border to the object.
124     */
125    [property] long BottomBorderDistance;
126
127    /** If TRUE, the "BackColor" is ignored.
128     */
129    [property] boolean BackTransparent;
130
131
132    /** determines if the content is protected.
133     */
134    [property] boolean ContentProtected;
135    /** contains the left margin of the object.
136     */
137    [property] long LeftMargin;
138
139    /** contains the right margin of the object.
140     */
141    [property] long RightMargin;
142
143
144    /** contains the top margin of the object.
145     */
146    [property] long TopMargin;
147
148    /** contains the bottom margin of the object.
149     */
150    [property] long BottomMargin;
151
152    /** contains the height of the object (1/100 mm).
153        <p>It is only valid if TextEmbeddedObject::RelativeHeight is zero.</p>
154     */
155    [property] long Height;
156
157    /** contains the width of the object (1/100 mm).
158        <p>It is only valid if TextEmbeddedObject::RelativeWidth is zero.</p>
159     */
160    [property] long Width;
161    /** contains the relative height of the object.
162        <p> It is only valid if it is greater than zero.</p>
163     */
164    [property] short RelativeHeight;
165
166    /** contains the relative width of the object.
167        <p> It is only valid if it is greater than zero. </p>
168     */
169    [property] short RelativeWidth;
170    /** determines whether the width follows the height.
171     */
172    [property] boolean IsSyncWidthToHeight;
173    /** determines whether the height follows the width.
174     */
175    [property] boolean IsSyncHeightToWidth;
176    /** determines the horizontal orientation of the object.
177
178        @see BaseFrame::HoriOrientation
179     */
180    [property] short HoriOrient;
181    /** contains the horizontal position of the object (1/100 mm).
182        <p> It is only valid if "HoriOrient" is HoriOrientation_NONE.</p>
183     */
184    [property] long HoriOrientPosition;
185
186    /** determines the environment of the object to which the orientation
187        is related.
188
189        @see BaseFrame::RelOrientation
190     */
191    [property] short HoriOrientRelation;
192
193    /** determines the vertical orientation of the object.
194
195        @see BaseFrame::VertOrientation
196     */
197    [property] short VertOrient;
198
199    /** contains the vertical position of the object (1/100 mm).
200
201        It is only valid if TextEmbeddedObject::VertOrient is
202        VertOrientation::NONE.
203     */
204    [property] long VertOrientPosition;
205
206
207    /** determines the environment of the object to which the orientation is related.
208
209        @see BaseFrame::RelOrientation
210     */
211    [property] short VertOrientRelation;
212
213    /** contains the URL of a hyperlink that is set at the object.
214     */
215    [property] string HyperLinkURL;
216
217    /** contains the name of the target for a hyperlink that is set at the object.
218     */
219    [property] string HyperLinkTarget;
220
221    /** contains the name of the hyperlink that is set at the object.
222     */
223    [property] string HyperLinkName;
224
225    /** determines if the object is opaque or transparent for text.
226     */
227    [property] boolean Opaque;
228
229    /** determines if the object is mirrored on even pages.
230     */
231    [property] boolean PageToggle;
232
233    /** determines if the position is protected.
234     */
235    [property] boolean PositionProtected;
236
237    /** determines if the object is included in printing.
238     */
239    [property] boolean Print;
240
241    /** contains the type of the shadow of the object.
242     */
243    [property] com::sun::star::table::ShadowFormat ShadowFormat;
244
245    /** determines if the object gets an image map from a server.
246     */
247    [property] boolean ServerMap;
248
249    /** contains the size of the object.
250
251        @see BaseFrame::Height
252        @see BaseFrame::Width
253     */
254    [property] com::sun::star::awt::Size Size;
255
256    /** determines if the size is protected.
257     */
258    [property] boolean SizeProtected;
259    /** determines the type of the surrounding text.
260
261        @deprecated
262     */
263        [property] com::sun::star::text::WrapTextMode Surround;
264
265    /** determines if the text of the paragraph in which the object
266        is anchored, wraps around the object.
267     */
268    [property] boolean SurroundAnchorOnly;
269
270    /** determines the influence of the text wrap on the positioning of the
271        shape
272
273        <p>The value of this property is only evaluated for the positioning
274        of the shape, if the text document setting ConsiderTextWrapOnObjPos
275        is `TRUE`. Valid values are given by #WrapInfluenceOnPosition</p>
276
277        @since OOo 2.0
278     */
279    [optional, property] short WrapInfluenceOnPosition;
280
281    /** returns the actual size of the object.
282
283        <p>Since to obtain the correct actual size of the object not only
284        the  layouting for the frame needs to be finished but the whole
285        document needs to be formatted as well. Thus if that was not done
286        previously it may take some while to retrieve this value.</p>
287
288        @since OOo 2.0.4
289     */
290    [optional, property, maybevoid] com::sun::star::awt::Size LayoutSize;
291
292        /** contains short title for the object
293
294            <p>This short title is visible as an alternative tag in HTML format.
295            Accessibility tools can read this text.</p>
296
297            @since OOo 3.2
298        */
299        [optional, property] string Title;
300
301        /** contains description for the object
302
303            <p>The long description text can be entered to describe an object in
304            more detail to users with screen reader software. The description is
305            visible as an alternative tag for accessibility tools.</p>
306
307            @since OOo 3.2
308        */
309        [optional, property] string Description;
310        /** This enumeration selects the style the area will be filled with.
311
312            <p>Currently only set for gradients.</p>
313
314            @since LibreOffice 4.1
315        */
316        [optional, property] com::sun::star::drawing::FillStyle FillStyle;
317        /** If the property #FillStyle is set to
318            FillStyle::GRADIENT, this describes the gradient used.
319
320            @since LibreOffice 4.1
321        */
322        [optional, property] com::sun::star::awt::Gradient FillGradient;
323        /** If the property #FillStyle is set to
324            FillStyle::GRADIENT, this is the name of the gradient used.
325
326            @since LibreOffice 4.1
327        */
328        [optional, property] string FillGradientName;
329
330        /** This defines the degree of transparence of the shadow in percent.
331
332            <p>This is the same as setting the Color member of the
333            #ShadowFormat property to an ARGB color.</p>
334
335            @since LibreOffice 4.2
336         */
337        [optional, property] short ShadowTransparence;
338
339        /** Grab bag of frame properties, used as a string-any map for interim interop purposes.
340
341            @since LibreOffice 4.2
342
343            <p>This property is intentionally not handled by the ODF filter. Any
344            member that should be handled there should be first moved out from this grab
345            bag to a separate property.</p>
346        */
347        [optional, property] sequence<com::sun::star::beans::PropertyValue> FrameInteropGrabBag;
348
349        /** contains the relation of the relative height of the object.
350            <p> It is only valid if RelativeHeight is greater than zero.</p>
351
352            @see com::sun::star::text::RelOrientation
353            @since LibreOffice 4.3
354         */
355        [optional, property] short RelativeHeightRelation;
356
357        /** contains the relation of the relative width of the object.
358            <p> It is only valid if RelativeWidth is greater than zero.</p>
359
360            @see com::sun::star::text::RelOrientation
361            @since LibreOffice 4.3
362         */
363        [optional, property] short RelativeWidthRelation;
364
365    /** contains the graphic for the background.
366
367        @since LibreOffice 6.1
368    */
369    [optional, property] com::sun::star::graphic::XGraphic BackGraphic;
370
371    /** This defines if the frame is allowed to overlap with other anchored objects.
372        @since LibreOffice 6.4
373    */
374    [optional, property] boolean AllowOverlap;
375};
376
377
378}; }; }; };
379
380#endif
381
382/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
383