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_drawing_FillProperties_idl__
28#define __com_sun_star_drawing_FillProperties_idl__
29
30#ifndef __com_sun_star_drawing_FillStyle_idl__
31#include <com/sun/star/drawing/FillStyle.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_awt_Gradient_idl__
39#include <com/sun/star/awt/Gradient.idl>
40#endif
41
42#ifndef __com_sun_star_drawing_Hatch_idl__
43#include <com/sun/star/drawing/Hatch.idl>
44#endif
45
46#ifndef __com_sun_star_drawing_BitmapMode_idl__
47#include <com/sun/star/drawing/BitmapMode.idl>
48#endif
49
50#ifndef __com_sun_star_awt_XBitmap_idl__
51#include <com/sun/star/awt/XBitmap.idl>
52#endif
53
54#ifndef __com_sun_star_drawing_RectanglePoint_idl__
55#include <com/sun/star/drawing/RectanglePoint.idl>
56#endif
57
58
59//=============================================================================
60
61module com { module sun { module star { module drawing {
62
63//=============================================================================
64
65/** This is a set of properties to describe the style for rendering an area.
66 */
67published service FillProperties
68{
69	//-------------------------------------------------------------------------
70    /** This enumeration selects the style the area will be filled with.
71	*/
72    [property] FillStyle FillStyle;
73
74	//-------------------------------------------------------------------------
75    /** If the property <member>FillStyle</member> is set to <const>
76        FillStyle::SOLID</const>, this is the color used.
77	*/
78	[property] com::sun::star::util::Color FillColor;
79
80	//-------------------------------------------------------------------------
81	/** This is the transparence of the filled area.
82
83        <p>This property is only valid if the property <member>FillStyle
84        </member> is set to <const>FillStyle::SOLID</const>.
85	*/
86	[property] short FillTransparence;
87
88	//-------------------------------------------------------------------------
89	/** If a gradient is used for transparency, this is the name of the
90		used transparence gradient style or it is empty. If you set the name
91		of a transparence gradient style contained in the document, this
92		style used.
93	*/
94	[property] string FillTransparenceGradientName;
95
96
97	//-------------------------------------------------------------------------
98	/** This describes the transparency of the fill area as a gradient.
99	*/
100	[optional, property] com::sun::star::awt::Gradient FillTransparenceGradient;
101
102	//-------------------------------------------------------------------------
103    /** If the property <member>FillStyle</member> is set to <const>
104        FillStyle::GRADIENT</const>, this is the name of the used fill
105        gradient style.
106	*/
107	[property] string FillGradientName;
108
109	//-------------------------------------------------------------------------
110    /** If the property <member>FillStyle</member> is set to <const>
111        FillStyle::GRADIENT</const>, this describes the gradient used.
112	*/
113	[optional, property] com::sun::star::awt::Gradient FillGradient;
114
115	//-------------------------------------------------------------------------
116    /** If the property <member>FillStyle</member> is set to <const>
117        FillStyle::HATCH</const>, this is the name of the used fill hatch
118        style.
119	*/
120	[property] string FillHatchName;
121
122	//-------------------------------------------------------------------------
123    /** If the property <member>FillStyle</member> is set to <const>
124        FillStyle::HATCH</const>, this describes the hatch used.
125	*/
126    [optional, property] Hatch FillHatch;
127
128    //-------------------------------------------------------------------------
129    /** if this is <TRUE/>, the transparent background of a
130        hatch filled area is drawn in the current background color.
131    */
132    [property] boolean FillBackground;
133
134	//-------------------------------------------------------------------------
135    /** If the property <memebr>FillStyle</member> is set to <const>
136        FillStyle::BITMAP</const>, this is the name of the used fill bitmap
137        style.
138	*/
139	[property] string FillBitmapName;
140
141	//-------------------------------------------------------------------------
142    /** If the property <member>FillStyle</member> is set to <const>
143        FillStyle::BITMAP</const>, this is the bitmap used.
144	*/
145	[optional, property] com::sun::star::awt::XBitmap FillBitmap;
146
147	//-------------------------------------------------------------------------
148    /** If the property <member>FillStyle</member> is set to <const>
149        FillStyle::BITMAP</const>, this is a URL to the bitmap used.
150	*/
151	[optional, property] string FillBitmapURL;
152
153	//-------------------------------------------------------------------------
154    /** This is the horizontal offset where the tile starts.
155
156        <p>It is given in percent in relation to the width of the bitmap.</p>
157	*/
158	[property] short FillBitmapPositionOffsetX;
159
160	//-------------------------------------------------------------------------
161    /** This is the vertical offset where the tile starts.
162
163        <p>It is given in percent in relation to the height of the bitmap.</p>
164	*/
165	[property] short FillBitmapPositionOffsetY;
166
167    //-------------------------------------------------------------------------
168    /** Every second line of tiles is moved the given percent of the
169        witdh of the bitmap.
170    */
171    [property] short FillBitmapOffsetX;
172
173    //-------------------------------------------------------------------------
174    /** Every second row of tiles is moved the given percent of the
175        height of the bitmap.
176    */
177    [property] short FillBitmapOffsetY;
178
179	//-------------------------------------------------------------------------
180	/** The RectanglePoint specifies the position inside of the bitmap to
181		use as the top left position for rendering.
182	*/
183    [property] RectanglePoint FillBitmapRectanglePoint;
184
185	//-------------------------------------------------------------------------
186    /** specifies if the size is given in percentage or as an absolute value.
187
188        <p>If this is <TRUE/>, the properties <member>FillBitmapSizeX</member>
189        and <member>FillBitmapSizeY</member> contain the size of the tile in
190        percent of the size of the original bitmap. If this is <FALSE/>, the
191        size of the tile is specified with 1/100th mm.
192	*/
193	[property] boolean FillBitmapLogicalSize;
194
195	//-------------------------------------------------------------------------
196	/** This is the width of the tile for filling.
197
198        <p>Depending on the property <member>FillBitmapLogicalSize</member>,
199        this is either relative or absolute.
200	*/
201	[property] long FillBitmapSizeX;
202
203	//-------------------------------------------------------------------------
204	/** This is the height of the tile for filling.
205
206        <p>Depending on the property <member>FillBitmapLogicalSize</member>,
207        this is either relative or absolute.
208	*/
209	[property] long FillBitmapSizeY;
210
211	//-------------------------------------------------------------------------
212	/** this enum selects how a area is filled with a single bitmap.
213
214        <p>This property corresponds to the properties <member>
215        FillBitmapStretch</member> and <member>FillBitmapTile</member>.</p>
216
217        <p>If set to <const>BitmapMode::REPEAT</const>, the property
218        FillBitmapStretch is set to <FALSE/>, and the property FillBitmapTile
219        is set to <TRUE/>.</p>
220
221        <p>If set to <const>BitmapMode::STRETCH</const>, the property
222        FillBitmapStretch is set to <TRUE/>, and the property FillBitmapTile
223        is set to <FALSE/>.</p>
224
225        <p>If set to <const>BitmapMode::NO_REPEAT</const>, both properties
226        FillBitmapStretch and FillBitmapTile are set to <FALSE/>.</p>
227	*/
228    [property] BitmapMode FillBitmapMode;
229
230    //-------------------------------------------------------------------------
231    /** if set, the fill bitmap is stretched to fill the area of the shape.
232
233        <p>This property should not be used anymore and is included here for
234        completeness. The <member>FillBitmapMode</member> property can be used
235        instead to set all supported bitmap modes.</p>
236
237        <p>If set to <TRUE/>, the value of the FillBitmapMode property changes
238        to <const>BitmapMode::STRETCH</const>. BUT: behaviour is undefined, if
239        the property <member>FillBitmapTile</member> is <TRUE/> too.</p>
240
241        <p>If set to <FALSE/>, the value of the FillBitmapMode property
242        changes to <const>BitmapMode::REPEAT</const> or <const>
243        BitmapMode::NO_REPEAT</const>, depending on the current value of the
244        <member>FillBitmapTile</member> property.</p>
245     */
246    [optional, property] boolean FillBitmapStretch;
247
248    //-------------------------------------------------------------------------
249    /** if set, the fill bitmap is repeated to fill the area of the shape.
250
251        <p>This property should not be used anymore and is included here for
252        completeness. The <member>FillBitmapMode</member> property can be used
253        instead to set all supported bitmap modes.</p>
254
255        <p>If set to <TRUE/>, the value of the FillBitmapMode property changes
256        to <const>BitmapMode::REPEAT</const>. BUT: behaviour is undefined, if
257        the property <member>FillBitmapStretch</member> is <TRUE/> too.</p>
258
259        <p>If set to <FALSE/>, the value of the FillBitmapMode property
260        changes to <const>BitmapMode::STRETCH</const> or <const>
261        BitmapMode::NO_REPEAT</const>, depending on the current value of the
262        <member>FillBitmapStretch</member> property.</p>
263     */
264    [optional, property] boolean FillBitmapTile;
265
266	//-------------------------------------------------------------------------
267};
268
269//=============================================================================
270
271}; }; }; };
272
273#endif
274
275