1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #ifndef _SVX3DITEMS_HXX
20 #define _SVX3DITEMS_HXX
22 #include <svl/intitem.hxx>
23 #include <svl/eitem.hxx>
26 #include <editeng/colritem.hxx>
27 #include <svx/e3ditem.hxx>
28 #include <svx/viewpt3d.hxx>
29 #include <svx/svddef.hxx>
30 #include "svx/svxdllapi.h"
32 // Svx3D _3DOBJ_ Items
33 class SVX_DLLPUBLIC Svx3DPercentDiagonalItem
: public SfxUInt16Item
{
35 Svx3DPercentDiagonalItem(sal_uInt16 nVal
= 10);
38 class Svx3DBackscaleItem
: public SfxUInt16Item
{
40 SVX_DLLPUBLIC
Svx3DBackscaleItem(sal_uInt16 nVal
= 100);
43 class Svx3DDepthItem
: public SfxUInt32Item
{
45 SVX_DLLPUBLIC
Svx3DDepthItem(sal_uInt32 nVal
= 1000);
48 class SVX_DLLPUBLIC Svx3DHorizontalSegmentsItem
: public SfxUInt32Item
{
50 Svx3DHorizontalSegmentsItem(sal_uInt32 nVal
= 24);
53 class Svx3DVerticalSegmentsItem
: public SfxUInt32Item
{
55 SVX_DLLPUBLIC
Svx3DVerticalSegmentsItem(sal_uInt32 nVal
= 24);
58 class Svx3DEndAngleItem
: public SfxUInt32Item
{
60 SVX_DLLPUBLIC
Svx3DEndAngleItem(sal_uInt32 nVal
= 3600);
63 class SVX_DLLPUBLIC Svx3DDoubleSidedItem
: public SfxBoolItem
{
65 Svx3DDoubleSidedItem(sal_Bool bVal
= 0);
69 // Added extra Item (Bool) for chart2 to be able to show reduced line geometry
70 class Svx3DReducedLineGeometryItem
: public SfxBoolItem
{
72 Svx3DReducedLineGeometryItem(sal_Bool bVal
= 0);
73 virtual SfxPoolItem
* Create(SvStream
& rIn
, sal_uInt16 nItemVersion
) const;
74 virtual sal_uInt16
GetVersion(sal_uInt16 nFileFormatVersion
) const;
77 class SVX_DLLPUBLIC Svx3DNormalsKindItem
: public SfxUInt16Item
{
79 Svx3DNormalsKindItem(sal_uInt16 nVal
= 0);
81 // use drawing::NormalsKind
82 SVX_DLLPRIVATE
virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
83 SVX_DLLPRIVATE
virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
84 SVX_DLLPRIVATE
virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
87 class Svx3DNormalsInvertItem
: public SfxBoolItem
{
89 SVX_DLLPUBLIC
Svx3DNormalsInvertItem(sal_Bool bVal
= 0);
92 class SVX_DLLPUBLIC Svx3DTextureProjectionXItem
: public SfxUInt16Item
{
94 Svx3DTextureProjectionXItem(sal_uInt16 nVal
= 0);
96 // use drawing::TextureProjectionMode
97 SVX_DLLPRIVATE
virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
98 SVX_DLLPRIVATE
virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
99 SVX_DLLPRIVATE
virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
102 class SVX_DLLPUBLIC Svx3DTextureProjectionYItem
: public SfxUInt16Item
{
104 Svx3DTextureProjectionYItem(sal_uInt16 nVal
= 0);
106 // use drawing::TextureProjectionMode
107 virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
108 virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
109 virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
112 class Svx3DShadow3DItem
: public SfxBoolItem
{
114 SVX_DLLPUBLIC
Svx3DShadow3DItem(sal_Bool bVal
= 0);
117 class Svx3DMaterialColorItem
: public SvxColorItem
{
119 Svx3DMaterialColorItem(const Color
& rCol
= Color(0x0000b8ff));
122 class Svx3DMaterialEmissionItem
: public SvxColorItem
{
124 SVX_DLLPUBLIC
Svx3DMaterialEmissionItem(const Color
& rCol
= Color(0x00000000));
127 class Svx3DMaterialSpecularItem
: public SvxColorItem
{
129 SVX_DLLPUBLIC
Svx3DMaterialSpecularItem(const Color
& rCol
= Color(0x00ffffff));
132 class Svx3DMaterialSpecularIntensityItem
: public SfxUInt16Item
{
134 SVX_DLLPUBLIC
Svx3DMaterialSpecularIntensityItem(sal_uInt16 nVal
= 15);
137 class SVX_DLLPUBLIC Svx3DTextureKindItem
: public SfxUInt16Item
{
139 Svx3DTextureKindItem(sal_uInt16 nVal
= 3);
141 // use drawing::TextureKind
142 SVX_DLLPRIVATE
virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
143 SVX_DLLPRIVATE
virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
144 SVX_DLLPRIVATE
virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
147 class SVX_DLLPUBLIC Svx3DTextureModeItem
: public SfxUInt16Item
{
149 Svx3DTextureModeItem(sal_uInt16 nVal
= 2);
151 // use drawing:TextureMode
152 SVX_DLLPRIVATE
virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
153 SVX_DLLPRIVATE
virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
154 SVX_DLLPRIVATE
virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
157 class Svx3DTextureFilterItem
: public SfxBoolItem
{
159 SVX_DLLPUBLIC
Svx3DTextureFilterItem(sal_Bool bVal
= 0);
162 // Svx3D _3DSCENE_ Items
163 class SVX_DLLPUBLIC Svx3DPerspectiveItem
: public SfxUInt16Item
{
165 Svx3DPerspectiveItem(sal_uInt16 nVal
= (sal_uInt16
)PR_PERSPECTIVE
);
167 // use drawing::ProjectionMode
168 SVX_DLLPRIVATE
virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
169 SVX_DLLPRIVATE
virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
170 SVX_DLLPRIVATE
virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
173 class Svx3DDistanceItem
: public SfxUInt32Item
{
175 SVX_DLLPUBLIC
Svx3DDistanceItem(sal_uInt32 nVal
= 100);
178 class Svx3DFocalLengthItem
: public SfxUInt32Item
{
180 SVX_DLLPUBLIC
Svx3DFocalLengthItem(sal_uInt32 nVal
= 100);
183 class Svx3DTwoSidedLightingItem
: public SfxBoolItem
{
185 SVX_DLLPUBLIC
Svx3DTwoSidedLightingItem(sal_Bool bVal
= 0);
188 class SVX_DLLPUBLIC Svx3DLightcolor1Item
: public SvxColorItem
{
190 Svx3DLightcolor1Item(const Color
& rCol
= Color(0xffcccccc));
193 class SVX_DLLPUBLIC Svx3DLightcolor2Item
: public SvxColorItem
{
195 Svx3DLightcolor2Item(const Color
& rCol
= Color(0x00000000));
198 class SVX_DLLPUBLIC Svx3DLightcolor3Item
: public SvxColorItem
{
200 Svx3DLightcolor3Item(const Color
& rCol
= Color(0x00000000));
203 class SVX_DLLPUBLIC Svx3DLightcolor4Item
: public SvxColorItem
{
205 Svx3DLightcolor4Item(const Color
& rCol
= Color(0x00000000));
208 class SVX_DLLPUBLIC Svx3DLightcolor5Item
: public SvxColorItem
{
210 Svx3DLightcolor5Item(const Color
& rCol
= Color(0x00000000));
213 class SVX_DLLPUBLIC Svx3DLightcolor6Item
: public SvxColorItem
{
215 Svx3DLightcolor6Item(const Color
& rCol
= Color(0x00000000));
218 class SVX_DLLPUBLIC Svx3DLightcolor7Item
: public SvxColorItem
{
220 Svx3DLightcolor7Item(const Color
& rCol
= Color(0x00000000));
223 class SVX_DLLPUBLIC Svx3DLightcolor8Item
: public SvxColorItem
{
225 Svx3DLightcolor8Item(const Color
& rCol
= Color(0x00000000));
228 class SVX_DLLPUBLIC Svx3DAmbientcolorItem
: public SvxColorItem
{
230 Svx3DAmbientcolorItem(const Color
& rCol
= Color(0x00666666));
233 class SVX_DLLPUBLIC Svx3DLightOnOff1Item
: public SfxBoolItem
{
235 Svx3DLightOnOff1Item(sal_Bool bVal
= 1);
238 class SVX_DLLPUBLIC Svx3DLightOnOff2Item
: public SfxBoolItem
{
240 Svx3DLightOnOff2Item(sal_Bool bVal
= 0);
243 class SVX_DLLPUBLIC Svx3DLightOnOff3Item
: public SfxBoolItem
{
245 Svx3DLightOnOff3Item(sal_Bool bVal
= 0);
248 class SVX_DLLPUBLIC Svx3DLightOnOff4Item
: public SfxBoolItem
{
250 Svx3DLightOnOff4Item(sal_Bool bVal
= 0);
253 class SVX_DLLPUBLIC Svx3DLightOnOff5Item
: public SfxBoolItem
{
255 Svx3DLightOnOff5Item(sal_Bool bVal
= 0);
258 class SVX_DLLPUBLIC Svx3DLightOnOff6Item
: public SfxBoolItem
{
260 Svx3DLightOnOff6Item(sal_Bool bVal
= 0);
263 class SVX_DLLPUBLIC Svx3DLightOnOff7Item
: public SfxBoolItem
{
265 Svx3DLightOnOff7Item(sal_Bool bVal
= 0);
268 class SVX_DLLPUBLIC Svx3DLightOnOff8Item
: public SfxBoolItem
{
270 Svx3DLightOnOff8Item(sal_Bool bVal
= 0);
273 class SVX_DLLPUBLIC Svx3DLightDirection1Item
: public SvxB3DVectorItem
{
275 Svx3DLightDirection1Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.57735026918963, 0.57735026918963, 0.57735026918963));
278 class SVX_DLLPUBLIC Svx3DLightDirection2Item
: public SvxB3DVectorItem
{
280 Svx3DLightDirection2Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
283 class SVX_DLLPUBLIC Svx3DLightDirection3Item
: public SvxB3DVectorItem
{
285 Svx3DLightDirection3Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
288 class SVX_DLLPUBLIC Svx3DLightDirection4Item
: public SvxB3DVectorItem
{
290 Svx3DLightDirection4Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
293 class SVX_DLLPUBLIC Svx3DLightDirection5Item
: public SvxB3DVectorItem
{
295 Svx3DLightDirection5Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
298 class SVX_DLLPUBLIC Svx3DLightDirection6Item
: public SvxB3DVectorItem
{
300 Svx3DLightDirection6Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
303 class SVX_DLLPUBLIC Svx3DLightDirection7Item
: public SvxB3DVectorItem
{
305 Svx3DLightDirection7Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
308 class SVX_DLLPUBLIC Svx3DLightDirection8Item
: public SvxB3DVectorItem
{
310 Svx3DLightDirection8Item(const basegfx::B3DVector
& rVec
= basegfx::B3DVector(0.0,0.0,1.0));
313 class Svx3DShadowSlantItem
: public SfxUInt16Item
{
315 SVX_DLLPUBLIC
Svx3DShadowSlantItem(sal_uInt16 nVal
= 0);
318 class SVX_DLLPUBLIC Svx3DShadeModeItem
: public SfxUInt16Item
{
320 Svx3DShadeModeItem(sal_uInt16 nVal
= 2);
322 // use drawing::ShadeMode
323 SVX_DLLPRIVATE
virtual bool QueryValue( com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 ) const;
324 SVX_DLLPRIVATE
virtual bool PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
= 0 );
325 SVX_DLLPRIVATE
virtual SfxPoolItem
* Clone(SfxItemPool
* pPool
= NULL
) const;
328 //////////////////////////////////////////////////////////////////////////////
329 // #107245# Item to replace bExtrudeSmoothed and bLatheSmoothed
330 class Svx3DSmoothNormalsItem
: public SfxBoolItem
{
332 Svx3DSmoothNormalsItem(sal_Bool bVal
= 1);
333 virtual SfxPoolItem
* Create(SvStream
& rIn
, sal_uInt16 nItemVersion
) const;
334 virtual sal_uInt16
GetVersion(sal_uInt16 nFileFormatVersion
) const;
337 // #107245# Item to replace bExtrudeSmoothFrontBack and bLatheSmoothFrontBack
338 class Svx3DSmoothLidsItem
: public SfxBoolItem
{
340 Svx3DSmoothLidsItem(sal_Bool bVal
= 0);
341 virtual SfxPoolItem
* Create(SvStream
& rIn
, sal_uInt16 nItemVersion
) const;
342 virtual sal_uInt16
GetVersion(sal_uInt16 nFileFormatVersion
) const;
345 // #107245# Item to replace bExtrudeCharacterMode and bLatheCharacterMode
346 class Svx3DCharacterModeItem
: public SfxBoolItem
{
348 Svx3DCharacterModeItem(sal_Bool bVal
= 0);
349 virtual SfxPoolItem
* Create(SvStream
& rIn
, sal_uInt16 nItemVersion
) const;
350 virtual sal_uInt16
GetVersion(sal_uInt16 nFileFormatVersion
) const;
353 // #107245# Item to replace bExtrudeCloseFront and bLatheCloseFront
354 class SVX_DLLPUBLIC Svx3DCloseFrontItem
: public SfxBoolItem
{
356 Svx3DCloseFrontItem(sal_Bool bVal
= 1);
357 SVX_DLLPRIVATE
virtual SfxPoolItem
* Create(SvStream
& rIn
, sal_uInt16 nItemVersion
) const;
358 SVX_DLLPRIVATE
virtual sal_uInt16
GetVersion(sal_uInt16 nFileFormatVersion
) const;
361 // #107245# Item to replace bExtrudeCloseBack and bLatheCloseBack
362 class SVX_DLLPUBLIC Svx3DCloseBackItem
: public SfxBoolItem
{
364 Svx3DCloseBackItem(sal_Bool bVal
= 1);
365 SVX_DLLPRIVATE
virtual SfxPoolItem
* Create(SvStream
& rIn
, sal_uInt16 nItemVersion
) const;
366 SVX_DLLPRIVATE
virtual sal_uInt16
GetVersion(sal_uInt16 nFileFormatVersion
) const;
369 #endif // _SVX3DITEMS_HXX
371 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */