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_xmloff.hxx"
26*b1cdbd2cSJim Jagielski #include <cdouthdl.hxx>
27*b1cdbd2cSJim Jagielski #include <xmloff/xmltoken.hxx>
28*b1cdbd2cSJim Jagielski #include <xmloff/xmluconv.hxx>
29*b1cdbd2cSJim Jagielski #include <rtl/ustrbuf.hxx>
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/FontStrikeout.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Any.hxx>
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski using ::rtl::OUString;
35*b1cdbd2cSJim Jagielski using ::rtl::OUStringBuffer;
36*b1cdbd2cSJim Jagielski
37*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
38*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::awt;
39*b1cdbd2cSJim Jagielski using namespace ::xmloff::token;
40*b1cdbd2cSJim Jagielski
41*b1cdbd2cSJim Jagielski SvXMLEnumMapEntry pXML_CrossedoutType_Enum[] =
42*b1cdbd2cSJim Jagielski {
43*b1cdbd2cSJim Jagielski { XML_NONE, FontStrikeout::NONE },
44*b1cdbd2cSJim Jagielski { XML_SINGLE, FontStrikeout::SINGLE },
45*b1cdbd2cSJim Jagielski { XML_DOUBLE, FontStrikeout::DOUBLE },
46*b1cdbd2cSJim Jagielski { XML_SINGLE, FontStrikeout::BOLD },
47*b1cdbd2cSJim Jagielski { XML_SINGLE, FontStrikeout::SLASH },
48*b1cdbd2cSJim Jagielski { XML_SINGLE, FontStrikeout::X },
49*b1cdbd2cSJim Jagielski { XML_TOKEN_INVALID, 0 }
50*b1cdbd2cSJim Jagielski };
51*b1cdbd2cSJim Jagielski
52*b1cdbd2cSJim Jagielski SvXMLEnumMapEntry pXML_CrossedoutStyle_Enum[] =
53*b1cdbd2cSJim Jagielski {
54*b1cdbd2cSJim Jagielski { XML_NONE, FontStrikeout::NONE },
55*b1cdbd2cSJim Jagielski { XML_SOLID, FontStrikeout::SINGLE },
56*b1cdbd2cSJim Jagielski { XML_SOLID, FontStrikeout::DOUBLE },
57*b1cdbd2cSJim Jagielski { XML_SOLID, FontStrikeout::BOLD },
58*b1cdbd2cSJim Jagielski { XML_SOLID, FontStrikeout::SLASH },
59*b1cdbd2cSJim Jagielski { XML_SOLID, FontStrikeout::X },
60*b1cdbd2cSJim Jagielski { XML_DOTTED, FontStrikeout::SINGLE },
61*b1cdbd2cSJim Jagielski { XML_DASH, FontStrikeout::SINGLE },
62*b1cdbd2cSJim Jagielski { XML_LONG_DASH, FontStrikeout::SINGLE },
63*b1cdbd2cSJim Jagielski { XML_DOT_DASH, FontStrikeout::SINGLE },
64*b1cdbd2cSJim Jagielski { XML_DOT_DOT_DASH, FontStrikeout::SINGLE },
65*b1cdbd2cSJim Jagielski { XML_WAVE, FontStrikeout::SINGLE },
66*b1cdbd2cSJim Jagielski { XML_TOKEN_INVALID, 0 }
67*b1cdbd2cSJim Jagielski };
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim Jagielski SvXMLEnumMapEntry pXML_CrossedoutWidth_Enum[] =
70*b1cdbd2cSJim Jagielski {
71*b1cdbd2cSJim Jagielski { XML_AUTO, FontStrikeout::NONE },
72*b1cdbd2cSJim Jagielski { XML_AUTO, FontStrikeout::SINGLE },
73*b1cdbd2cSJim Jagielski { XML_AUTO, FontStrikeout::DOUBLE },
74*b1cdbd2cSJim Jagielski { XML_BOLD, FontStrikeout::BOLD },
75*b1cdbd2cSJim Jagielski { XML_AUTO, FontStrikeout::SLASH },
76*b1cdbd2cSJim Jagielski { XML_AUTO, FontStrikeout::X },
77*b1cdbd2cSJim Jagielski { XML_THIN, FontStrikeout::NONE },
78*b1cdbd2cSJim Jagielski { XML_MEDIUM, FontStrikeout::NONE },
79*b1cdbd2cSJim Jagielski { XML_THICK, FontStrikeout::NONE },
80*b1cdbd2cSJim Jagielski { XML_TOKEN_INVALID, 0 }
81*b1cdbd2cSJim Jagielski };
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski ///////////////////////////////////////////////////////////////////////////////
84*b1cdbd2cSJim Jagielski //
85*b1cdbd2cSJim Jagielski // class XMLCrossedOutTypePropHdl
86*b1cdbd2cSJim Jagielski //
87*b1cdbd2cSJim Jagielski
~XMLCrossedOutTypePropHdl()88*b1cdbd2cSJim Jagielski XMLCrossedOutTypePropHdl::~XMLCrossedOutTypePropHdl()
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski // nothing to do
91*b1cdbd2cSJim Jagielski }
92*b1cdbd2cSJim Jagielski
importXML(const OUString & rStrImpValue,uno::Any & rValue,const SvXMLUnitConverter &) const93*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutTypePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
94*b1cdbd2cSJim Jagielski {
95*b1cdbd2cSJim Jagielski sal_uInt16 eNewStrikeout;
96*b1cdbd2cSJim Jagielski sal_Bool bRet = SvXMLUnitConverter::convertEnum(
97*b1cdbd2cSJim Jagielski eNewStrikeout, rStrImpValue, pXML_CrossedoutType_Enum );
98*b1cdbd2cSJim Jagielski if( bRet )
99*b1cdbd2cSJim Jagielski {
100*b1cdbd2cSJim Jagielski // multi property: style and width might be set already.
101*b1cdbd2cSJim Jagielski // If the old value is NONE, the new is used unchanged.
102*b1cdbd2cSJim Jagielski sal_Int16 eStrikeout = sal_Int16();
103*b1cdbd2cSJim Jagielski if( (rValue >>= eStrikeout) && FontStrikeout::NONE!=eStrikeout )
104*b1cdbd2cSJim Jagielski {
105*b1cdbd2cSJim Jagielski switch( eNewStrikeout )
106*b1cdbd2cSJim Jagielski {
107*b1cdbd2cSJim Jagielski case FontStrikeout::NONE:
108*b1cdbd2cSJim Jagielski case FontStrikeout::SINGLE:
109*b1cdbd2cSJim Jagielski // keep existing line style
110*b1cdbd2cSJim Jagielski eNewStrikeout = eStrikeout;
111*b1cdbd2cSJim Jagielski break;
112*b1cdbd2cSJim Jagielski case FontStrikeout::DOUBLE:
113*b1cdbd2cSJim Jagielski // A double line style has priority over a solid or a bold
114*b1cdbd2cSJim Jagielski // line style,
115*b1cdbd2cSJim Jagielski // but not about any other line style
116*b1cdbd2cSJim Jagielski switch( eStrikeout )
117*b1cdbd2cSJim Jagielski {
118*b1cdbd2cSJim Jagielski case FontStrikeout::SINGLE:
119*b1cdbd2cSJim Jagielski case FontStrikeout::BOLD:
120*b1cdbd2cSJim Jagielski break;
121*b1cdbd2cSJim Jagielski default:
122*b1cdbd2cSJim Jagielski // If a double line style is not supported for the existing
123*b1cdbd2cSJim Jagielski // value, keep the new one
124*b1cdbd2cSJim Jagielski eNewStrikeout = eStrikeout;
125*b1cdbd2cSJim Jagielski break;
126*b1cdbd2cSJim Jagielski }
127*b1cdbd2cSJim Jagielski break;
128*b1cdbd2cSJim Jagielski default:
129*b1cdbd2cSJim Jagielski OSL_ENSURE( bRet, "unexpected line type value" );
130*b1cdbd2cSJim Jagielski break;
131*b1cdbd2cSJim Jagielski }
132*b1cdbd2cSJim Jagielski if( eNewStrikeout != eStrikeout )
133*b1cdbd2cSJim Jagielski rValue <<= (sal_Int16)eNewStrikeout;
134*b1cdbd2cSJim Jagielski }
135*b1cdbd2cSJim Jagielski else
136*b1cdbd2cSJim Jagielski {
137*b1cdbd2cSJim Jagielski rValue <<= (sal_Int16)eNewStrikeout;
138*b1cdbd2cSJim Jagielski }
139*b1cdbd2cSJim Jagielski }
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski return bRet;
142*b1cdbd2cSJim Jagielski }
143*b1cdbd2cSJim Jagielski
exportXML(OUString & rStrExpValue,const uno::Any & rValue,const SvXMLUnitConverter &) const144*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutTypePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
145*b1cdbd2cSJim Jagielski {
146*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_False;
147*b1cdbd2cSJim Jagielski sal_Int16 nValue = sal_Int16();
148*b1cdbd2cSJim Jagielski OUStringBuffer aOut;
149*b1cdbd2cSJim Jagielski
150*b1cdbd2cSJim Jagielski if( (rValue >>= nValue) && FontStrikeout::DOUBLE==nValue )
151*b1cdbd2cSJim Jagielski {
152*b1cdbd2cSJim Jagielski bRet = SvXMLUnitConverter::convertEnum(
153*b1cdbd2cSJim Jagielski aOut, (sal_uInt16)nValue, pXML_CrossedoutType_Enum );
154*b1cdbd2cSJim Jagielski if( bRet )
155*b1cdbd2cSJim Jagielski rStrExpValue = aOut.makeStringAndClear();
156*b1cdbd2cSJim Jagielski }
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski return bRet;
159*b1cdbd2cSJim Jagielski }
160*b1cdbd2cSJim Jagielski
161*b1cdbd2cSJim Jagielski ///////////////////////////////////////////////////////////////////////////////
162*b1cdbd2cSJim Jagielski //
163*b1cdbd2cSJim Jagielski // class XMLCrossedOutStylePropHdl
164*b1cdbd2cSJim Jagielski //
165*b1cdbd2cSJim Jagielski
~XMLCrossedOutStylePropHdl()166*b1cdbd2cSJim Jagielski XMLCrossedOutStylePropHdl::~XMLCrossedOutStylePropHdl()
167*b1cdbd2cSJim Jagielski {
168*b1cdbd2cSJim Jagielski // nothing to do
169*b1cdbd2cSJim Jagielski }
170*b1cdbd2cSJim Jagielski
importXML(const OUString & rStrImpValue,uno::Any & rValue,const SvXMLUnitConverter &) const171*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutStylePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
172*b1cdbd2cSJim Jagielski {
173*b1cdbd2cSJim Jagielski sal_uInt16 eNewStrikeout;
174*b1cdbd2cSJim Jagielski sal_Bool bRet = SvXMLUnitConverter::convertEnum(
175*b1cdbd2cSJim Jagielski eNewStrikeout, rStrImpValue, pXML_CrossedoutStyle_Enum );
176*b1cdbd2cSJim Jagielski if( bRet )
177*b1cdbd2cSJim Jagielski {
178*b1cdbd2cSJim Jagielski // multi property: style and width might be set already.
179*b1cdbd2cSJim Jagielski // If the old value is NONE, the new is used unchanged.
180*b1cdbd2cSJim Jagielski sal_Int16 eStrikeout = sal_Int16();
181*b1cdbd2cSJim Jagielski if( (rValue >>= eStrikeout) && FontStrikeout::NONE!=eStrikeout )
182*b1cdbd2cSJim Jagielski {
183*b1cdbd2cSJim Jagielski // one NONE a SINGLE are possible new values. For both, the
184*b1cdbd2cSJim Jagielski // existing value is kept.
185*b1cdbd2cSJim Jagielski }
186*b1cdbd2cSJim Jagielski else
187*b1cdbd2cSJim Jagielski {
188*b1cdbd2cSJim Jagielski rValue <<= (sal_Int16)eNewStrikeout;
189*b1cdbd2cSJim Jagielski }
190*b1cdbd2cSJim Jagielski }
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim Jagielski return bRet;
193*b1cdbd2cSJim Jagielski }
194*b1cdbd2cSJim Jagielski
exportXML(OUString & rStrExpValue,const uno::Any & rValue,const SvXMLUnitConverter &) const195*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutStylePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
196*b1cdbd2cSJim Jagielski {
197*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_False;
198*b1cdbd2cSJim Jagielski sal_Int16 nValue = sal_Int16();
199*b1cdbd2cSJim Jagielski OUStringBuffer aOut;
200*b1cdbd2cSJim Jagielski
201*b1cdbd2cSJim Jagielski if( rValue >>= nValue )
202*b1cdbd2cSJim Jagielski {
203*b1cdbd2cSJim Jagielski bRet = SvXMLUnitConverter::convertEnum(
204*b1cdbd2cSJim Jagielski aOut, (sal_uInt16)nValue, pXML_CrossedoutStyle_Enum );
205*b1cdbd2cSJim Jagielski if( bRet )
206*b1cdbd2cSJim Jagielski rStrExpValue = aOut.makeStringAndClear();
207*b1cdbd2cSJim Jagielski }
208*b1cdbd2cSJim Jagielski
209*b1cdbd2cSJim Jagielski return bRet;
210*b1cdbd2cSJim Jagielski }
211*b1cdbd2cSJim Jagielski
212*b1cdbd2cSJim Jagielski ///////////////////////////////////////////////////////////////////////////////
213*b1cdbd2cSJim Jagielski //
214*b1cdbd2cSJim Jagielski // class XMLCrossedOutWidthPropHdl
215*b1cdbd2cSJim Jagielski //
216*b1cdbd2cSJim Jagielski
~XMLCrossedOutWidthPropHdl()217*b1cdbd2cSJim Jagielski XMLCrossedOutWidthPropHdl::~XMLCrossedOutWidthPropHdl()
218*b1cdbd2cSJim Jagielski {
219*b1cdbd2cSJim Jagielski // nothing to do
220*b1cdbd2cSJim Jagielski }
221*b1cdbd2cSJim Jagielski
importXML(const OUString & rStrImpValue,uno::Any & rValue,const SvXMLUnitConverter &) const222*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutWidthPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
223*b1cdbd2cSJim Jagielski {
224*b1cdbd2cSJim Jagielski sal_uInt16 eNewStrikeout;
225*b1cdbd2cSJim Jagielski sal_Bool bRet = SvXMLUnitConverter::convertEnum(
226*b1cdbd2cSJim Jagielski eNewStrikeout, rStrImpValue, pXML_CrossedoutWidth_Enum );
227*b1cdbd2cSJim Jagielski if( bRet )
228*b1cdbd2cSJim Jagielski {
229*b1cdbd2cSJim Jagielski // multi property: style and width might be set already.
230*b1cdbd2cSJim Jagielski // If the old value is NONE, the new is used unchanged.
231*b1cdbd2cSJim Jagielski sal_Int16 eStrikeout = sal_Int16();
232*b1cdbd2cSJim Jagielski if( (rValue >>= eStrikeout) && FontStrikeout::NONE!=eStrikeout )
233*b1cdbd2cSJim Jagielski {
234*b1cdbd2cSJim Jagielski switch( eNewStrikeout )
235*b1cdbd2cSJim Jagielski {
236*b1cdbd2cSJim Jagielski case FontStrikeout::NONE:
237*b1cdbd2cSJim Jagielski // keep existing line style
238*b1cdbd2cSJim Jagielski eNewStrikeout = eStrikeout;
239*b1cdbd2cSJim Jagielski break;
240*b1cdbd2cSJim Jagielski case FontStrikeout::BOLD:
241*b1cdbd2cSJim Jagielski switch( eStrikeout )
242*b1cdbd2cSJim Jagielski {
243*b1cdbd2cSJim Jagielski case FontStrikeout::SINGLE:
244*b1cdbd2cSJim Jagielski break;
245*b1cdbd2cSJim Jagielski default:
246*b1cdbd2cSJim Jagielski // If a double line style is not supported for the existing
247*b1cdbd2cSJim Jagielski // value, keep the new one
248*b1cdbd2cSJim Jagielski eNewStrikeout = eStrikeout;
249*b1cdbd2cSJim Jagielski break;
250*b1cdbd2cSJim Jagielski }
251*b1cdbd2cSJim Jagielski default:
252*b1cdbd2cSJim Jagielski OSL_ENSURE( bRet, "unexpected line type value" );
253*b1cdbd2cSJim Jagielski break;
254*b1cdbd2cSJim Jagielski }
255*b1cdbd2cSJim Jagielski if( eNewStrikeout != eStrikeout )
256*b1cdbd2cSJim Jagielski rValue <<= (sal_Int16)eNewStrikeout;
257*b1cdbd2cSJim Jagielski }
258*b1cdbd2cSJim Jagielski else
259*b1cdbd2cSJim Jagielski {
260*b1cdbd2cSJim Jagielski rValue <<= (sal_Int16)eNewStrikeout;
261*b1cdbd2cSJim Jagielski }
262*b1cdbd2cSJim Jagielski }
263*b1cdbd2cSJim Jagielski
264*b1cdbd2cSJim Jagielski return bRet;
265*b1cdbd2cSJim Jagielski }
266*b1cdbd2cSJim Jagielski
exportXML(OUString & rStrExpValue,const uno::Any & rValue,const SvXMLUnitConverter &) const267*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutWidthPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
268*b1cdbd2cSJim Jagielski {
269*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_False;
270*b1cdbd2cSJim Jagielski sal_Int16 nValue = sal_Int16();
271*b1cdbd2cSJim Jagielski OUStringBuffer aOut;
272*b1cdbd2cSJim Jagielski
273*b1cdbd2cSJim Jagielski if( (rValue >>= nValue) && (FontStrikeout::BOLD == nValue) )
274*b1cdbd2cSJim Jagielski {
275*b1cdbd2cSJim Jagielski bRet = SvXMLUnitConverter::convertEnum(
276*b1cdbd2cSJim Jagielski aOut, (sal_uInt16)nValue, pXML_CrossedoutWidth_Enum );
277*b1cdbd2cSJim Jagielski if( bRet )
278*b1cdbd2cSJim Jagielski rStrExpValue = aOut.makeStringAndClear();
279*b1cdbd2cSJim Jagielski }
280*b1cdbd2cSJim Jagielski
281*b1cdbd2cSJim Jagielski return bRet;
282*b1cdbd2cSJim Jagielski }
283*b1cdbd2cSJim Jagielski
284*b1cdbd2cSJim Jagielski ///////////////////////////////////////////////////////////////////////////////
285*b1cdbd2cSJim Jagielski //
286*b1cdbd2cSJim Jagielski // class XMLCrossedOutTextPropHdl
287*b1cdbd2cSJim Jagielski //
288*b1cdbd2cSJim Jagielski
~XMLCrossedOutTextPropHdl()289*b1cdbd2cSJim Jagielski XMLCrossedOutTextPropHdl::~XMLCrossedOutTextPropHdl()
290*b1cdbd2cSJim Jagielski {
291*b1cdbd2cSJim Jagielski // nothing to do
292*b1cdbd2cSJim Jagielski }
293*b1cdbd2cSJim Jagielski
importXML(const OUString & rStrImpValue,uno::Any & rValue,const SvXMLUnitConverter &) const294*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutTextPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
295*b1cdbd2cSJim Jagielski {
296*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_False;
297*b1cdbd2cSJim Jagielski
298*b1cdbd2cSJim Jagielski if( rStrImpValue.getLength() )
299*b1cdbd2cSJim Jagielski {
300*b1cdbd2cSJim Jagielski sal_Int16 eStrikeout = ('/' == rStrImpValue[0]
301*b1cdbd2cSJim Jagielski ? FontStrikeout::SLASH
302*b1cdbd2cSJim Jagielski : FontStrikeout::X);
303*b1cdbd2cSJim Jagielski rValue <<= (sal_Int16)eStrikeout;
304*b1cdbd2cSJim Jagielski bRet = sal_True;
305*b1cdbd2cSJim Jagielski }
306*b1cdbd2cSJim Jagielski
307*b1cdbd2cSJim Jagielski return bRet;
308*b1cdbd2cSJim Jagielski }
309*b1cdbd2cSJim Jagielski
exportXML(OUString & rStrExpValue,const uno::Any & rValue,const SvXMLUnitConverter &) const310*b1cdbd2cSJim Jagielski sal_Bool XMLCrossedOutTextPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
311*b1cdbd2cSJim Jagielski {
312*b1cdbd2cSJim Jagielski sal_Bool bRet = sal_False;
313*b1cdbd2cSJim Jagielski sal_Int16 nValue = sal_Int16();
314*b1cdbd2cSJim Jagielski
315*b1cdbd2cSJim Jagielski if( (rValue >>= nValue) &&
316*b1cdbd2cSJim Jagielski (FontStrikeout::SLASH == nValue || FontStrikeout::X == nValue) )
317*b1cdbd2cSJim Jagielski {
318*b1cdbd2cSJim Jagielski rStrExpValue = OUString::valueOf(
319*b1cdbd2cSJim Jagielski static_cast< sal_Unicode>( FontStrikeout::SLASH == nValue ? '/'
320*b1cdbd2cSJim Jagielski : 'X' ) );
321*b1cdbd2cSJim Jagielski bRet = sal_True;
322*b1cdbd2cSJim Jagielski }
323*b1cdbd2cSJim Jagielski
324*b1cdbd2cSJim Jagielski return bRet;
325*b1cdbd2cSJim Jagielski }
326*b1cdbd2cSJim Jagielski
327