bump product version to 4.1.6.2
[LibreOffice.git] / xmloff / source / style / breakhdl.cxx
blob3e9f15c8f79e1dfa67285d6fff2cd36b66cce964
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 .
20 #include <breakhdl.hxx>
21 #include <xmloff/xmltoken.hxx>
22 #include <xmloff/xmluconv.hxx>
23 #include <rtl/ustrbuf.hxx>
24 #include <com/sun/star/style/BreakType.hpp>
25 #include <com/sun/star/uno/Any.hxx>
28 using namespace ::com::sun::star;
29 using namespace ::xmloff::token;
31 SvXMLEnumMapEntry pXML_BreakTypes[] =
33 { XML_AUTO, 0 },
34 { XML_COLUMN, 1 },
35 { XML_PAGE, 2 },
36 { XML_EVEN_PAGE, 2 },
37 { XML_ODD_PAGE, 2 },
38 { XML_TOKEN_INVALID, 0}
41 ///////////////////////////////////////////////////////////////////////////////
43 // class XMLFmtBreakBeforePropHdl
46 XMLFmtBreakBeforePropHdl::~XMLFmtBreakBeforePropHdl()
48 // Nothing to do
51 sal_Bool XMLFmtBreakBeforePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
53 sal_uInt16 nEnum;
54 sal_Bool bRet = SvXMLUnitConverter::convertEnum( nEnum, rStrImpValue, pXML_BreakTypes );
55 if( bRet )
57 style::BreakType eBreak;
58 switch ( nEnum )
60 case 0:
61 eBreak = style::BreakType_NONE;
62 break;
63 case 1:
64 eBreak = style::BreakType_COLUMN_BEFORE;
65 break;
66 default:
67 eBreak = style::BreakType_PAGE_BEFORE;
68 break;
70 rValue <<= eBreak;
73 return bRet;
76 sal_Bool XMLFmtBreakBeforePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
78 style::BreakType eBreak;
80 if( !( rValue >>= eBreak ) )
82 sal_Int32 nValue = 0;
83 if( !( rValue >>= nValue ) )
84 return sal_False;
86 eBreak = (style::BreakType) nValue;
89 sal_uInt16 nEnum = 0;
90 switch( eBreak )
92 case style::BreakType_COLUMN_BEFORE:
93 nEnum = 1;
94 break;
95 case style::BreakType_PAGE_BEFORE:
96 nEnum = 2;
97 break;
98 case style::BreakType_NONE:
99 nEnum = 0;
100 break;
101 default:
102 return sal_False;
105 OUStringBuffer aOut;
106 /* sal_Bool bOk = */ SvXMLUnitConverter::convertEnum( aOut, nEnum, pXML_BreakTypes );
107 rStrExpValue = aOut.makeStringAndClear();
109 return sal_True;
112 ///////////////////////////////////////////////////////////////////////////////
114 // class XMLFmtBreakBeforePropHdl
117 XMLFmtBreakAfterPropHdl::~XMLFmtBreakAfterPropHdl()
119 // Nothing to do
122 sal_Bool XMLFmtBreakAfterPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
124 sal_uInt16 nEnum;
125 sal_Bool bRet = SvXMLUnitConverter::convertEnum( nEnum, rStrImpValue, pXML_BreakTypes );
126 if( bRet )
128 style::BreakType eBreak;
129 switch ( nEnum )
131 case 0:
132 eBreak = style::BreakType_NONE;
133 break;
134 case 1:
135 eBreak = style::BreakType_COLUMN_AFTER;
136 break;
137 default:
138 eBreak = style::BreakType_PAGE_AFTER;
139 break;
141 rValue <<= eBreak;
144 return bRet;
147 sal_Bool XMLFmtBreakAfterPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
149 style::BreakType eBreak;
151 if( !( rValue >>= eBreak ) )
153 sal_Int32 nValue = 0;
154 if( !( rValue >>= nValue ) )
155 return sal_False;
157 eBreak = (style::BreakType) nValue;
160 sal_uInt16 nEnum = 0;
161 switch( eBreak )
163 case style::BreakType_COLUMN_AFTER:
164 nEnum = 1;
165 break;
166 case style::BreakType_PAGE_AFTER:
167 nEnum = 2;
168 break;
169 case style::BreakType_NONE:
170 nEnum = 0;
171 break;
172 default:
173 return sal_False;
176 OUStringBuffer aOut;
177 /* sal_Bool bOk = */ SvXMLUnitConverter::convertEnum( aOut, nEnum, pXML_BreakTypes );
178 rStrExpValue = aOut.makeStringAndClear();
180 return sal_True;
183 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */