xref: /trunk/main/svx/inc/svx/svx3ditems.hxx (revision 3334a7e6)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _SVX3DITEMS_HXX
24 #define _SVX3DITEMS_HXX
25 
26 #include <svl/intitem.hxx>
27 #include <svl/eitem.hxx>
28 
29 
30 #include <editeng/colritem.hxx>
31 #include <svx/e3ditem.hxx>
32 #include <svx/viewpt3d.hxx>
33 #include <svx/svddef.hxx>
34 #include "svx/svxdllapi.h"
35 
36 // Svx3D _3DOBJ_ Items
37 class SVX_DLLPUBLIC Svx3DPercentDiagonalItem : public SfxUInt16Item {
38 public:
39 	Svx3DPercentDiagonalItem(sal_uInt16 nVal = 10);
40 };
41 
42 class Svx3DBackscaleItem : public SfxUInt16Item {
43 public:
44 	SVX_DLLPUBLIC Svx3DBackscaleItem(sal_uInt16 nVal = 100);
45 };
46 
47 class Svx3DDepthItem : public SfxUInt32Item {
48 public:
49 	SVX_DLLPUBLIC Svx3DDepthItem(sal_uInt32 nVal = 1000);
50 };
51 
52 class SVX_DLLPUBLIC Svx3DHorizontalSegmentsItem : public SfxUInt32Item {
53 public:
54 	Svx3DHorizontalSegmentsItem(sal_uInt32 nVal = 24);
55 };
56 
57 class Svx3DVerticalSegmentsItem : public SfxUInt32Item {
58 public:
59 	SVX_DLLPUBLIC Svx3DVerticalSegmentsItem(sal_uInt32 nVal = 24);
60 };
61 
62 class Svx3DEndAngleItem : public SfxUInt32Item {
63 public:
64 	SVX_DLLPUBLIC Svx3DEndAngleItem(sal_uInt32 nVal = 3600);
65 };
66 
67 class SVX_DLLPUBLIC Svx3DDoubleSidedItem : public SfxBoolItem {
68 public:
69 	Svx3DDoubleSidedItem(sal_Bool bVal = 0);
70 };
71 
72 // #i28528#
73 // Added extra Item (Bool) for chart2 to be able to show reduced line geometry
74 class Svx3DReducedLineGeometryItem : public SfxBoolItem {
75 public:
76 	Svx3DReducedLineGeometryItem(sal_Bool bVal = 0);
77 	virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
78 	virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
79 };
80 
81 class SVX_DLLPUBLIC Svx3DNormalsKindItem : public SfxUInt16Item {
82 public:
83 	Svx3DNormalsKindItem(sal_uInt16 nVal = 0);
84 
85 	// use drawing::NormalsKind
86 	SVX_DLLPRIVATE virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
87 	SVX_DLLPRIVATE virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
88 	SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
89 };
90 
91 class Svx3DNormalsInvertItem : public SfxBoolItem {
92 public:
93 	SVX_DLLPUBLIC Svx3DNormalsInvertItem(sal_Bool bVal = 0);
94 };
95 
96 class SVX_DLLPUBLIC Svx3DTextureProjectionXItem : public SfxUInt16Item {
97 public:
98 	Svx3DTextureProjectionXItem(sal_uInt16 nVal = 0);
99 
100 	// use drawing::TextureProjectionMode
101 	SVX_DLLPRIVATE virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
102 	SVX_DLLPRIVATE virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
103 	SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
104 };
105 
106 class SVX_DLLPUBLIC Svx3DTextureProjectionYItem : public SfxUInt16Item {
107 public:
108 	Svx3DTextureProjectionYItem(sal_uInt16 nVal = 0);
109 
110 	// use drawing::TextureProjectionMode
111 	virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
112 	virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
113 	virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
114 };
115 
116 class Svx3DShadow3DItem : public SfxBoolItem {
117 public:
118 	SVX_DLLPUBLIC Svx3DShadow3DItem(sal_Bool bVal = 0);
119 };
120 
121 class Svx3DMaterialColorItem : public SvxColorItem {
122 public:
123 	Svx3DMaterialColorItem(const Color& rCol = Color(0x0000b8ff));
124 };
125 
126 class Svx3DMaterialEmissionItem : public SvxColorItem {
127 public:
128 	SVX_DLLPUBLIC Svx3DMaterialEmissionItem(const Color& rCol = Color(0x00000000));
129 };
130 
131 class Svx3DMaterialSpecularItem : public SvxColorItem {
132 public:
133 	SVX_DLLPUBLIC Svx3DMaterialSpecularItem(const Color& rCol = Color(0x00ffffff));
134 };
135 
136 class Svx3DMaterialSpecularIntensityItem : public SfxUInt16Item {
137 public:
138 	SVX_DLLPUBLIC Svx3DMaterialSpecularIntensityItem(sal_uInt16 nVal = 15);
139 };
140 
141 class SVX_DLLPUBLIC Svx3DTextureKindItem : public SfxUInt16Item {
142 public:
143 	Svx3DTextureKindItem(sal_uInt16 nVal = 3);
144 
145 	// use drawing::TextureKind
146 	SVX_DLLPRIVATE virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
147 	SVX_DLLPRIVATE virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
148 	SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
149 };
150 
151 class SVX_DLLPUBLIC Svx3DTextureModeItem : public SfxUInt16Item {
152 public:
153 	Svx3DTextureModeItem(sal_uInt16 nVal = 2);
154 
155 	// use drawing:TextureMode
156 	SVX_DLLPRIVATE virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
157 	SVX_DLLPRIVATE virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
158 	SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
159 };
160 
161 class Svx3DTextureFilterItem : public SfxBoolItem {
162 public:
163 	SVX_DLLPUBLIC Svx3DTextureFilterItem(sal_Bool bVal = 0);
164 };
165 
166 // Svx3D _3DSCENE_ Items
167 class SVX_DLLPUBLIC Svx3DPerspectiveItem : public SfxUInt16Item {
168 public:
169 	Svx3DPerspectiveItem(sal_uInt16 nVal = (sal_uInt16)PR_PERSPECTIVE);
170 
171 	// use drawing::ProjectionMode
172 	SVX_DLLPRIVATE virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
173 	SVX_DLLPRIVATE virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
174 	SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
175 };
176 
177 class Svx3DDistanceItem : public SfxUInt32Item {
178 public:
179 	SVX_DLLPUBLIC Svx3DDistanceItem(sal_uInt32 nVal = 100);
180 };
181 
182 class Svx3DFocalLengthItem : public SfxUInt32Item {
183 public:
184 	SVX_DLLPUBLIC Svx3DFocalLengthItem(sal_uInt32 nVal = 100);
185 };
186 
187 class Svx3DTwoSidedLightingItem : public SfxBoolItem {
188 public:
189 	SVX_DLLPUBLIC Svx3DTwoSidedLightingItem(sal_Bool bVal = 0);
190 };
191 
192 class SVX_DLLPUBLIC Svx3DLightcolor1Item : public SvxColorItem {
193 public:
194 	Svx3DLightcolor1Item(const Color& rCol = Color(0xffcccccc));
195 };
196 
197 class SVX_DLLPUBLIC Svx3DLightcolor2Item : public SvxColorItem {
198 public:
199 	Svx3DLightcolor2Item(const Color& rCol = Color(0x00000000));
200 };
201 
202 class SVX_DLLPUBLIC Svx3DLightcolor3Item : public SvxColorItem {
203 public:
204 	Svx3DLightcolor3Item(const Color& rCol = Color(0x00000000));
205 };
206 
207 class SVX_DLLPUBLIC Svx3DLightcolor4Item : public SvxColorItem {
208 public:
209 	Svx3DLightcolor4Item(const Color& rCol = Color(0x00000000));
210 };
211 
212 class SVX_DLLPUBLIC Svx3DLightcolor5Item : public SvxColorItem {
213 public:
214 	Svx3DLightcolor5Item(const Color& rCol = Color(0x00000000));
215 };
216 
217 class SVX_DLLPUBLIC Svx3DLightcolor6Item : public SvxColorItem {
218 public:
219 	Svx3DLightcolor6Item(const Color& rCol = Color(0x00000000));
220 };
221 
222 class SVX_DLLPUBLIC Svx3DLightcolor7Item : public SvxColorItem {
223 public:
224 	Svx3DLightcolor7Item(const Color& rCol = Color(0x00000000));
225 };
226 
227 class SVX_DLLPUBLIC Svx3DLightcolor8Item : public SvxColorItem {
228 public:
229 	Svx3DLightcolor8Item(const Color& rCol = Color(0x00000000));
230 };
231 
232 class SVX_DLLPUBLIC Svx3DAmbientcolorItem : public SvxColorItem {
233 public:
234 	Svx3DAmbientcolorItem(const Color& rCol = Color(0x00666666));
235 };
236 
237 class SVX_DLLPUBLIC Svx3DLightOnOff1Item : public SfxBoolItem {
238 public:
239 	Svx3DLightOnOff1Item(sal_Bool bVal = 1);
240 };
241 
242 class SVX_DLLPUBLIC Svx3DLightOnOff2Item : public SfxBoolItem {
243 public:
244 	Svx3DLightOnOff2Item(sal_Bool bVal = 0);
245 };
246 
247 class SVX_DLLPUBLIC Svx3DLightOnOff3Item : public SfxBoolItem {
248 public:
249 	Svx3DLightOnOff3Item(sal_Bool bVal = 0);
250 };
251 
252 class SVX_DLLPUBLIC Svx3DLightOnOff4Item : public SfxBoolItem {
253 public:
254 	Svx3DLightOnOff4Item(sal_Bool bVal = 0);
255 };
256 
257 class SVX_DLLPUBLIC Svx3DLightOnOff5Item : public SfxBoolItem {
258 public:
259 	Svx3DLightOnOff5Item(sal_Bool bVal = 0);
260 };
261 
262 class SVX_DLLPUBLIC Svx3DLightOnOff6Item : public SfxBoolItem {
263 public:
264 	Svx3DLightOnOff6Item(sal_Bool bVal = 0);
265 };
266 
267 class SVX_DLLPUBLIC Svx3DLightOnOff7Item : public SfxBoolItem {
268 public:
269 	Svx3DLightOnOff7Item(sal_Bool bVal = 0);
270 };
271 
272 class SVX_DLLPUBLIC Svx3DLightOnOff8Item : public SfxBoolItem {
273 public:
274 	Svx3DLightOnOff8Item(sal_Bool bVal = 0);
275 };
276 
277 class SVX_DLLPUBLIC Svx3DLightDirection1Item : public SvxB3DVectorItem {
278 public:
279 	Svx3DLightDirection1Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.57735026918963, 0.57735026918963, 0.57735026918963));
280 };
281 
282 class SVX_DLLPUBLIC Svx3DLightDirection2Item : public SvxB3DVectorItem {
283 public:
284 	Svx3DLightDirection2Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
285 };
286 
287 class SVX_DLLPUBLIC Svx3DLightDirection3Item : public SvxB3DVectorItem {
288 public:
289 	Svx3DLightDirection3Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
290 };
291 
292 class SVX_DLLPUBLIC Svx3DLightDirection4Item : public SvxB3DVectorItem {
293 public:
294 	Svx3DLightDirection4Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
295 };
296 
297 class SVX_DLLPUBLIC Svx3DLightDirection5Item : public SvxB3DVectorItem {
298 public:
299 	Svx3DLightDirection5Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
300 };
301 
302 class SVX_DLLPUBLIC Svx3DLightDirection6Item : public SvxB3DVectorItem {
303 public:
304 	Svx3DLightDirection6Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
305 };
306 
307 class SVX_DLLPUBLIC Svx3DLightDirection7Item : public SvxB3DVectorItem {
308 public:
309 	Svx3DLightDirection7Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
310 };
311 
312 class SVX_DLLPUBLIC Svx3DLightDirection8Item : public SvxB3DVectorItem {
313 public:
314 	Svx3DLightDirection8Item(const basegfx::B3DVector& rVec = basegfx::B3DVector(0.0,0.0,1.0));
315 };
316 
317 class Svx3DShadowSlantItem : public SfxUInt16Item {
318 public:
319 	SVX_DLLPUBLIC Svx3DShadowSlantItem(sal_uInt16 nVal = 0);
320 };
321 
322 class SVX_DLLPUBLIC Svx3DShadeModeItem : public SfxUInt16Item {
323 public:
324 	Svx3DShadeModeItem(sal_uInt16 nVal = 2);
325 
326 	// use drawing::ShadeMode
327 	SVX_DLLPRIVATE virtual	sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
328 	SVX_DLLPRIVATE virtual	sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
329 	SVX_DLLPRIVATE virtual SfxPoolItem* Clone(SfxItemPool* pPool = NULL) const;
330 };
331 
332 //////////////////////////////////////////////////////////////////////////////
333 // #107245# Item to replace bExtrudeSmoothed and bLatheSmoothed
334 class Svx3DSmoothNormalsItem : public SfxBoolItem {
335 public:
336 	Svx3DSmoothNormalsItem(sal_Bool bVal = 1);
337 	virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
338 	virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
339 };
340 
341 // #107245# Item to replace bExtrudeSmoothFrontBack and bLatheSmoothFrontBack
342 class Svx3DSmoothLidsItem : public SfxBoolItem {
343 public:
344 	Svx3DSmoothLidsItem(sal_Bool bVal = 0);
345 	virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
346 	virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
347 };
348 
349 // #107245# Item to replace bExtrudeCharacterMode and bLatheCharacterMode
350 class Svx3DCharacterModeItem : public SfxBoolItem {
351 public:
352 	Svx3DCharacterModeItem(sal_Bool bVal = 0);
353 	virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
354 	virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
355 };
356 
357 // #107245# Item to replace bExtrudeCloseFront and bLatheCloseFront
358 class SVX_DLLPUBLIC Svx3DCloseFrontItem : public SfxBoolItem {
359 public:
360 	Svx3DCloseFrontItem(sal_Bool bVal = 1);
361 	SVX_DLLPRIVATE virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
362 	SVX_DLLPRIVATE virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
363 };
364 
365 // #107245# Item to replace bExtrudeCloseBack and bLatheCloseBack
366 class SVX_DLLPUBLIC Svx3DCloseBackItem : public SfxBoolItem {
367 public:
368 	Svx3DCloseBackItem(sal_Bool bVal = 1);
369 	SVX_DLLPRIVATE virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nItemVersion) const;
370 	SVX_DLLPRIVATE virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const;
371 };
372 
373 #endif // _SVX3DITEMS_HXX
374