xref: /aoo4110/main/xmloff/source/style/cdouthdl.cxx (revision b1cdbd2c)
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