1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski #include <com/sun/star/text/RelOrientation.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/text/VertOrientation.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/text/HorizontalAdjust.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/text/DocumentStatistic.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/text/HoriOrientation.hpp>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/text/HoriOrientationFormat.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/text/NotePrintMode.hpp>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/text/SizeType.hpp>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/text/VertOrientationFormat.hpp>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/text/WrapTextMode.hpp>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/text/GraphicCrop.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/drawing/ColorMode.hpp>
41*b1cdbd2cSJim Jagielski #include <svtools/grfmgr.hxx>
42*b1cdbd2cSJim Jagielski #include <swtypes.hxx>
43*b1cdbd2cSJim Jagielski #include <grfatr.hxx>
44*b1cdbd2cSJim Jagielski #include <swunohelper.hxx>
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski #ifndef _CMDID_H
47*b1cdbd2cSJim Jagielski #include <cmdid.h>
48*b1cdbd2cSJim Jagielski #endif
49*b1cdbd2cSJim Jagielski #ifndef _UNOMID_H
50*b1cdbd2cSJim Jagielski #include <unomid.h>
51*b1cdbd2cSJim Jagielski #endif
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
54*b1cdbd2cSJim Jagielski
TYPEINIT1_AUTOFACTORY(SwCropGrf,SfxPoolItem)55*b1cdbd2cSJim Jagielski TYPEINIT1_AUTOFACTORY(SwCropGrf, SfxPoolItem)
56*b1cdbd2cSJim Jagielski TYPEINIT1_AUTOFACTORY(SwGammaGrf, SfxPoolItem)
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim Jagielski /******************************************************************************
59*b1cdbd2cSJim Jagielski * Implementierung class SwMirrorGrf
60*b1cdbd2cSJim Jagielski ******************************************************************************/
61*b1cdbd2cSJim Jagielski
62*b1cdbd2cSJim Jagielski SfxPoolItem* SwMirrorGrf::Clone( SfxItemPool* ) const
63*b1cdbd2cSJim Jagielski {
64*b1cdbd2cSJim Jagielski return new SwMirrorGrf( *this );
65*b1cdbd2cSJim Jagielski }
66*b1cdbd2cSJim Jagielski
GetValueCount() const67*b1cdbd2cSJim Jagielski sal_uInt16 SwMirrorGrf::GetValueCount() const
68*b1cdbd2cSJim Jagielski {
69*b1cdbd2cSJim Jagielski return RES_MIRROR_GRAPH_END - RES_MIRROR_GRAPH_BEGIN;
70*b1cdbd2cSJim Jagielski }
71*b1cdbd2cSJim Jagielski
operator ==(const SfxPoolItem & rItem) const72*b1cdbd2cSJim Jagielski int SwMirrorGrf::operator==( const SfxPoolItem& rItem) const
73*b1cdbd2cSJim Jagielski {
74*b1cdbd2cSJim Jagielski return SfxEnumItem::operator==(rItem) &&
75*b1cdbd2cSJim Jagielski ((SwMirrorGrf&)rItem).IsGrfToggle() == IsGrfToggle();
76*b1cdbd2cSJim Jagielski }
77*b1cdbd2cSJim Jagielski
lcl_IsHoriOnEvenPages(int nEnum,sal_Bool bToggle)78*b1cdbd2cSJim Jagielski sal_Bool lcl_IsHoriOnEvenPages(int nEnum, sal_Bool bToggle)
79*b1cdbd2cSJim Jagielski {
80*b1cdbd2cSJim Jagielski sal_Bool bEnum = nEnum == RES_MIRROR_GRAPH_VERT ||
81*b1cdbd2cSJim Jagielski nEnum == RES_MIRROR_GRAPH_BOTH;
82*b1cdbd2cSJim Jagielski return bEnum != bToggle;
83*b1cdbd2cSJim Jagielski }
lcl_IsHoriOnOddPages(int nEnum)84*b1cdbd2cSJim Jagielski sal_Bool lcl_IsHoriOnOddPages(int nEnum)
85*b1cdbd2cSJim Jagielski {
86*b1cdbd2cSJim Jagielski sal_Bool bEnum = nEnum == RES_MIRROR_GRAPH_VERT ||
87*b1cdbd2cSJim Jagielski nEnum == RES_MIRROR_GRAPH_BOTH;
88*b1cdbd2cSJim Jagielski return bEnum;
89*b1cdbd2cSJim Jagielski }
QueryValue(uno::Any & rVal,sal_uInt8 nMemberId) const90*b1cdbd2cSJim Jagielski sal_Bool SwMirrorGrf::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
91*b1cdbd2cSJim Jagielski {
92*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_True,
93*b1cdbd2cSJim Jagielski bVal;
94*b1cdbd2cSJim Jagielski // Vertikal und Horizontal sind mal getauscht worden!
95*b1cdbd2cSJim Jagielski nMemberId &= ~CONVERT_TWIPS;
96*b1cdbd2cSJim Jagielski switch ( nMemberId )
97*b1cdbd2cSJim Jagielski {
98*b1cdbd2cSJim Jagielski case MID_MIRROR_HORZ_EVEN_PAGES:
99*b1cdbd2cSJim Jagielski bVal = lcl_IsHoriOnEvenPages(GetValue(), IsGrfToggle());
100*b1cdbd2cSJim Jagielski break;
101*b1cdbd2cSJim Jagielski case MID_MIRROR_HORZ_ODD_PAGES:
102*b1cdbd2cSJim Jagielski bVal = lcl_IsHoriOnOddPages(GetValue());
103*b1cdbd2cSJim Jagielski break;
104*b1cdbd2cSJim Jagielski case MID_MIRROR_VERT:
105*b1cdbd2cSJim Jagielski bVal = GetValue() == RES_MIRROR_GRAPH_HOR ||
106*b1cdbd2cSJim Jagielski GetValue() == RES_MIRROR_GRAPH_BOTH;
107*b1cdbd2cSJim Jagielski break;
108*b1cdbd2cSJim Jagielski default:
109*b1cdbd2cSJim Jagielski ASSERT( !this, "unknown MemberId" );
110*b1cdbd2cSJim Jagielski bRet = sal_False;
111*b1cdbd2cSJim Jagielski }
112*b1cdbd2cSJim Jagielski rVal.setValue( &bVal, ::getBooleanCppuType() );
113*b1cdbd2cSJim Jagielski return bRet;
114*b1cdbd2cSJim Jagielski }
115*b1cdbd2cSJim Jagielski
PutValue(const uno::Any & rVal,sal_uInt8 nMemberId)116*b1cdbd2cSJim Jagielski sal_Bool SwMirrorGrf::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
117*b1cdbd2cSJim Jagielski {
118*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_True;
119*b1cdbd2cSJim Jagielski sal_Bool bVal = *(sal_Bool*)rVal.getValue();
120*b1cdbd2cSJim Jagielski // Vertikal und Horizontal sind mal getauscht worden!
121*b1cdbd2cSJim Jagielski nMemberId &= ~CONVERT_TWIPS;
122*b1cdbd2cSJim Jagielski switch ( nMemberId )
123*b1cdbd2cSJim Jagielski {
124*b1cdbd2cSJim Jagielski case MID_MIRROR_HORZ_EVEN_PAGES:
125*b1cdbd2cSJim Jagielski case MID_MIRROR_HORZ_ODD_PAGES:
126*b1cdbd2cSJim Jagielski {
127*b1cdbd2cSJim Jagielski sal_Bool bIsVert = GetValue() == RES_MIRROR_GRAPH_HOR ||
128*b1cdbd2cSJim Jagielski GetValue() == RES_MIRROR_GRAPH_BOTH;
129*b1cdbd2cSJim Jagielski sal_Bool bOnOddPages = nMemberId == MID_MIRROR_HORZ_EVEN_PAGES ?
130*b1cdbd2cSJim Jagielski lcl_IsHoriOnOddPages(GetValue()) : bVal;
131*b1cdbd2cSJim Jagielski sal_Bool bOnEvenPages = nMemberId == MID_MIRROR_HORZ_ODD_PAGES ?
132*b1cdbd2cSJim Jagielski lcl_IsHoriOnEvenPages(GetValue(), IsGrfToggle()) : bVal;
133*b1cdbd2cSJim Jagielski MirrorGraph nEnum = bOnOddPages ?
134*b1cdbd2cSJim Jagielski bIsVert ? RES_MIRROR_GRAPH_BOTH : RES_MIRROR_GRAPH_VERT :
135*b1cdbd2cSJim Jagielski bIsVert ? RES_MIRROR_GRAPH_HOR : RES_MIRROR_GRAPH_DONT;
136*b1cdbd2cSJim Jagielski sal_Bool bToggle = bOnOddPages != bOnEvenPages;
137*b1cdbd2cSJim Jagielski SetValue(static_cast<sal_uInt16>(nEnum));
138*b1cdbd2cSJim Jagielski SetGrfToggle( bToggle );
139*b1cdbd2cSJim Jagielski }
140*b1cdbd2cSJim Jagielski break;
141*b1cdbd2cSJim Jagielski case MID_MIRROR_VERT:
142*b1cdbd2cSJim Jagielski if ( bVal )
143*b1cdbd2cSJim Jagielski {
144*b1cdbd2cSJim Jagielski if ( GetValue() == RES_MIRROR_GRAPH_VERT )
145*b1cdbd2cSJim Jagielski SetValue( RES_MIRROR_GRAPH_BOTH );
146*b1cdbd2cSJim Jagielski else if ( GetValue() != RES_MIRROR_GRAPH_BOTH )
147*b1cdbd2cSJim Jagielski SetValue( RES_MIRROR_GRAPH_HOR );
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski else
150*b1cdbd2cSJim Jagielski {
151*b1cdbd2cSJim Jagielski if ( GetValue() == RES_MIRROR_GRAPH_BOTH )
152*b1cdbd2cSJim Jagielski SetValue( RES_MIRROR_GRAPH_VERT );
153*b1cdbd2cSJim Jagielski else if ( GetValue() == RES_MIRROR_GRAPH_HOR )
154*b1cdbd2cSJim Jagielski SetValue( RES_MIRROR_GRAPH_DONT );
155*b1cdbd2cSJim Jagielski }
156*b1cdbd2cSJim Jagielski break;
157*b1cdbd2cSJim Jagielski default:
158*b1cdbd2cSJim Jagielski ASSERT( !this, "unknown MemberId" );
159*b1cdbd2cSJim Jagielski bRet = sal_False;
160*b1cdbd2cSJim Jagielski }
161*b1cdbd2cSJim Jagielski return bRet;
162*b1cdbd2cSJim Jagielski }
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski
165*b1cdbd2cSJim Jagielski /******************************************************************************
166*b1cdbd2cSJim Jagielski * Implementierung class SwCropGrf
167*b1cdbd2cSJim Jagielski ******************************************************************************/
168*b1cdbd2cSJim Jagielski
SwCropGrf()169*b1cdbd2cSJim Jagielski SwCropGrf::SwCropGrf()
170*b1cdbd2cSJim Jagielski : SvxGrfCrop( RES_GRFATR_CROPGRF )
171*b1cdbd2cSJim Jagielski {}
172*b1cdbd2cSJim Jagielski
SwCropGrf(sal_Int32 nL,sal_Int32 nR,sal_Int32 nT,sal_Int32 nB)173*b1cdbd2cSJim Jagielski SwCropGrf::SwCropGrf(sal_Int32 nL, sal_Int32 nR, sal_Int32 nT, sal_Int32 nB )
174*b1cdbd2cSJim Jagielski : SvxGrfCrop( nL, nR, nT, nB, RES_GRFATR_CROPGRF )
175*b1cdbd2cSJim Jagielski {}
176*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const177*b1cdbd2cSJim Jagielski SfxPoolItem* SwCropGrf::Clone( SfxItemPool* ) const
178*b1cdbd2cSJim Jagielski {
179*b1cdbd2cSJim Jagielski return new SwCropGrf( *this );
180*b1cdbd2cSJim Jagielski }
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
183*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const184*b1cdbd2cSJim Jagielski SfxPoolItem* SwRotationGrf::Clone( SfxItemPool * ) const
185*b1cdbd2cSJim Jagielski {
186*b1cdbd2cSJim Jagielski return new SwRotationGrf( GetValue(), aUnrotatedSize );
187*b1cdbd2cSJim Jagielski }
188*b1cdbd2cSJim Jagielski
189*b1cdbd2cSJim Jagielski
operator ==(const SfxPoolItem & rCmp) const190*b1cdbd2cSJim Jagielski int SwRotationGrf::operator==( const SfxPoolItem& rCmp ) const
191*b1cdbd2cSJim Jagielski {
192*b1cdbd2cSJim Jagielski return SfxUInt16Item::operator==( rCmp ) &&
193*b1cdbd2cSJim Jagielski GetUnrotatedSize() == ((SwRotationGrf&)rCmp).GetUnrotatedSize();
194*b1cdbd2cSJim Jagielski }
195*b1cdbd2cSJim Jagielski
196*b1cdbd2cSJim Jagielski
QueryValue(uno::Any & rVal,sal_uInt8) const197*b1cdbd2cSJim Jagielski sal_Bool SwRotationGrf::QueryValue( uno::Any& rVal, sal_uInt8 ) const
198*b1cdbd2cSJim Jagielski {
199*b1cdbd2cSJim Jagielski // SfxUInt16Item::QueryValue returns sal_Int32 in Any now... (srx642w)
200*b1cdbd2cSJim Jagielski // where we still want this to be a sal_Int16
201*b1cdbd2cSJim Jagielski rVal <<= (sal_Int16)GetValue();
202*b1cdbd2cSJim Jagielski return sal_True;
203*b1cdbd2cSJim Jagielski }
204*b1cdbd2cSJim Jagielski
PutValue(const uno::Any & rVal,sal_uInt8)205*b1cdbd2cSJim Jagielski sal_Bool SwRotationGrf::PutValue( const uno::Any& rVal, sal_uInt8 )
206*b1cdbd2cSJim Jagielski {
207*b1cdbd2cSJim Jagielski // SfxUInt16Item::QueryValue returns sal_Int32 in Any now... (srx642w)
208*b1cdbd2cSJim Jagielski // where we still want this to be a sal_Int16
209*b1cdbd2cSJim Jagielski sal_Int16 nValue = 0;
210*b1cdbd2cSJim Jagielski if (rVal >>= nValue)
211*b1cdbd2cSJim Jagielski {
212*b1cdbd2cSJim Jagielski // sal_uInt16 argument needed
213*b1cdbd2cSJim Jagielski SetValue( (sal_uInt16) nValue );
214*b1cdbd2cSJim Jagielski return sal_True;
215*b1cdbd2cSJim Jagielski }
216*b1cdbd2cSJim Jagielski
217*b1cdbd2cSJim Jagielski DBG_ERROR( "SwRotationGrf::PutValue - Wrong type!" );
218*b1cdbd2cSJim Jagielski return sal_False;
219*b1cdbd2cSJim Jagielski }
220*b1cdbd2cSJim Jagielski
221*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
222*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const223*b1cdbd2cSJim Jagielski SfxPoolItem* SwLuminanceGrf::Clone( SfxItemPool * ) const
224*b1cdbd2cSJim Jagielski {
225*b1cdbd2cSJim Jagielski return new SwLuminanceGrf( *this );
226*b1cdbd2cSJim Jagielski }
227*b1cdbd2cSJim Jagielski
228*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
229*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const230*b1cdbd2cSJim Jagielski SfxPoolItem* SwContrastGrf::Clone( SfxItemPool * ) const
231*b1cdbd2cSJim Jagielski {
232*b1cdbd2cSJim Jagielski return new SwContrastGrf( *this );
233*b1cdbd2cSJim Jagielski }
234*b1cdbd2cSJim Jagielski
235*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
236*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const237*b1cdbd2cSJim Jagielski SfxPoolItem* SwChannelRGrf::Clone( SfxItemPool * ) const
238*b1cdbd2cSJim Jagielski {
239*b1cdbd2cSJim Jagielski return new SwChannelRGrf( *this );
240*b1cdbd2cSJim Jagielski }
241*b1cdbd2cSJim Jagielski
242*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
243*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const244*b1cdbd2cSJim Jagielski SfxPoolItem* SwChannelGGrf::Clone( SfxItemPool * ) const
245*b1cdbd2cSJim Jagielski {
246*b1cdbd2cSJim Jagielski return new SwChannelGGrf( *this );
247*b1cdbd2cSJim Jagielski }
248*b1cdbd2cSJim Jagielski
249*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
250*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const251*b1cdbd2cSJim Jagielski SfxPoolItem* SwChannelBGrf::Clone( SfxItemPool * ) const
252*b1cdbd2cSJim Jagielski {
253*b1cdbd2cSJim Jagielski return new SwChannelBGrf( *this );
254*b1cdbd2cSJim Jagielski }
255*b1cdbd2cSJim Jagielski
256*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
257*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const258*b1cdbd2cSJim Jagielski SfxPoolItem* SwGammaGrf::Clone( SfxItemPool * ) const
259*b1cdbd2cSJim Jagielski {
260*b1cdbd2cSJim Jagielski return new SwGammaGrf( *this );
261*b1cdbd2cSJim Jagielski }
262*b1cdbd2cSJim Jagielski
operator ==(const SfxPoolItem & rCmp) const263*b1cdbd2cSJim Jagielski int SwGammaGrf::operator==( const SfxPoolItem& rCmp ) const
264*b1cdbd2cSJim Jagielski {
265*b1cdbd2cSJim Jagielski return SfxPoolItem::operator==( rCmp ) &&
266*b1cdbd2cSJim Jagielski nValue == ((SwGammaGrf&)rCmp).GetValue();
267*b1cdbd2cSJim Jagielski }
268*b1cdbd2cSJim Jagielski
QueryValue(uno::Any & rVal,sal_uInt8) const269*b1cdbd2cSJim Jagielski sal_Bool SwGammaGrf::QueryValue( uno::Any& rVal, sal_uInt8 ) const
270*b1cdbd2cSJim Jagielski {
271*b1cdbd2cSJim Jagielski rVal <<= nValue;
272*b1cdbd2cSJim Jagielski return sal_True;
273*b1cdbd2cSJim Jagielski }
274*b1cdbd2cSJim Jagielski
PutValue(const uno::Any & rVal,sal_uInt8)275*b1cdbd2cSJim Jagielski sal_Bool SwGammaGrf::PutValue( const uno::Any& rVal, sal_uInt8 )
276*b1cdbd2cSJim Jagielski {
277*b1cdbd2cSJim Jagielski return rVal >>= nValue;
278*b1cdbd2cSJim Jagielski }
279*b1cdbd2cSJim Jagielski
280*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
281*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const282*b1cdbd2cSJim Jagielski SfxPoolItem* SwInvertGrf::Clone( SfxItemPool * ) const
283*b1cdbd2cSJim Jagielski {
284*b1cdbd2cSJim Jagielski return new SwInvertGrf( *this );
285*b1cdbd2cSJim Jagielski }
286*b1cdbd2cSJim Jagielski
287*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
288*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const289*b1cdbd2cSJim Jagielski SfxPoolItem* SwTransparencyGrf::Clone( SfxItemPool * ) const
290*b1cdbd2cSJim Jagielski {
291*b1cdbd2cSJim Jagielski return new SwTransparencyGrf( *this );
292*b1cdbd2cSJim Jagielski }
293*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
QueryValue(uno::Any & rVal,sal_uInt8) const294*b1cdbd2cSJim Jagielski sal_Bool SwTransparencyGrf::QueryValue( uno::Any& rVal,
295*b1cdbd2cSJim Jagielski sal_uInt8 ) const
296*b1cdbd2cSJim Jagielski {
297*b1cdbd2cSJim Jagielski DBG_ASSERT(ISA(SfxByteItem),"Put/QueryValue should be removed!");
298*b1cdbd2cSJim Jagielski sal_Int16 nRet = GetValue();
299*b1cdbd2cSJim Jagielski DBG_ASSERT( 0 <= nRet && nRet <= 100, "value out of range" );
300*b1cdbd2cSJim Jagielski rVal <<= nRet;
301*b1cdbd2cSJim Jagielski return sal_True;
302*b1cdbd2cSJim Jagielski }
303*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
PutValue(const uno::Any & rVal,sal_uInt8)304*b1cdbd2cSJim Jagielski sal_Bool SwTransparencyGrf::PutValue( const uno::Any& rVal,
305*b1cdbd2cSJim Jagielski sal_uInt8 )
306*b1cdbd2cSJim Jagielski {
307*b1cdbd2cSJim Jagielski //temporary conversion until this is a SfxInt16Item!
308*b1cdbd2cSJim Jagielski DBG_ASSERT(ISA(SfxByteItem),"Put/QueryValue should be removed!");
309*b1cdbd2cSJim Jagielski sal_Int16 nVal = 0;
310*b1cdbd2cSJim Jagielski if(!(rVal >>= nVal) || nVal < -100 || nVal > 100)
311*b1cdbd2cSJim Jagielski return sal_False;
312*b1cdbd2cSJim Jagielski if(nVal < 0)
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski // for compatibility with old documents
315*b1cdbd2cSJim Jagielski // OD 05.11.2002 #104308# - introduce rounding as for SO 6.0 PP2
316*b1cdbd2cSJim Jagielski // introduced by fix of #104293#.
317*b1cdbd2cSJim Jagielski nVal = ( ( nVal * 128 ) - (99/2) ) / 100;
318*b1cdbd2cSJim Jagielski nVal += 128;
319*b1cdbd2cSJim Jagielski }
320*b1cdbd2cSJim Jagielski DBG_ASSERT( 0 <= nVal && nVal <= 100, "value out of range" );
321*b1cdbd2cSJim Jagielski SetValue(static_cast<sal_uInt8>(nVal));
322*b1cdbd2cSJim Jagielski return sal_True;
323*b1cdbd2cSJim Jagielski }
324*b1cdbd2cSJim Jagielski
325*b1cdbd2cSJim Jagielski // ------------------------------------------------------------------
326*b1cdbd2cSJim Jagielski
Clone(SfxItemPool *) const327*b1cdbd2cSJim Jagielski SfxPoolItem* SwDrawModeGrf::Clone( SfxItemPool * ) const
328*b1cdbd2cSJim Jagielski {
329*b1cdbd2cSJim Jagielski return new SwDrawModeGrf( *this );
330*b1cdbd2cSJim Jagielski }
331*b1cdbd2cSJim Jagielski
GetValueCount() const332*b1cdbd2cSJim Jagielski sal_uInt16 SwDrawModeGrf::GetValueCount() const
333*b1cdbd2cSJim Jagielski {
334*b1cdbd2cSJim Jagielski // GRAPHICDRAWMODE_STANDARD = 0,
335*b1cdbd2cSJim Jagielski // GRAPHICDRAWMODE_GREYS = 1,
336*b1cdbd2cSJim Jagielski // GRAPHICDRAWMODE_MONO = 2,
337*b1cdbd2cSJim Jagielski // GRAPHICDRAWMODE_WATERMARK = 3
338*b1cdbd2cSJim Jagielski return GRAPHICDRAWMODE_WATERMARK + 1;
339*b1cdbd2cSJim Jagielski }
340*b1cdbd2cSJim Jagielski
QueryValue(uno::Any & rVal,sal_uInt8) const341*b1cdbd2cSJim Jagielski sal_Bool SwDrawModeGrf::QueryValue( uno::Any& rVal,
342*b1cdbd2cSJim Jagielski sal_uInt8 ) const
343*b1cdbd2cSJim Jagielski {
344*b1cdbd2cSJim Jagielski drawing::ColorMode eRet = (drawing::ColorMode)GetEnumValue();
345*b1cdbd2cSJim Jagielski rVal <<= eRet;
346*b1cdbd2cSJim Jagielski return sal_True;
347*b1cdbd2cSJim Jagielski }
348*b1cdbd2cSJim Jagielski
PutValue(const uno::Any & rVal,sal_uInt8)349*b1cdbd2cSJim Jagielski sal_Bool SwDrawModeGrf::PutValue( const uno::Any& rVal,
350*b1cdbd2cSJim Jagielski sal_uInt8 )
351*b1cdbd2cSJim Jagielski {
352*b1cdbd2cSJim Jagielski sal_Int32 eVal = SWUnoHelper::GetEnumAsInt32( rVal );
353*b1cdbd2cSJim Jagielski if(eVal >= 0 && eVal <= GRAPHICDRAWMODE_WATERMARK)
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski SetEnumValue((sal_uInt16)eVal);
356*b1cdbd2cSJim Jagielski return sal_True;
357*b1cdbd2cSJim Jagielski }
358*b1cdbd2cSJim Jagielski return sal_False;
359*b1cdbd2cSJim Jagielski }
360*b1cdbd2cSJim Jagielski
361*b1cdbd2cSJim Jagielski
362*b1cdbd2cSJim Jagielski
363