summaryrefslogtreecommitdiff
path: root/xmloff/source/style
diff options
context:
space:
mode:
Diffstat (limited to 'xmloff/source/style')
-rw-r--r--xmloff/source/style/AttributeContainerHandler.cxx107
-rw-r--r--xmloff/source/style/DashStyle.cxx331
-rw-r--r--xmloff/source/style/DrawAspectHdl.cxx91
-rw-r--r--xmloff/source/style/DrawAspectHdl.hxx48
-rw-r--r--xmloff/source/style/EnumPropertyHdl.cxx100
-rw-r--r--xmloff/source/style/FillStyleContext.cxx362
-rw-r--r--xmloff/source/style/FillStyleContext.hxx170
-rw-r--r--xmloff/source/style/GradientStyle.cxx343
-rw-r--r--xmloff/source/style/HatchStyle.cxx262
-rw-r--r--xmloff/source/style/ImageStyle.cxx209
-rw-r--r--xmloff/source/style/MarkerStyle.cxx285
-rw-r--r--xmloff/source/style/MultiPropertySetHelper.cxx217
-rw-r--r--xmloff/source/style/NamedBoolPropertyHdl.cxx84
-rw-r--r--xmloff/source/style/PageHeaderFooterContext.cxx100
-rw-r--r--xmloff/source/style/PageHeaderFooterContext.hxx65
-rw-r--r--xmloff/source/style/PageMasterExportPropMapper.cxx488
-rw-r--r--xmloff/source/style/PageMasterExportPropMapper.hxx81
-rw-r--r--xmloff/source/style/PageMasterImportContext.cxx197
-rw-r--r--xmloff/source/style/PageMasterImportPropMapper.cxx409
-rw-r--r--xmloff/source/style/PageMasterImportPropMapper.hxx65
-rw-r--r--xmloff/source/style/PageMasterPropHdl.cxx428
-rw-r--r--xmloff/source/style/PageMasterPropHdl.hxx182
-rw-r--r--xmloff/source/style/PageMasterPropHdlFactory.cxx148
-rw-r--r--xmloff/source/style/PageMasterPropHdlFactory.hxx49
-rw-r--r--xmloff/source/style/PageMasterPropMapper.cxx61
-rw-r--r--xmloff/source/style/PageMasterPropMapper.hxx49
-rw-r--r--xmloff/source/style/PageMasterStyleMap.cxx196
-rw-r--r--xmloff/source/style/PagePropertySetContext.cxx136
-rw-r--r--xmloff/source/style/PagePropertySetContext.hxx69
-rw-r--r--xmloff/source/style/SinglePropertySetInfoCache.cxx90
-rw-r--r--xmloff/source/style/StyleMap.cxx88
-rw-r--r--xmloff/source/style/TransGradientStyle.cxx328
-rw-r--r--xmloff/source/style/VisAreaContext.cxx137
-rw-r--r--xmloff/source/style/WordWrapPropertyHdl.cxx104
-rw-r--r--xmloff/source/style/XMLBackgroundImageContext.cxx417
-rw-r--r--xmloff/source/style/XMLBackgroundImageExport.cxx177
-rw-r--r--xmloff/source/style/XMLBitmapLogicalSizePropertyHandler.cxx68
-rw-r--r--xmloff/source/style/XMLBitmapRepeatOffsetPropertyHandler.cxx107
-rw-r--r--xmloff/source/style/XMLClipPropertyHandler.cxx149
-rw-r--r--xmloff/source/style/XMLConstantsPropertyHandler.cxx115
-rw-r--r--xmloff/source/style/XMLElementPropertyContext.cxx62
-rw-r--r--xmloff/source/style/XMLFillBitmapSizePropertyHandler.cxx101
-rw-r--r--xmloff/source/style/XMLFontAutoStylePool.cxx294
-rw-r--r--xmloff/source/style/XMLFontStylesContext.cxx288
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorExport.cxx190
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorExport.hxx65
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorImport.cxx217
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorImport.hxx80
-rw-r--r--xmloff/source/style/XMLIsPercentagePropertyHandler.cxx64
-rw-r--r--xmloff/source/style/XMLPageExport.cxx272
-rw-r--r--xmloff/source/style/XMLPercentOrMeasurePropertyHandler.cxx101
-rw-r--r--xmloff/source/style/XMLRectangleMembersHandler.cxx125
-rw-r--r--xmloff/source/style/adjushdl.cxx138
-rw-r--r--xmloff/source/style/adjushdl.hxx60
-rw-r--r--xmloff/source/style/backhdl.cxx300
-rw-r--r--xmloff/source/style/backhdl.hxx56
-rw-r--r--xmloff/source/style/bordrhdl.cxx374
-rw-r--r--xmloff/source/style/bordrhdl.hxx57
-rw-r--r--xmloff/source/style/breakhdl.cxx196
-rw-r--r--xmloff/source/style/breakhdl.hxx60
-rw-r--r--xmloff/source/style/cdouthdl.cxx332
-rw-r--r--xmloff/source/style/cdouthdl.hxx75
-rw-r--r--xmloff/source/style/chrhghdl.cxx167
-rw-r--r--xmloff/source/style/chrhghdl.hxx66
-rw-r--r--xmloff/source/style/chrlohdl.cxx147
-rw-r--r--xmloff/source/style/chrlohdl.hxx61
-rw-r--r--xmloff/source/style/csmaphdl.cxx141
-rw-r--r--xmloff/source/style/csmaphdl.hxx57
-rw-r--r--xmloff/source/style/durationhdl.cxx84
-rw-r--r--xmloff/source/style/durationhdl.hxx48
-rw-r--r--xmloff/source/style/escphdl.cxx175
-rw-r--r--xmloff/source/style/escphdl.hxx57
-rw-r--r--xmloff/source/style/fonthdl.cxx322
-rw-r--r--xmloff/source/style/fonthdl.hxx85
-rw-r--r--xmloff/source/style/impastp1.cxx135
-rw-r--r--xmloff/source/style/impastp2.cxx66
-rw-r--r--xmloff/source/style/impastp3.cxx194
-rw-r--r--xmloff/source/style/impastp4.cxx523
-rw-r--r--xmloff/source/style/impastpl.hxx227
-rw-r--r--xmloff/source/style/kernihdl.cxx92
-rw-r--r--xmloff/source/style/kernihdl.hxx48
-rw-r--r--xmloff/source/style/lspachdl.cxx198
-rw-r--r--xmloff/source/style/lspachdl.hxx66
-rw-r--r--xmloff/source/style/numehelp.cxx561
-rw-r--r--xmloff/source/style/opaquhdl.cxx85
-rw-r--r--xmloff/source/style/opaquhdl.hxx48
-rw-r--r--xmloff/source/style/postuhdl.cxx95
-rw-r--r--xmloff/source/style/postuhdl.hxx48
-rw-r--r--xmloff/source/style/prhdlfac.cxx453
-rw-r--r--xmloff/source/style/prstylei.cxx420
-rw-r--r--xmloff/source/style/shadwhdl.cxx178
-rw-r--r--xmloff/source/style/shadwhdl.hxx48
-rw-r--r--xmloff/source/style/shdwdhdl.cxx87
-rw-r--r--xmloff/source/style/shdwdhdl.hxx48
-rw-r--r--xmloff/source/style/styleexp.cxx526
-rw-r--r--xmloff/source/style/tabsthdl.cxx94
-rw-r--r--xmloff/source/style/tabsthdl.hxx51
-rw-r--r--xmloff/source/style/undlihdl.cxx383
-rw-r--r--xmloff/source/style/undlihdl.hxx66
-rw-r--r--xmloff/source/style/uniref.cxx43
-rw-r--r--xmloff/source/style/weighhdl.cxx177
-rw-r--r--xmloff/source/style/weighhdl.hxx49
-rw-r--r--xmloff/source/style/xmlaustp.cxx449
-rw-r--r--xmloff/source/style/xmlbahdl.cxx946
-rw-r--r--xmloff/source/style/xmlbahdl.hxx310
-rw-r--r--xmloff/source/style/xmlexppr.cxx1141
-rw-r--r--xmloff/source/style/xmlimppr.cxx779
-rw-r--r--xmloff/source/style/xmlnume.cxx907
-rw-r--r--xmloff/source/style/xmlnumfe.cxx1809
-rw-r--r--xmloff/source/style/xmlnumfi.cxx2233
-rw-r--r--xmloff/source/style/xmlnumi.cxx1397
-rw-r--r--xmloff/source/style/xmlprcon.cxx106
-rw-r--r--xmloff/source/style/xmlprhdl.cxx44
-rw-r--r--xmloff/source/style/xmlprmap.cxx255
-rw-r--r--xmloff/source/style/xmlstyle.cxx954
-rw-r--r--xmloff/source/style/xmltabe.cxx140
-rw-r--r--xmloff/source/style/xmltabi.cxx295
117 files changed, 0 insertions, 28803 deletions
diff --git a/xmloff/source/style/AttributeContainerHandler.cxx b/xmloff/source/style/AttributeContainerHandler.cxx
deleted file mode 100644
index 39fdea500e..0000000000
--- a/xmloff/source/style/AttributeContainerHandler.cxx
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/xml/AttributeData.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/text/GraphicCrop.hpp>
-
-#include "AttributeContainerHandler.hxx"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLAttributeContainerHandler
-//
-
-XMLAttributeContainerHandler::~XMLAttributeContainerHandler()
-{
- // nothing to do
-}
-
-bool XMLAttributeContainerHandler::equals(
- const Any& r1,
- const Any& r2 ) const
-{
- Reference< XNameContainer > xContainer1;
- Reference< XNameContainer > xContainer2;
-
- if( ( r1 >>= xContainer1 ) && ( r2 >>= xContainer2 ) )
- {
- uno::Sequence< OUString > aAttribNames1( xContainer1->getElementNames() );
- uno::Sequence< OUString > aAttribNames2( xContainer2->getElementNames() );
- const sal_Int32 nCount = aAttribNames1.getLength();
-
- if( aAttribNames2.getLength() == nCount )
- {
- const OUString* pAttribName = aAttribNames1.getConstArray();
-
- xml::AttributeData aData1;
- xml::AttributeData aData2;
-
- for( sal_Int32 i=0; i < nCount; i++, pAttribName++ )
- {
- if( !xContainer2->hasByName( *pAttribName ) )
- return sal_False;
-
- xContainer1->getByName( *pAttribName ) >>= aData1;
- xContainer2->getByName( *pAttribName ) >>= aData2;
-
- if( ( aData1.Namespace != aData2.Namespace ) ||
- ( aData1.Type != aData2.Type ) ||
- ( aData1.Value != aData2.Value ) )
- return sal_False;
- }
-
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-sal_Bool XMLAttributeContainerHandler::importXML( const OUString& /*rStrImpValue*/, Any& /*rValue*/, const SvXMLUnitConverter& /*rUnitConverter*/ ) const
-{
- return sal_True;
-}
-
-sal_Bool XMLAttributeContainerHandler::exportXML( OUString& /*rStrExpValue*/, const Any& /*rValue*/, const SvXMLUnitConverter& /*rUnitConverter*/ ) const
-{
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/DashStyle.cxx b/xmloff/source/style/DashStyle.cxx
deleted file mode 100644
index 4589471643..0000000000
--- a/xmloff/source/style/DashStyle.cxx
+++ /dev/null
@@ -1,331 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/drawing/DashStyle.hpp>
-#include <com/sun/star/drawing/LineDash.hpp>
-#include "xmloff/DashStyle.hxx"
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <tools/debug.hxx>
-#include <xmloff/xmltkmap.hxx>
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_DASH_NAME,
- XML_TOK_DASH_DISPLAY_NAME,
- XML_TOK_DASH_STYLE,
- XML_TOK_DASH_DOTS1,
- XML_TOK_DASH_DOTS1LEN,
- XML_TOK_DASH_DOTS2,
- XML_TOK_DASH_DOTS2LEN,
- XML_TOK_DASH_DISTANCE,
- XML_TOK_DASH_END=XML_TOK_UNKNOWN
-};
-
-static SvXMLTokenMapEntry aDashStyleAttrTokenMap[] =
-{
- { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DASH_NAME },
- { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_DASH_DISPLAY_NAME },
- { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_DASH_STYLE },
- { XML_NAMESPACE_DRAW, XML_DOTS1, XML_TOK_DASH_DOTS1 },
- { XML_NAMESPACE_DRAW, XML_DOTS1_LENGTH, XML_TOK_DASH_DOTS1LEN },
- { XML_NAMESPACE_DRAW, XML_DOTS2, XML_TOK_DASH_DOTS2 },
- { XML_NAMESPACE_DRAW, XML_DOTS2_LENGTH, XML_TOK_DASH_DOTS2LEN },
- { XML_NAMESPACE_DRAW, XML_DISTANCE, XML_TOK_DASH_DISTANCE },
- XML_TOKEN_MAP_END
-};
-
-SvXMLEnumMapEntry const pXML_DashStyle_Enum[] =
-{
- { XML_RECT, drawing::DashStyle_RECT },
- { XML_ROUND, drawing::DashStyle_ROUND },
- { XML_RECT, drawing::DashStyle_RECTRELATIVE },
- { XML_ROUND, drawing::DashStyle_ROUNDRELATIVE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-//-------------------------------------------------------------
-// Import
-//-------------------------------------------------------------
-
-XMLDashStyleImport::XMLDashStyleImport( SvXMLImport& rImp )
- : rImport(rImp)
-{
-}
-
-XMLDashStyleImport::~XMLDashStyleImport()
-{
-}
-
-sal_Bool XMLDashStyleImport::importXML(
- const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- uno::Any& rValue,
- OUString& rStrName )
-{
- drawing::LineDash aLineDash;
- aLineDash.Style = drawing::DashStyle_RECT;
- aLineDash.Dots = 0;
- aLineDash.DotLen = 0;
- aLineDash.Dashes = 0;
- aLineDash.DashLen = 0;
- aLineDash.Distance = 20;
- OUString aDisplayName;
-
- sal_Bool bIsRel = sal_False;
-
- SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap();
- SvXMLUnitConverter& rUnitConverter = rImport.GetMM100UnitConverter();
-
- SvXMLTokenMap aTokenMap( aDashStyleAttrTokenMap );
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rFullAttrName = xAttrList->getNameByIndex( i );
- OUString aStrAttrName;
- sal_uInt16 nPrefix = rNamespaceMap.GetKeyByAttrName( rFullAttrName, &aStrAttrName );
- const OUString& rStrValue = xAttrList->getValueByIndex( i );
-
- switch( aTokenMap.Get( nPrefix, aStrAttrName ) )
- {
- case XML_TOK_DASH_NAME:
- {
- rStrName = rStrValue;
- }
- break;
- case XML_TOK_DASH_DISPLAY_NAME:
- {
- aDisplayName = rStrValue;
- }
- break;
- case XML_TOK_DASH_STYLE:
- {
- sal_uInt16 eValue;
- if( rUnitConverter.convertEnum( eValue, rStrValue, pXML_DashStyle_Enum ) )
- {
- aLineDash.Style = (drawing::DashStyle) eValue;
- }
- }
- break;
- case XML_TOK_DASH_DOTS1:
- aLineDash.Dots = (sal_Int16)rStrValue.toInt32();
- break;
-
- case XML_TOK_DASH_DOTS1LEN:
- {
- if( rStrValue.indexOf( sal_Unicode('%') ) != -1 ) // its a percentage
- {
- bIsRel = sal_True;
- rUnitConverter.convertPercent( aLineDash.DotLen, rStrValue );
- }
- else
- {
- rUnitConverter.convertMeasure( aLineDash.DotLen, rStrValue );
- }
- }
- break;
-
- case XML_TOK_DASH_DOTS2:
- aLineDash.Dashes = (sal_Int16)rStrValue.toInt32();
- break;
-
- case XML_TOK_DASH_DOTS2LEN:
- {
- if( rStrValue.indexOf( sal_Unicode('%') ) != -1 ) // its a percentage
- {
- bIsRel = sal_True;
- rUnitConverter.convertPercent( aLineDash.DashLen, rStrValue );
- }
- else
- {
- rUnitConverter.convertMeasure( aLineDash.DashLen, rStrValue );
- }
- }
- break;
-
- case XML_TOK_DASH_DISTANCE:
- {
- if( rStrValue.indexOf( sal_Unicode('%') ) != -1 ) // its a percentage
- {
- bIsRel = sal_True;
- rUnitConverter.convertPercent( aLineDash.Distance, rStrValue );
- }
- else
- {
- rUnitConverter.convertMeasure( aLineDash.Distance, rStrValue );
- }
- }
- break;
- default:
- DBG_WARNING( "Unknown token at import gradient style" );
- }
- }
-
- if( bIsRel )
- aLineDash.Style = aLineDash.Style == drawing::DashStyle_RECT ? drawing::DashStyle_RECTRELATIVE : drawing::DashStyle_ROUNDRELATIVE;
-
- rValue <<= aLineDash;
-
- if( aDisplayName.getLength() )
- {
- rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_STROKE_DASH_ID,
- rStrName, aDisplayName );
- rStrName = aDisplayName;
- }
-
- return sal_True;
-}
-
-
-//-------------------------------------------------------------
-// Export
-//-------------------------------------------------------------
-
-XMLDashStyleExport::XMLDashStyleExport( SvXMLExport& rExp )
- : rExport(rExp)
-{
-}
-
-XMLDashStyleExport::~XMLDashStyleExport()
-{
-}
-
-sal_Bool XMLDashStyleExport::exportXML(
- const OUString& rStrName,
- const uno::Any& rValue )
-{
- sal_Bool bRet = sal_False;
-
- SvXMLUnitConverter rUnitConverter = rExport.GetMM100UnitConverter();
-
- drawing::LineDash aLineDash;
-
- if( rStrName.getLength() )
- {
- if( rValue >>= aLineDash )
- {
- sal_Bool bIsRel = aLineDash.Style == drawing::DashStyle_RECTRELATIVE || aLineDash.Style == drawing::DashStyle_ROUNDRELATIVE;
-
- OUString aStrValue;
- OUStringBuffer aOut;
-
- // Name
- sal_Bool bEncoded = sal_False;
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME,
- rExport.EncodeStyleName( rStrName,
- &bEncoded ) );
- if( bEncoded )
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISPLAY_NAME,
- rStrName );
-
- // Style
- rUnitConverter.convertEnum( aOut, aLineDash.Style, pXML_DashStyle_Enum );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE, aStrValue );
-
-
- // dots
- if( aLineDash.Dots )
- {
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DOTS1, OUString::valueOf( (sal_Int32)aLineDash.Dots ) );
-
- if( aLineDash.DotLen )
- {
- // dashes length
- if( bIsRel )
- {
- rUnitConverter.convertPercent( aOut, aLineDash.DotLen );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, aLineDash.DotLen );
- }
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DOTS1_LENGTH, aStrValue );
- }
- }
-
- // dashes
- if( aLineDash.Dashes )
- {
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DOTS2, OUString::valueOf( (sal_Int32)aLineDash.Dashes ) );
-
- if( aLineDash.DashLen )
- {
- // dashes length
- if( bIsRel )
- {
- rUnitConverter.convertPercent( aOut, aLineDash.DashLen );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, aLineDash.DashLen );
- }
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DOTS2_LENGTH, aStrValue );
- }
- }
-
- // distance
- if( bIsRel )
- {
- rUnitConverter.convertPercent( aOut, aLineDash.Distance );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, aLineDash.Distance );
- }
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISTANCE, aStrValue );
-
-
- // do Write
- SvXMLElementExport rElem( rExport,
- XML_NAMESPACE_DRAW, XML_STROKE_DASH,
- sal_True, sal_False );
- }
- }
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/DrawAspectHdl.cxx b/xmloff/source/style/DrawAspectHdl.cxx
deleted file mode 100644
index 1cef9990fe..0000000000
--- a/xmloff/source/style/DrawAspectHdl.cxx
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmltoken.hxx>
-#include "DrawAspectHdl.hxx"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLMeasurePropHdl
-//
-
-SvXMLEnumMapEntry const pXML_DrawAspect_Enum[] =
-{
- { XML_CONTENT, 1 },
- { XML_THUMBNAIL, 2 },
- { XML_ICON, 4 },
- { XML_PRINT, 8 },
- { XML_TOKEN_INVALID, 0 }
-};
-
-DrawAspectHdl::~DrawAspectHdl()
-{
- // nothing to do
-}
-
-sal_Bool DrawAspectHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Int64 nAspect = 0;
-
- SvXMLUnitConverter::convertNumber64( nAspect, rStrImpValue );
- rValue <<= nAspect;
-
- return nAspect > 0;
-}
-
-sal_Bool DrawAspectHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut;
-
- sal_Int64 nAspect = 0;
- if( ( rValue >>= nAspect ) && nAspect > 0 )
- {
- // store the aspect as an integer value
- aOut.append( nAspect );
-
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/DrawAspectHdl.hxx b/xmloff/source/style/DrawAspectHdl.hxx
deleted file mode 100644
index 972b7b79cb..0000000000
--- a/xmloff/source/style/DrawAspectHdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_DRAWASPECTHDL_HXX
-#define _XMLOFF_DRAWASPECTHDL_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class DrawAspectHdl : public XMLPropertyHandler
-{
-public:
- virtual ~DrawAspectHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_DRAWASPECTHDL_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/EnumPropertyHdl.cxx b/xmloff/source/style/EnumPropertyHdl.cxx
deleted file mode 100644
index 32003adef3..0000000000
--- a/xmloff/source/style/EnumPropertyHdl.cxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <xmloff/EnumPropertyHdl.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <comphelper/extract.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEnumPropertyHdl
-//
-
-XMLEnumPropertyHdl::~XMLEnumPropertyHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLEnumPropertyHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 nValue = 0;
-
- if( SvXMLUnitConverter::convertEnum( nValue, rStrImpValue, mpEnumMap ) )
- {
- switch( mrType.getTypeClass() )
- {
- case TypeClass_ENUM:
- rValue = ::cppu::int2enum( nValue, mrType );
- break;
- case TypeClass_LONG:
- rValue <<= (sal_Int32) nValue;
- break;
- case TypeClass_SHORT:
- rValue <<= (sal_Int16) nValue;
- break;
- case TypeClass_BYTE:
- rValue <<= (sal_Int8) nValue;
- break;
- default:
- OSL_FAIL( "Wrong type for enum property handler!" );
- return sal_False;
- }
- return sal_True;
- }
-
- return sal_False;
-}
-
-sal_Bool XMLEnumPropertyHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Int32 nValue = 0;
- if(!(rValue >>= nValue ))
- if(!::cppu::enum2int(nValue, rValue) )
- return sal_False;
-
- OUStringBuffer aOut;
-
- if(!SvXMLUnitConverter::convertEnum( aOut, nValue, mpEnumMap ))
- return sal_False;
-
- rStrExpValue = aOut.makeStringAndClear();
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/FillStyleContext.cxx b/xmloff/source/style/FillStyleContext.cxx
deleted file mode 100644
index 1af29f5175..0000000000
--- a/xmloff/source/style/FillStyleContext.cxx
+++ /dev/null
@@ -1,362 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/container/XNameContainer.hpp>
-#include "FillStyleContext.hxx"
-#include <xmloff/xmlimp.hxx>
-#include "xmloff/GradientStyle.hxx"
-#include "xmloff/HatchStyle.hxx"
-#include "xmloff/ImageStyle.hxx"
-#include "TransGradientStyle.hxx"
-#include "xmloff/MarkerStyle.hxx"
-#include "xmloff/DashStyle.hxx"
-#include <xmloff/families.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/XMLBase64ImportContext.hxx>
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-TYPEINIT1( XMLGradientStyleContext, SvXMLStyleContext );
-
-XMLGradientStyleContext::XMLGradientStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList)
-: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList)
-{
-
- // start import
- XMLGradientStyleImport aGradientStyle( GetImport() );
- aGradientStyle.importXML( xAttrList, maAny, maStrName );
-}
-
-XMLGradientStyleContext::~XMLGradientStyleContext()
-{
-}
-
-void XMLGradientStyleContext::EndElement()
-{
- uno::Reference< container::XNameContainer > xGradient( GetImport().GetGradientHelper() );
-
- try
- {
- if(xGradient.is())
- {
- if( xGradient->hasByName( maStrName ) )
- {
- xGradient->replaceByName( maStrName, maAny );
- }
- else
- {
- xGradient->insertByName( maStrName, maAny );
- }
- }
- }
- catch( container::ElementExistException& )
- {}
-}
-
-sal_Bool XMLGradientStyleContext::IsTransient() const
-{
- return sal_True;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-TYPEINIT1( XMLHatchStyleContext, SvXMLStyleContext );
-
-XMLHatchStyleContext::XMLHatchStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList)
-: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList)
-{
- // start import
- XMLHatchStyleImport aHatchStyle( GetImport() );
- aHatchStyle.importXML( xAttrList, maAny, maStrName );
-}
-
-XMLHatchStyleContext::~XMLHatchStyleContext()
-{
-}
-
-void XMLHatchStyleContext::EndElement()
-{
- uno::Reference< container::XNameContainer > xHatch( GetImport().GetHatchHelper() );
-
- try
- {
- if(xHatch.is())
- {
- if( xHatch->hasByName( maStrName ) )
- {
- xHatch->replaceByName( maStrName, maAny );
- }
- else
- {
- xHatch->insertByName( maStrName, maAny );
- }
- }
- }
- catch( container::ElementExistException& )
- {}
-}
-
-sal_Bool XMLHatchStyleContext::IsTransient() const
-{
- return sal_True;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-TYPEINIT1( XMLBitmapStyleContext, SvXMLStyleContext );
-
-XMLBitmapStyleContext::XMLBitmapStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList)
-: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList)
-{
- // start import
- XMLImageStyle aBitmapStyle;
- aBitmapStyle.importXML( xAttrList, maAny, maStrName, rImport );
-}
-
-XMLBitmapStyleContext::~XMLBitmapStyleContext()
-{
-}
-
-SvXMLImportContext* XMLBitmapStyleContext::CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
- if( (XML_NAMESPACE_OFFICE == nPrefix) && xmloff::token::IsXMLToken( rLocalName, xmloff::token::XML_BINARY_DATA ) )
- {
- OUString sURL;
- maAny >>= sURL;
- if( !sURL.getLength() && !mxBase64Stream.is() )
- {
- mxBase64Stream = GetImport().GetStreamForGraphicObjectURLFromBase64();
- if( mxBase64Stream.is() )
- pContext = new XMLBase64ImportContext( GetImport(), nPrefix,
- rLocalName, xAttrList,
- mxBase64Stream );
- }
- }
- if( !pContext )
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-
- return pContext;
-}
-
-void XMLBitmapStyleContext::EndElement()
-{
- OUString sURL;
- maAny >>= sURL;
-
- if( !sURL.getLength() && mxBase64Stream.is() )
- {
- sURL = GetImport().ResolveGraphicObjectURLFromBase64( mxBase64Stream );
- mxBase64Stream = 0;
- maAny <<= sURL;
- }
-
- uno::Reference< container::XNameContainer > xBitmap( GetImport().GetBitmapHelper() );
-
- try
- {
- if(xBitmap.is())
- {
- if( xBitmap->hasByName( maStrName ) )
- {
- xBitmap->replaceByName( maStrName, maAny );
- }
- else
- {
- xBitmap->insertByName( maStrName, maAny );
- }
- }
- }
- catch( container::ElementExistException& )
- {}
-}
-
-sal_Bool XMLBitmapStyleContext::IsTransient() const
-{
- return sal_True;
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-TYPEINIT1( XMLTransGradientStyleContext, SvXMLStyleContext );
-
-XMLTransGradientStyleContext::XMLTransGradientStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList)
-: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList)
-{
- // start import
- XMLTransGradientStyleImport aTransGradientStyle( GetImport() );
- aTransGradientStyle.importXML( xAttrList, maAny, maStrName );
-}
-
-XMLTransGradientStyleContext::~XMLTransGradientStyleContext()
-{
-}
-
-void XMLTransGradientStyleContext::EndElement()
-{
- uno::Reference< container::XNameContainer > xTransGradient( GetImport().GetTransGradientHelper() );
-
- try
- {
- if(xTransGradient.is())
- {
- if( xTransGradient->hasByName( maStrName ) )
- {
- xTransGradient->replaceByName( maStrName, maAny );
- }
- else
- {
- xTransGradient->insertByName( maStrName, maAny );
- }
- }
- }
- catch( container::ElementExistException& )
- {}
-}
-
-sal_Bool XMLTransGradientStyleContext::IsTransient() const
-{
- return sal_True;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-TYPEINIT1( XMLMarkerStyleContext, SvXMLStyleContext );
-
-XMLMarkerStyleContext::XMLMarkerStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList)
-: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList)
-{
- // start import
- XMLMarkerStyleImport aMarkerStyle( GetImport() );
- aMarkerStyle.importXML( xAttrList, maAny, maStrName );
-}
-
-XMLMarkerStyleContext::~XMLMarkerStyleContext()
-{
-}
-
-void XMLMarkerStyleContext::EndElement()
-{
- uno::Reference< container::XNameContainer > xMarker( GetImport().GetMarkerHelper() );
-
- try
- {
- if(xMarker.is())
- {
- if( xMarker->hasByName( maStrName ) )
- {
- xMarker->replaceByName( maStrName, maAny );
- }
- else
- {
- xMarker->insertByName( maStrName, maAny );
- }
- }
- }
- catch( container::ElementExistException& )
- {}
-}
-
-sal_Bool XMLMarkerStyleContext::IsTransient() const
-{
- return sal_True;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-
-TYPEINIT1( XMLDashStyleContext, SvXMLStyleContext );
-
-XMLDashStyleContext::XMLDashStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList)
-: SvXMLStyleContext(rImport, nPrfx, rLName, xAttrList)
-{
- // start import
- XMLDashStyleImport aDashStyle( GetImport() );
- aDashStyle.importXML( xAttrList, maAny, maStrName );
-}
-
-XMLDashStyleContext::~XMLDashStyleContext()
-{
-}
-
-void XMLDashStyleContext::EndElement()
-{
- uno::Reference< container::XNameContainer > xDashes( GetImport().GetDashHelper() );
-
- try
- {
- if(xDashes.is())
- {
- if( xDashes->hasByName( maStrName ) )
- {
- xDashes->replaceByName( maStrName, maAny );
- }
- else
- {
- xDashes->insertByName( maStrName, maAny );
- }
- }
- }
- catch( container::ElementExistException& )
- {}
-}
-
-sal_Bool XMLDashStyleContext::IsTransient() const
-{
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/FillStyleContext.hxx b/xmloff/source/style/FillStyleContext.hxx
deleted file mode 100644
index 1f857d1977..0000000000
--- a/xmloff/source/style/FillStyleContext.hxx
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_FILLSTYLECONTEXTS_HXX_
-#define _XMLOFF_FILLSTYLECONTEXTS_HXX_
-
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <xmloff/xmlstyle.hxx>
-#include<rtl/ustring.hxx>
-
-//////////////////////////////////////////////////////////////////////////////
-// draw:gardient context
-
-class XMLGradientStyleContext: public SvXMLStyleContext
-{
-private:
- ::com::sun::star::uno::Any maAny;
- rtl::OUString maStrName;
-
-public:
- TYPEINFO();
-
- XMLGradientStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
- virtual ~XMLGradientStyleContext();
-
- virtual void EndElement();
-
- virtual sal_Bool IsTransient() const;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-// draw:hatch context
-
-class XMLHatchStyleContext: public SvXMLStyleContext
-{
-private:
- ::com::sun::star::uno::Any maAny;
- rtl::OUString maStrName;
-
-public:
- TYPEINFO();
-
- XMLHatchStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
- virtual ~XMLHatchStyleContext();
-
- virtual void EndElement();
-
- virtual sal_Bool IsTransient() const;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-// draw:fill-image context
-
-class XMLBitmapStyleContext: public SvXMLStyleContext
-{
-private:
- ::com::sun::star::uno::Any maAny;
- rtl::OUString maStrName;
- ::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream;
-
-public:
- TYPEINFO();
-
- XMLBitmapStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
- virtual ~XMLBitmapStyleContext();
-
- virtual SvXMLImportContext *CreateChildContext(
- sal_uInt16 nPrefix,
- const ::rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > & xAttrList );
-
- virtual void EndElement();
-
- virtual sal_Bool IsTransient() const;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-// draw:transparency context
-
-class XMLTransGradientStyleContext: public SvXMLStyleContext
-{
-private:
- ::com::sun::star::uno::Any maAny;
- rtl::OUString maStrName;
-
-public:
- TYPEINFO();
-
- XMLTransGradientStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
- virtual ~XMLTransGradientStyleContext();
-
- virtual void EndElement();
-
- virtual sal_Bool IsTransient() const;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-// draw:marker context
-
-class XMLMarkerStyleContext: public SvXMLStyleContext
-{
-private:
- ::com::sun::star::uno::Any maAny;
- rtl::OUString maStrName;
-
-public:
- TYPEINFO();
-
- XMLMarkerStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
- virtual ~XMLMarkerStyleContext();
-
- virtual void EndElement();
-
- virtual sal_Bool IsTransient() const;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-// draw:marker context
-
-class XMLDashStyleContext: public SvXMLStyleContext
-{
-private:
- ::com::sun::star::uno::Any maAny;
- rtl::OUString maStrName;
-
-public:
- TYPEINFO();
-
- XMLDashStyleContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
- virtual ~XMLDashStyleContext();
-
- virtual void EndElement();
-
- virtual sal_Bool IsTransient() const;
-};
-
-#endif // _XMLOFF_FILLSTYLECONTEXTS_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/GradientStyle.cxx b/xmloff/source/style/GradientStyle.cxx
deleted file mode 100644
index 5ebecbda65..0000000000
--- a/xmloff/source/style/GradientStyle.cxx
+++ /dev/null
@@ -1,343 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "xmloff/GradientStyle.hxx"
-#include <com/sun/star/awt/Gradient.hpp>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <tools/debug.hxx>
-#include <xmloff/xmltkmap.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlimp.hxx>
-
-
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_GRADIENT_NAME,
- XML_TOK_GRADIENT_DISPLAY_NAME,
- XML_TOK_GRADIENT_STYLE,
- XML_TOK_GRADIENT_CX,
- XML_TOK_GRADIENT_CY,
- XML_TOK_GRADIENT_STARTCOLOR,
- XML_TOK_GRADIENT_ENDCOLOR,
- XML_TOK_GRADIENT_STARTINT,
- XML_TOK_GRADIENT_ENDINT,
- XML_TOK_GRADIENT_ANGLE,
- XML_TOK_GRADIENT_BORDER,
- XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN
-};
-
-
-SvXMLEnumMapEntry const pXML_GradientStyle_Enum[] =
-{
- { XML_GRADIENTSTYLE_LINEAR, awt::GradientStyle_LINEAR },
- { XML_GRADIENTSTYLE_AXIAL, awt::GradientStyle_AXIAL },
- { XML_GRADIENTSTYLE_RADIAL, awt::GradientStyle_RADIAL },
- { XML_GRADIENTSTYLE_ELLIPSOID, awt::GradientStyle_ELLIPTICAL },
- { XML_GRADIENTSTYLE_SQUARE, awt::GradientStyle_SQUARE },
- { XML_GRADIENTSTYLE_RECTANGULAR, awt::GradientStyle_RECT },
- { XML_TOKEN_INVALID, 0 }
-};
-
-//-------------------------------------------------------------
-// Import
-//-------------------------------------------------------------
-XMLGradientStyleImport::XMLGradientStyleImport(
- SvXMLImport& rImp )
- : rImport(rImp)
-{
-}
-
-XMLGradientStyleImport::~XMLGradientStyleImport()
-{
-}
-
-sal_Bool XMLGradientStyleImport::importXML(
- const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- uno::Any& rValue,
- OUString& rStrName )
-{
- sal_Bool bRet = sal_False;
- sal_Bool bHasName = sal_False;
- sal_Bool bHasStyle = sal_False;
- sal_Bool bHasStartColor = sal_False;
- sal_Bool bHasEndColor = sal_False;
- OUString aDisplayName;
-
- awt::Gradient aGradient;
- aGradient.XOffset = 0;
- aGradient.YOffset = 0;
- aGradient.StartIntensity = 100;
- aGradient.EndIntensity = 100;
- aGradient.Angle = 0;
- aGradient.Border = 0;
-
- {
- static SvXMLTokenMapEntry aGradientAttrTokenMap[] =
-{
- { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME },
- { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME },
- { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE },
- { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX },
- { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY },
- { XML_NAMESPACE_DRAW, XML_START_COLOR, XML_TOK_GRADIENT_STARTCOLOR },
- { XML_NAMESPACE_DRAW, XML_END_COLOR, XML_TOK_GRADIENT_ENDCOLOR },
- { XML_NAMESPACE_DRAW, XML_START_INTENSITY, XML_TOK_GRADIENT_STARTINT },
- { XML_NAMESPACE_DRAW, XML_END_INTENSITY, XML_TOK_GRADIENT_ENDINT },
- { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE },
- { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER },
- XML_TOKEN_MAP_END
-};
-
- SvXMLTokenMap aTokenMap( aGradientAttrTokenMap );
- SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap();
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rFullAttrName = xAttrList->getNameByIndex( i );
- OUString aStrAttrName;
- sal_uInt16 nPrefix = rNamespaceMap.GetKeyByAttrName( rFullAttrName, &aStrAttrName );
- const OUString& rStrValue = xAttrList->getValueByIndex( i );
-
- sal_Int32 nTmpValue;
-
- switch( aTokenMap.Get( nPrefix, aStrAttrName ) )
- {
- case XML_TOK_GRADIENT_NAME:
- {
- rStrName = rStrValue;
- bHasName = sal_True;
- }
- break;
- case XML_TOK_GRADIENT_DISPLAY_NAME:
- {
- aDisplayName = rStrValue;
- }
- break;
- case XML_TOK_GRADIENT_STYLE:
- {
- sal_uInt16 eValue;
- if( SvXMLUnitConverter::convertEnum( eValue, rStrValue, pXML_GradientStyle_Enum ) )
- {
- aGradient.Style = (awt::GradientStyle) eValue;
- bHasStyle = sal_True;
- }
- }
- break;
- case XML_TOK_GRADIENT_CX:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.XOffset = static_cast< sal_Int16 >( nTmpValue );
- break;
- case XML_TOK_GRADIENT_CY:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.YOffset = static_cast< sal_Int16 >( nTmpValue );
- break;
- case XML_TOK_GRADIENT_STARTCOLOR:
- {
- Color aColor;
- bHasStartColor = SvXMLUnitConverter::convertColor( aColor, rStrValue );
- if( bHasStartColor )
- aGradient.StartColor = (sal_Int32)( aColor.GetColor() );
- }
- break;
- case XML_TOK_GRADIENT_ENDCOLOR:
- {
- Color aColor;
- bHasStartColor = SvXMLUnitConverter::convertColor( aColor, rStrValue );
- if( bHasStartColor )
- aGradient.EndColor = (sal_Int32)( aColor.GetColor() );
- }
- break;
- case XML_TOK_GRADIENT_STARTINT:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.StartIntensity = static_cast< sal_Int16 >( nTmpValue );
- break;
- case XML_TOK_GRADIENT_ENDINT:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.EndIntensity = static_cast< sal_Int16 >( nTmpValue );
- break;
- case XML_TOK_GRADIENT_ANGLE:
- {
- sal_Int32 nValue;
- SvXMLUnitConverter::convertNumber( nValue, rStrValue, 0, 3600 );
- aGradient.Angle = sal_Int16( nValue );
- }
- break;
- case XML_TOK_GRADIENT_BORDER:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.Border = static_cast< sal_Int16 >( nTmpValue );
- break;
-
- default:
- DBG_WARNING( "Unknown token at import gradient style" )
- ;
- }
- }
-
- rValue <<= aGradient;
-
- if( aDisplayName.getLength() )
- {
- rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_GRADIENT_ID, rStrName,
- aDisplayName );
- rStrName = aDisplayName;
- }
-
- bRet = bHasName && bHasStyle && bHasStartColor && bHasEndColor;
-
- }
-
- return bRet;
-}
-
-
-//-------------------------------------------------------------
-// Export
-//-------------------------------------------------------------
-
-XMLGradientStyleExport::XMLGradientStyleExport(
- SvXMLExport& rExp )
- : rExport(rExp)
-{
-}
-
-XMLGradientStyleExport::~XMLGradientStyleExport()
-{
-}
-
-sal_Bool XMLGradientStyleExport::exportXML(
- const OUString& rStrName,
- const uno::Any& rValue )
-{
- sal_Bool bRet = sal_False;
- awt::Gradient aGradient;
-
- if( rStrName.getLength() )
- {
- if( rValue >>= aGradient )
- {
- OUString aStrValue;
- OUStringBuffer aOut;
-
- // Style
- if( !SvXMLUnitConverter::convertEnum( aOut, aGradient.Style, pXML_GradientStyle_Enum ) )
- {
- bRet = sal_False;
- }
- else
- {
- // Name
- sal_Bool bEncoded = sal_False;
- OUString aStrName( rStrName );
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME,
- rExport.EncodeStyleName( aStrName,
- &bEncoded ) );
- if( bEncoded )
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISPLAY_NAME,
- aStrName );
-
-
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE, aStrValue );
-
- // Center x/y
- if( aGradient.Style != awt::GradientStyle_LINEAR &&
- aGradient.Style != awt::GradientStyle_AXIAL )
- {
- SvXMLUnitConverter::convertPercent( aOut, aGradient.XOffset );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_CX, aStrValue );
-
- SvXMLUnitConverter::convertPercent( aOut, aGradient.YOffset );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_CY, aStrValue );
- }
-
- Color aColor;
-
- // Color start
- aColor.SetColor( aGradient.StartColor );
- SvXMLUnitConverter::convertColor( aOut, aColor );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_START_COLOR, aStrValue );
-
- // Color end
- aColor.SetColor( aGradient.EndColor );
- SvXMLUnitConverter::convertColor( aOut, aColor );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_END_COLOR, aStrValue );
-
- // Intensity start
- SvXMLUnitConverter::convertPercent( aOut, aGradient.StartIntensity );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_START_INTENSITY, aStrValue );
-
- // Intensity end
- SvXMLUnitConverter::convertPercent( aOut, aGradient.EndIntensity );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_END_INTENSITY, aStrValue );
-
- // Angle
- if( aGradient.Style != awt::GradientStyle_RADIAL )
- {
- SvXMLUnitConverter::convertNumber( aOut, sal_Int32( aGradient.Angle ) );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, aStrValue );
- }
-
- // Border
- SvXMLUnitConverter::convertPercent( aOut, aGradient.Border );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, aStrValue );
-
- // Do Write
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_DRAW, XML_GRADIENT,
- sal_True, sal_False );
- }
- }
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/HatchStyle.cxx b/xmloff/source/style/HatchStyle.cxx
deleted file mode 100644
index df2526bd85..0000000000
--- a/xmloff/source/style/HatchStyle.cxx
+++ /dev/null
@@ -1,262 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "xmloff/HatchStyle.hxx"
-#include <com/sun/star/drawing/Hatch.hpp>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <tools/debug.hxx>
-#include <xmloff/xmltkmap.hxx>
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_HATCH_NAME,
- XML_TOK_HATCH_DISPLAY_NAME,
- XML_TOK_HATCH_STYLE,
- XML_TOK_HATCH_COLOR,
- XML_TOK_HATCH_DISTANCE,
- XML_TOK_HATCH_ROTATION,
- XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN
-};
-
-
-SvXMLEnumMapEntry const pXML_HatchStyle_Enum[] =
-{
- { XML_HATCHSTYLE_SINGLE, drawing::HatchStyle_SINGLE },
- { XML_HATCHSTYLE_DOUBLE, drawing::HatchStyle_DOUBLE },
- { XML_HATCHSTYLE_TRIPLE, drawing::HatchStyle_TRIPLE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-
-//-------------------------------------------------------------
-// Import
-//-------------------------------------------------------------
-
-XMLHatchStyleImport::XMLHatchStyleImport( SvXMLImport& rImp )
- : rImport(rImp)
-{
-}
-
-XMLHatchStyleImport::~XMLHatchStyleImport()
-{
-}
-
-sal_Bool XMLHatchStyleImport::importXML(
- const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- uno::Any& rValue,
- OUString& rStrName )
-{
- sal_Bool bRet = sal_False;
-
- sal_Bool bHasName = sal_False;
- sal_Bool bHasStyle = sal_False;
- sal_Bool bHasColor = sal_False;
- sal_Bool bHasDist = sal_False;
- OUString aDisplayName;
-
- drawing::Hatch aHatch;
- aHatch.Style = drawing::HatchStyle_SINGLE;
- aHatch.Color = 0;
- aHatch.Distance = 0;
- aHatch.Angle = 0;
-
- {
- static SvXMLTokenMapEntry aHatchAttrTokenMap[] =
-{
- { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_HATCH_NAME },
- { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_HATCH_DISPLAY_NAME },
- { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_HATCH_STYLE },
- { XML_NAMESPACE_DRAW, XML_COLOR, XML_TOK_HATCH_COLOR },
- { XML_NAMESPACE_DRAW, XML_HATCH_DISTANCE, XML_TOK_HATCH_DISTANCE },
- { XML_NAMESPACE_DRAW, XML_ROTATION, XML_TOK_HATCH_ROTATION },
- XML_TOKEN_MAP_END
-};
-
- SvXMLTokenMap aTokenMap( aHatchAttrTokenMap );
- SvXMLNamespaceMap rNamespaceMap = rImport.GetNamespaceMap();
- SvXMLUnitConverter& rUnitConverter = rImport.GetMM100UnitConverter();
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rFullAttrName = xAttrList->getNameByIndex( i );
- OUString aStrAttrName;
- sal_uInt16 nPrefix = rNamespaceMap.GetKeyByAttrName( rFullAttrName, &aStrAttrName );
- const OUString& rStrValue = xAttrList->getValueByIndex( i );
-
- switch( aTokenMap.Get( nPrefix, aStrAttrName ) )
- {
- case XML_TOK_HATCH_NAME:
- {
- rStrName = rStrValue;
- bHasName = sal_True;
- }
- break;
- case XML_TOK_HATCH_DISPLAY_NAME:
- aDisplayName = rStrValue;
- break;
- case XML_TOK_HATCH_STYLE:
- {
- sal_uInt16 eValue;
- bHasStyle = rUnitConverter.convertEnum( eValue, rStrValue, pXML_HatchStyle_Enum );
- if( bHasStyle )
- aHatch.Style = (drawing::HatchStyle) eValue;
- }
- break;
- case XML_TOK_HATCH_COLOR:
- {
- Color aColor;
- bHasColor = rUnitConverter.convertColor( aColor, rStrValue );
- if( bHasColor )
- aHatch.Color = (sal_Int32)( aColor.GetColor() );
- }
- break;
- case XML_TOK_HATCH_DISTANCE:
- bHasDist = rUnitConverter.convertMeasure( (sal_Int32&)aHatch.Distance, rStrValue );
- break;
- case XML_TOK_HATCH_ROTATION:
- {
- sal_Int32 nValue;
- rUnitConverter.convertNumber( nValue, rStrValue, 0, 3600 );
- aHatch.Angle = sal_Int16( nValue );
- }
- break;
-
- default:
- DBG_WARNING( "Unknown token at import hatch style" )
- ;
- }
- }
-
- rValue <<= aHatch;
-
- if( aDisplayName.getLength() )
- {
- rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_HATCH_ID, rStrName,
- aDisplayName );
- rStrName = aDisplayName;
- }
-
- bRet = bHasName && bHasStyle && bHasColor && bHasDist;
-
- }
-
- return bRet;
-}
-
-
-//-------------------------------------------------------------
-// Export
-//-------------------------------------------------------------
-
-XMLHatchStyleExport::XMLHatchStyleExport( SvXMLExport& rExp )
- : rExport(rExp)
-{
-}
-
-XMLHatchStyleExport::~XMLHatchStyleExport()
-{
-}
-
-sal_Bool XMLHatchStyleExport::exportXML(
- const OUString& rStrName,
- const uno::Any& rValue )
-{
- sal_Bool bRet = sal_False;
- drawing::Hatch aHatch;
-
- if( rStrName.getLength() )
- {
- if( rValue >>= aHatch )
- {
- OUString aStrValue;
- OUStringBuffer aOut;
-
- SvXMLUnitConverter& rUnitConverter =
- rExport.GetMM100UnitConverter();
-
- // Style
- if( !rUnitConverter.convertEnum( aOut, aHatch.Style, pXML_HatchStyle_Enum ) )
- {
- bRet = sal_False;
- }
- else
- {
- // Name
- sal_Bool bEncoded = sal_False;
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME,
- rExport.EncodeStyleName( rStrName,
- &bEncoded ) );
- if( bEncoded )
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISPLAY_NAME,
- rStrName );
-
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE, aStrValue );
-
- // Color
- rUnitConverter.convertColor( aOut, Color( aHatch.Color ) );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_COLOR, aStrValue );
-
- // Distance
- rUnitConverter.convertMeasure( aOut, aHatch.Distance );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_HATCH_DISTANCE, aStrValue );
-
- // Angle
- rUnitConverter.convertNumber( aOut, sal_Int32( aHatch.Angle ) );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_ROTATION, aStrValue );
-
- // Do Write
- SvXMLElementExport rElem( rExport, XML_NAMESPACE_DRAW, XML_HATCH,
- sal_True, sal_False );
- }
- }
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/ImageStyle.cxx b/xmloff/source/style/ImageStyle.cxx
deleted file mode 100644
index c89f16e6cb..0000000000
--- a/xmloff/source/style/ImageStyle.cxx
+++ /dev/null
@@ -1,209 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "xmloff/ImageStyle.hxx"
-#include <com/sun/star/awt/XBitmap.hpp>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include"xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <tools/debug.hxx>
-#include <xmloff/xmltkmap.hxx>
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_IMAGE_NAME,
- XML_TOK_IMAGE_DISPLAY_NAME,
- XML_TOK_IMAGE_URL,
- XML_TOK_IMAGE_TYPE,
- XML_TOK_IMAGE_SHOW,
- XML_TOK_IMAGE_ACTUATE,
- XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN
-};
-
-
-XMLImageStyle::XMLImageStyle()
-{
-}
-
-XMLImageStyle::~XMLImageStyle()
-{
-}
-
-sal_Bool XMLImageStyle::exportXML( const OUString& rStrName, const ::com::sun::star::uno::Any& rValue, SvXMLExport& rExport )
-{
- return ImpExportXML( rStrName, rValue, rExport );
-}
-
-sal_Bool XMLImageStyle::ImpExportXML( const OUString& rStrName, const uno::Any& rValue, SvXMLExport& rExport )
-{
- sal_Bool bRet = sal_False;
-
- OUString sImageURL;
-
- if( rStrName.getLength() )
- {
- if( rValue >>= sImageURL )
- {
- OUString aStrValue;
- OUStringBuffer aOut;
-
- // Name
- sal_Bool bEncoded = sal_False;
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME,
- rExport.EncodeStyleName( rStrName,
- &bEncoded ) );
- if( bEncoded )
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISPLAY_NAME,
- rStrName );
-
- // uri
- const OUString aStr( rExport.AddEmbeddedGraphicObject( sImageURL ) );
- if( aStr.getLength() )
- {
- rExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, aStr );
- rExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
- rExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
- rExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONLOAD );
- }
-
- // Do Write
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_DRAW, XML_FILL_IMAGE, sal_True, sal_True );
-
- if( sImageURL.getLength() )
- {
- // optional office:binary-data
- rExport.AddEmbeddedGraphicObjectAsBase64( sImageURL );
- }
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLImageStyle::importXML( const uno::Reference< xml::sax::XAttributeList >& xAttrList, uno::Any& rValue, OUString& rStrName, SvXMLImport& rImport )
-{
- return ImpImportXML( xAttrList, rValue, rStrName, rImport );
-}
-
-sal_Bool XMLImageStyle::ImpImportXML( const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- uno::Any& rValue, OUString& rStrName,
- SvXMLImport& rImport )
-{
- sal_Bool bRet = sal_False;
- sal_Bool bHasHRef = sal_False;
- sal_Bool bHasName = sal_False;
- OUString aStrURL;
- OUString aDisplayName;
-
- {
- static SvXMLTokenMapEntry aHatchAttrTokenMap[] =
-{
- { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_IMAGE_NAME },
- { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_IMAGE_DISPLAY_NAME },
- { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL },
- { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_IMAGE_TYPE },
- { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_IMAGE_SHOW },
- { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_IMAGE_ACTUATE },
- XML_TOKEN_MAP_END
-};
-
- SvXMLTokenMap aTokenMap( aHatchAttrTokenMap );
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rFullAttrName = xAttrList->getNameByIndex( i );
- OUString aStrAttrName;
- sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( rFullAttrName, &aStrAttrName );
- const OUString& rStrValue = xAttrList->getValueByIndex( i );
-
- switch( aTokenMap.Get( nPrefix, aStrAttrName ) )
- {
- case XML_TOK_IMAGE_NAME:
- {
- rStrName = rStrValue;
- bHasName = sal_True;
- }
- break;
- case XML_TOK_IMAGE_DISPLAY_NAME:
- {
- aDisplayName = rStrValue;
- }
- break;
- case XML_TOK_IMAGE_URL:
- {
- aStrURL = rImport.ResolveGraphicObjectURL( rStrValue, sal_False );
- bHasHRef = sal_True;
- }
- break;
- case XML_TOK_IMAGE_TYPE:
- // ignore
- break;
- case XML_TOK_IMAGE_SHOW:
- // ignore
- break;
- case XML_TOK_IMAGE_ACTUATE:
- // ignore
- break;
- default:
- DBG_WARNING( "Unknown token at import fill bitmap style" )
- ;
- }
- }
-
- rValue <<= aStrURL;
-
- if( aDisplayName.getLength() )
- {
- rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_FILL_IMAGE_ID,
- rStrName, aDisplayName );
- rStrName = aDisplayName;
- }
-
- bRet = bHasName && bHasHRef;
-
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/MarkerStyle.cxx b/xmloff/source/style/MarkerStyle.cxx
deleted file mode 100644
index bca89b8310..0000000000
--- a/xmloff/source/style/MarkerStyle.cxx
+++ /dev/null
@@ -1,285 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "xmloff/MarkerStyle.hxx"
-#include "xexptran.hxx"
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-
-//-------------------------------------------------------------
-// Import
-//-------------------------------------------------------------
-
-XMLMarkerStyleImport::XMLMarkerStyleImport( SvXMLImport& rImp )
- : rImport( rImp )
-{
-}
-
-XMLMarkerStyleImport::~XMLMarkerStyleImport()
-{
-}
-
-sal_Bool XMLMarkerStyleImport::importXML(
- const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- uno::Any& rValue,
- OUString& rStrName )
-{
- sal_Bool bHasViewBox = sal_False;
- sal_Bool bHasPathData = sal_False;
- OUString aDisplayName;
-
- SdXMLImExViewBox* pViewBox = NULL;
-
- SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap();
- SvXMLUnitConverter& rUnitConverter = rImport.GetMM100UnitConverter();
-
- OUString strPathData;
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i = 0; i < nAttrCount; i++ )
- {
- OUString aStrFullAttrName = xAttrList->getNameByIndex( i );
- OUString aStrAttrName;
- rNamespaceMap.GetKeyByAttrName( aStrFullAttrName, &aStrAttrName );
- OUString aStrValue = xAttrList->getValueByIndex( i );
-
- if( IsXMLToken( aStrAttrName, XML_NAME ) )
- {
- rStrName = aStrValue;
- }
- else if( IsXMLToken( aStrAttrName, XML_DISPLAY_NAME ) )
- {
- aDisplayName = aStrValue;
- }
- else if( IsXMLToken( aStrAttrName, XML_VIEWBOX ) )
- {
- pViewBox = new SdXMLImExViewBox( aStrValue, rUnitConverter );
- bHasViewBox = sal_True;
-
- }
- else if( IsXMLToken( aStrAttrName, XML_D ) )
- {
- strPathData = aStrValue;
- bHasPathData = sal_True;
- }
- }
-
- if( bHasViewBox && bHasPathData )
- {
- SdXMLImExSvgDElement aPoints(strPathData, *pViewBox, awt::Point( 0, 0 ),
- awt::Size( pViewBox->GetWidth(), pViewBox->GetHeight() ),
- rUnitConverter );
-
- if(aPoints.IsCurve())
- {
- drawing::PolyPolygonBezierCoords aSourcePolyPolygon(
- aPoints.GetPointSequenceSequence(),
- aPoints.GetFlagSequenceSequence());
- rValue <<= aSourcePolyPolygon;
- }
- else
- {
- drawing::PolyPolygonBezierCoords aSourcePolyPolygon;
- aSourcePolyPolygon.Coordinates = aPoints.GetPointSequenceSequence();
- aSourcePolyPolygon.Flags.realloc(aSourcePolyPolygon.Coordinates.getLength());
-
- // Zeiger auf innere sequences holen
- const drawing::PointSequence* pInnerSequence = aSourcePolyPolygon.Coordinates.getConstArray();
- drawing::FlagSequence* pInnerSequenceFlags = aSourcePolyPolygon.Flags.getArray();
-
- for(sal_Int32 a(0); a < aSourcePolyPolygon.Coordinates.getLength(); a++)
- {
- pInnerSequenceFlags->realloc(pInnerSequence->getLength());
- drawing::PolygonFlags* pPolyFlags = pInnerSequenceFlags->getArray();
-
- for(sal_Int32 b(0); b < pInnerSequence->getLength(); b++)
- *pPolyFlags++ = drawing::PolygonFlags_NORMAL;
-
- // next run
- pInnerSequence++;
- pInnerSequenceFlags++;
- }
-
- rValue <<= aSourcePolyPolygon;
- }
-
- if( aDisplayName.getLength() )
- {
- rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_MARKER_ID, rStrName,
- aDisplayName );
- rStrName = aDisplayName;
- }
-
- }
-
- if( pViewBox )
- delete pViewBox;
-
- return bHasViewBox && bHasPathData;
-}
-
-
-//-------------------------------------------------------------
-// Export
-//-------------------------------------------------------------
-
-XMLMarkerStyleExport::XMLMarkerStyleExport( SvXMLExport& rExp )
- : rExport( rExp )
-{
-}
-
-XMLMarkerStyleExport::~XMLMarkerStyleExport()
-{
-}
-
-sal_Bool XMLMarkerStyleExport::exportXML(
- const OUString& rStrName,
- const uno::Any& rValue )
-{
- sal_Bool bRet(sal_False);
-
- if(rStrName.getLength())
- {
- drawing::PolyPolygonBezierCoords aBezier;
-
- if(rValue >>= aBezier)
- {
- OUString aStrValue;
- OUStringBuffer aOut;
-
- /////////////////
- // Name
- sal_Bool bEncoded = sal_False;
- OUString aStrName( rStrName );
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME,
- rExport.EncodeStyleName( aStrName,
- &bEncoded ) );
- if( bEncoded )
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISPLAY_NAME,
- aStrName );
-
- /////////////////
- // Viewbox (viewBox="0 0 1500 1000")
- sal_Int32 nMinX(0x7fffffff);
- sal_Int32 nMaxX(0x80000000);
- sal_Int32 nMinY(0x7fffffff);
- sal_Int32 nMaxY(0x80000000);
- sal_Int32 nOuterCnt(aBezier.Coordinates.getLength());
- drawing::PointSequence* pOuterSequence = aBezier.Coordinates.getArray();
- sal_Int32 a, b;
- sal_Bool bClosed(sal_False);
-
- for (a = 0; a < nOuterCnt; a++)
- {
- drawing::PointSequence* pSequence = pOuterSequence++;
- const awt::Point *pPoints = pSequence->getConstArray();
- sal_Int32 nPointCount(pSequence->getLength());
-
- if(nPointCount)
- {
- const awt::Point aStart = pPoints[0];
- const awt::Point aEnd = pPoints[nPointCount - 1];
-
- if(aStart.X == aEnd.X && aStart.Y == aEnd.Y)
- {
- bClosed = sal_True;
- }
- }
-
- for (b = 0; b < nPointCount; b++)
- {
- const awt::Point aPoint = pPoints[b];
-
- if( aPoint.X < nMinX )
- nMinX = aPoint.X;
-
- if( aPoint.X > nMaxX )
- nMaxX = aPoint.X;
-
- if( aPoint.Y < nMinY )
- nMinY = aPoint.Y;
-
- if( aPoint.Y > nMaxY )
- nMaxY = aPoint.Y;
- }
- }
-
- sal_Int32 nDifX(nMaxX - nMinX);
- sal_Int32 nDifY(nMaxY - nMinY);
-
- SdXMLImExViewBox aViewBox( 0, 0, nDifX, nDifY );
- rExport.AddAttribute( XML_NAMESPACE_SVG, XML_VIEWBOX, aViewBox.GetExportString() );
-
- /////////////////
- // Pathdata
- pOuterSequence = aBezier.Coordinates.getArray();
- drawing::FlagSequence* pOuterFlags = aBezier.Flags.getArray();
- SdXMLImExSvgDElement aSvgDElement(aViewBox);
-
- for (a = 0; a < nOuterCnt; a++)
- {
- drawing::PointSequence* pSequence = pOuterSequence++;
- drawing::FlagSequence* pFlags = pOuterFlags++;
-
- aSvgDElement.AddPolygon(pSequence, pFlags,
- awt::Point( 0, 0 ),
- awt::Size( aViewBox.GetWidth(), aViewBox.GetHeight() ),
- bClosed);
- }
-
- // write point array
- rExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aSvgDElement.GetExportString());
-
- /////////////////
- // Do Write
- SvXMLElementExport rElem( rExport, XML_NAMESPACE_DRAW, XML_MARKER,
- sal_True, sal_False );
- }
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/MultiPropertySetHelper.cxx b/xmloff/source/style/MultiPropertySetHelper.cxx
deleted file mode 100644
index 4c0ae5abf3..0000000000
--- a/xmloff/source/style/MultiPropertySetHelper.cxx
+++ /dev/null
@@ -1,217 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include "MultiPropertySetHelper.hxx"
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XMultiPropertySet.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <comphelper/stl_types.hxx>
-
-// STL includes
-#include <algorithm>
-
-
-using ::com::sun::star::beans::XMultiPropertySet;
-using ::com::sun::star::beans::XPropertySet;
-using ::com::sun::star::beans::XPropertySetInfo;
-using ::com::sun::star::lang::XServiceInfo;
-using ::com::sun::star::uno::Any;
-using ::com::sun::star::uno::Reference;
-using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::uno::UNO_QUERY;
-using ::comphelper::UStringLess;
-using ::rtl::OUString;
-using ::std::sort;
-
-
-MultiPropertySetHelper::MultiPropertySetHelper(
- const sal_Char** pNames ) :
- pPropertyNames( NULL ),
- nLength( 0 ),
- aPropertySequence(),
- pSequenceIndex( NULL ),
- aValues(),
- pValues( NULL )
-{
- // first count the elements
- for( const sal_Char** pPtr = pNames; *pPtr != NULL; pPtr++ )
- nLength++;
-
- // allocate array and create strings
- pPropertyNames = new OUString[nLength];
- for( sal_Int16 i = 0; i < nLength; i++ )
- pPropertyNames[i] = OUString::createFromAscii( pNames[i] );
-}
-
-MultiPropertySetHelper::MultiPropertySetHelper(
- const OUString* pNames ) :
- pPropertyNames( NULL ),
- nLength( 0 ),
- aPropertySequence(),
- pSequenceIndex( NULL ),
- aValues(),
- pValues( NULL )
-{
- // count elements
- for( const OUString* pPtr = pNames; pPtr != NULL; pPtr++ )
- nLength++;
-
- // allocate array and assign strings
- pPropertyNames = new OUString[nLength];
- for( sal_Int16 i = 0; i < nLength; i++ )
- pPropertyNames[i] = pNames[i];
-}
-
-
-MultiPropertySetHelper::~MultiPropertySetHelper()
-{
- pValues = NULL; // memory 'owned' by aValues
-
- delete[] pSequenceIndex;
- delete[] pPropertyNames;
-}
-
-
-
-void MultiPropertySetHelper::hasProperties(
- const Reference<XPropertySetInfo> & rInfo )
-{
- DBG_ASSERT( rInfo.is(), "I'd really like an XPropertySetInfo here." );
-
- // allocate sequence index
- if ( NULL == pSequenceIndex )
- pSequenceIndex = new sal_Int16[nLength] ;
-
- // construct pSequenceIndex
- sal_Int16 nNumberOfProperties = 0;
- sal_Int16 i;
-
- for( i = 0; i < nLength; i++ )
- {
- // ask for property
- sal_Bool bHasProperty =
- rInfo->hasPropertyByName( pPropertyNames[i] );
-
- // set index and increment (if appropriate)
- pSequenceIndex[i]= bHasProperty ? nNumberOfProperties : -1;
- if ( bHasProperty )
- nNumberOfProperties++;
- }
-
- // construct property sequence from index array
- if ( aPropertySequence.getLength() != nNumberOfProperties )
- aPropertySequence.realloc( nNumberOfProperties );
- OUString* pPropertySequence = aPropertySequence.getArray();
- for( i = 0; i < nLength; i ++ )
- {
- sal_Int16 nIndex = pSequenceIndex[i];
- if ( nIndex != -1 )
- pPropertySequence[nIndex] = pPropertyNames[i];
- }
-}
-
-sal_Bool MultiPropertySetHelper::checkedProperties()
-{
- return (NULL != pSequenceIndex);
-}
-
-
-
-void MultiPropertySetHelper::getValues(
- const Reference<XMultiPropertySet> & rMultiPropertySet )
-{
- DBG_ASSERT( rMultiPropertySet.is(), "We need an XMultiPropertySet." );
-
- aValues = rMultiPropertySet->getPropertyValues( aPropertySequence );
- pValues = aValues.getConstArray();
-}
-
-void MultiPropertySetHelper::getValues(
- const Reference<XPropertySet> & rPropertySet )
-{
- DBG_ASSERT( rPropertySet.is(), "We need an XPropertySet." );
-
- // re-alloc aValues (if necessary) and fill with values from XPropertySet
- sal_Int16 nSupportedPropertiesCount =
- (sal_Int16)aPropertySequence.getLength();
- if ( aValues.getLength() != nSupportedPropertiesCount )
- aValues.realloc( nSupportedPropertiesCount );
- Any* pMutableArray = aValues.getArray();
- for( sal_Int16 i = 0; i < nSupportedPropertiesCount; i++ )
- {
- pMutableArray[i] = rPropertySet->getPropertyValue(
- pPropertyNames[ pSequenceIndex[ i ] ] );
- }
-
- // re-establish pValues pointer
- pValues = aValues.getConstArray();
-}
-
-
-const Any& MultiPropertySetHelper::getValue( sal_Int16 nIndex,
- const Reference< XPropertySet> & rPropSet,
- sal_Bool bTryMulti )
-{
- if( !pValues )
- {
- if( bTryMulti )
- {
- Reference < XMultiPropertySet > xMultiPropSet( rPropSet,
- UNO_QUERY );
- if( xMultiPropSet.is() )
- getValues( xMultiPropSet );
- else
- getValues( rPropSet );
- }
- else
- {
- getValues( rPropSet );
- }
- }
-
- return getValue( nIndex );
-}
-
-const Any& MultiPropertySetHelper::getValue( sal_Int16 nIndex,
- const Reference< XMultiPropertySet> & rMultiPropSet )
-{
- if( !pValues )
- getValues( rMultiPropSet );
-
- return getValue( nIndex );
-}
-
-// inline methods defined in header:
-// inline Any& MultiPropertySetHelper::getValue( sal_Int16 nIndex )
-// inline sal_Bool MultiPropertySetHelper::hasProperty( sal_Int16 nValueNo )
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/NamedBoolPropertyHdl.cxx b/xmloff/source/style/NamedBoolPropertyHdl.cxx
deleted file mode 100644
index 0af524e957..0000000000
--- a/xmloff/source/style/NamedBoolPropertyHdl.cxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/NamedBoolPropertyHdl.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <comphelper/extract.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLNamedBoolPropertyHdl
-//
-
-XMLNamedBoolPropertyHdl::~XMLNamedBoolPropertyHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLNamedBoolPropertyHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- if( rStrImpValue == maTrueStr )
- {
- rValue = ::cppu::bool2any( sal_True );
- return sal_True;
- }
-
- if( rStrImpValue == maFalseStr )
- {
- rValue = ::cppu::bool2any( sal_False );
- return sal_True;
- }
-
- return sal_False;
-}
-
-sal_Bool XMLNamedBoolPropertyHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- if( ::cppu::any2bool( rValue ) )
- {
- rStrExpValue = maTrueStr;
- }
- else
- {
- rStrExpValue = maFalseStr;
- }
-
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageHeaderFooterContext.cxx b/xmloff/source/style/PageHeaderFooterContext.cxx
deleted file mode 100644
index be6df728c9..0000000000
--- a/xmloff/source/style/PageHeaderFooterContext.cxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-
-
-// INCLUDE ---------------------------------------------------------------
-
-#include "PageHeaderFooterContext.hxx"
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include "PagePropertySetContext.hxx"
-
-using namespace com::sun::star;
-using ::xmloff::token::IsXMLToken;
-using ::xmloff::token::XML_HEADER_FOOTER_PROPERTIES;
-
-//------------------------------------------------------------------
-
-PageHeaderFooterContext::PageHeaderFooterContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>&,
- ::std::vector< XMLPropertyState > & rTempProperties,
- const UniReference < SvXMLImportPropertyMapper > &rTempMap,
- sal_Int32 nStart, sal_Int32 nEnd,
- const sal_Bool bTempHeader ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rProperties(rTempProperties),
- nStartIndex(nStart),
- nEndIndex(nEnd),
- rMap(rTempMap)
-{
- bHeader = bTempHeader;
-}
-
-PageHeaderFooterContext::~PageHeaderFooterContext()
-{
-}
-
-SvXMLImportContext *PageHeaderFooterContext::CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList )
-{
- SvXMLImportContext *pContext = 0;
-
- if( XML_NAMESPACE_STYLE == nPrefix && IsXMLToken( rLName, XML_HEADER_FOOTER_PROPERTIES ) )
- {
- PageContextType aType = Header;
- if (!bHeader)
- aType = Footer;
- pContext = new PagePropertySetContext( GetImport(), nPrefix,
- rLName, xAttrList,
- XML_TYPE_PROP_HEADER_FOOTER,
- rProperties,
- rMap, nStartIndex, nEndIndex, aType);
- }
-
-
- if( !pContext )
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName );
-
- return pContext;
-}
-
-void PageHeaderFooterContext::EndElement()
-{
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageHeaderFooterContext.hxx b/xmloff/source/style/PageHeaderFooterContext.hxx
deleted file mode 100644
index 4340591205..0000000000
--- a/xmloff/source/style/PageHeaderFooterContext.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _XMLOFF_PAGEHEADERFOOTERCONTEXT_HXX
-#define _XMLOFF_PAGEHEADERFOOTERCONTEXT_HXX
-
-#include <xmloff/xmlimp.hxx>
-
-class PageHeaderFooterContext : public SvXMLImportContext
-{
- ::std::vector< XMLPropertyState > & rProperties;
- sal_Int32 nStartIndex;
- sal_Int32 nEndIndex;
- sal_Bool bHeader;
- const UniReference < SvXMLImportPropertyMapper > rMap;
-
-public:
-
- PageHeaderFooterContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList,
- ::std::vector< XMLPropertyState > & rProperties,
- const UniReference < SvXMLImportPropertyMapper > &rMap,
- sal_Int32 nStartIndex, sal_Int32 nEndIndex,
- const sal_Bool bHeader);
-
- virtual ~PageHeaderFooterContext();
-
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
-
- virtual void EndElement();
-};
-
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterExportPropMapper.cxx b/xmloff/source/style/PageMasterExportPropMapper.cxx
deleted file mode 100644
index fa4442a8f6..0000000000
--- a/xmloff/source/style/PageMasterExportPropMapper.cxx
+++ /dev/null
@@ -1,488 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "PageMasterExportPropMapper.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <comphelper/types.hxx>
-#include <com/sun/star/table/BorderLine2.hpp>
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <tools/debug.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <comphelper/extract.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::comphelper;
-using namespace ::xmloff::token;
-
-
-//______________________________________________________________________________
-
-inline sal_Bool lcl_HasSameLineWidth( const table::BorderLine2& rLine1, const table::BorderLine2& rLine2 )
-{
- return (rLine1.InnerLineWidth == rLine2.InnerLineWidth) &&
- (rLine1.OuterLineWidth == rLine2.OuterLineWidth) &&
- (rLine1.LineDistance == rLine2.LineDistance) &&
- (rLine1.LineWidth == rLine2.LineWidth);
-}
-
-inline sal_Bool operator==( const table::BorderLine2& rLine1, const table::BorderLine2& rLine2 )
-{
- return (rLine1.Color == rLine2.Color) &&
- lcl_HasSameLineWidth( rLine1, rLine2 ) &&
- ( rLine1.LineStyle == rLine2.LineStyle );
-}
-
-inline void lcl_RemoveState( XMLPropertyState* pState )
-{
- pState->mnIndex = -1;
- pState->maValue.clear();
-}
-
-void lcl_RemoveStateIfZero16( XMLPropertyState* pState )
-{
- sal_Int16 nValue = sal_Int16();
- if( (pState->maValue >>= nValue) && !nValue )
- lcl_RemoveState( pState );
-}
-
-void lcl_AddState(::std::vector< XMLPropertyState >& rPropState, sal_Int32 nIndex, const rtl::OUString& rProperty, uno::Reference< beans::XPropertySet >& xProps)
-{
- if(::cppu::any2bool(xProps->getPropertyValue(rProperty)))
- rPropState.push_back(XMLPropertyState (nIndex, cppu::bool2any(sal_True)));
-}
-
-//______________________________________________________________________________
-// helper struct to handle equal XMLPropertyState's for page, header and footer
-
-struct XMLPropertyStateBuffer
-{
- XMLPropertyState* pPMMarginAll;
- XMLPropertyState* pPMMarginTop;
- XMLPropertyState* pPMMarginBottom;
- XMLPropertyState* pPMMarginLeft;
- XMLPropertyState* pPMMarginRight;
-
- XMLPropertyState* pPMBorderAll;
- XMLPropertyState* pPMBorderTop;
- XMLPropertyState* pPMBorderBottom;
- XMLPropertyState* pPMBorderLeft;
- XMLPropertyState* pPMBorderRight;
-
- XMLPropertyState* pPMBorderWidthAll;
- XMLPropertyState* pPMBorderWidthTop;
- XMLPropertyState* pPMBorderWidthBottom;
- XMLPropertyState* pPMBorderWidthLeft;
- XMLPropertyState* pPMBorderWidthRight;
-
- XMLPropertyState* pPMPaddingAll;
- XMLPropertyState* pPMPaddingTop;
- XMLPropertyState* pPMPaddingBottom;
- XMLPropertyState* pPMPaddingLeft;
- XMLPropertyState* pPMPaddingRight;
-
- XMLPropertyStateBuffer();
- void ContextFilter( ::std::vector< XMLPropertyState >& rPropState );
-};
-
-XMLPropertyStateBuffer::XMLPropertyStateBuffer()
- : pPMMarginAll( NULL )
- , pPMMarginTop( NULL )
- , pPMMarginBottom( NULL )
- , pPMMarginLeft( NULL )
- , pPMMarginRight( NULL )
- ,
- pPMBorderAll( NULL ),
- pPMBorderTop( NULL ),
- pPMBorderBottom( NULL ),
- pPMBorderLeft( NULL ),
- pPMBorderRight( NULL ),
-
- pPMBorderWidthAll( NULL ),
- pPMBorderWidthTop( NULL ),
- pPMBorderWidthBottom( NULL ),
- pPMBorderWidthLeft( NULL ),
- pPMBorderWidthRight( NULL ),
-
- pPMPaddingAll( NULL ),
- pPMPaddingTop( NULL ),
- pPMPaddingBottom( NULL ),
- pPMPaddingLeft( NULL ),
- pPMPaddingRight( NULL )
-{
-}
-
-void XMLPropertyStateBuffer::ContextFilter( ::std::vector< XMLPropertyState >& )
-{
- if (pPMMarginAll)
- {
- if (pPMMarginTop && pPMMarginBottom && pPMMarginLeft && pPMMarginRight)
- {
- sal_Int32 nTop = 0, nBottom = 0, nLeft = 0, nRight = 0;
-
- pPMMarginTop->maValue >>= nTop;
- pPMMarginBottom->maValue >>= nBottom;
- pPMMarginLeft->maValue >>= nLeft;
- pPMMarginRight->maValue >>= nRight;
-
- if ((nTop == nBottom) && (nBottom == nLeft) && (nLeft == nRight))
- {
- lcl_RemoveState( pPMMarginTop );
- lcl_RemoveState( pPMMarginBottom );
- lcl_RemoveState( pPMMarginLeft );
- lcl_RemoveState( pPMMarginRight );
- }
- else
- lcl_RemoveState( pPMMarginAll );
- }
- else
- lcl_RemoveState( pPMMarginAll );
- }
-
- if( pPMBorderAll )
- {
- if( pPMBorderTop && pPMBorderBottom && pPMBorderLeft && pPMBorderRight )
- {
- table::BorderLine2 aLineTop, aLineBottom, aLineLeft, aLineRight;
-
- pPMBorderTop->maValue >>= aLineTop;
- pPMBorderBottom->maValue >>= aLineBottom;
- pPMBorderLeft->maValue >>= aLineLeft;
- pPMBorderRight->maValue >>= aLineRight;
-
- if( (aLineTop == aLineBottom) && (aLineBottom == aLineLeft) && (aLineLeft == aLineRight) )
- {
- lcl_RemoveState( pPMBorderTop );
- lcl_RemoveState( pPMBorderBottom );
- lcl_RemoveState( pPMBorderLeft );
- lcl_RemoveState( pPMBorderRight );
- }
- else
- lcl_RemoveState( pPMBorderAll );
- }
- else
- lcl_RemoveState( pPMBorderAll );
- }
-
- if( pPMBorderWidthAll )
- {
- if( pPMBorderWidthTop && pPMBorderWidthBottom && pPMBorderWidthLeft && pPMBorderWidthRight )
- {
- table::BorderLine2 aLineTop, aLineBottom, aLineLeft, aLineRight;
-
- pPMBorderWidthTop->maValue >>= aLineTop;
- pPMBorderWidthBottom->maValue >>= aLineBottom;
- pPMBorderWidthLeft->maValue >>= aLineLeft;
- pPMBorderWidthRight->maValue >>= aLineRight;
-
- if( lcl_HasSameLineWidth( aLineTop, aLineBottom ) &&
- lcl_HasSameLineWidth( aLineBottom, aLineLeft ) &&
- lcl_HasSameLineWidth( aLineLeft, aLineRight ) )
- {
- lcl_RemoveState( pPMBorderWidthTop );
- lcl_RemoveState( pPMBorderWidthBottom );
- lcl_RemoveState( pPMBorderWidthLeft );
- lcl_RemoveState( pPMBorderWidthRight );
- }
- else
- lcl_RemoveState( pPMBorderWidthAll );
- }
- else
- lcl_RemoveState( pPMBorderWidthAll );
- }
-
- if( pPMPaddingAll )
- {
- if( pPMPaddingTop && pPMPaddingBottom && pPMPaddingLeft && pPMPaddingRight )
- {
- sal_Int32 nTop = 0, nBottom = 0, nLeft = 0, nRight = 0;
-
- pPMPaddingTop->maValue >>= nTop;
- pPMPaddingBottom->maValue >>= nBottom;
- pPMPaddingLeft->maValue >>= nLeft;
- pPMPaddingRight->maValue >>= nRight;
-
- if( (nTop == nBottom) && (nBottom == nLeft) && (nLeft == nRight) )
- {
- lcl_RemoveState( pPMPaddingTop );
- lcl_RemoveState( pPMPaddingBottom );
- lcl_RemoveState( pPMPaddingLeft );
- lcl_RemoveState( pPMPaddingRight );
- }
- else
- lcl_RemoveState( pPMPaddingAll );
- }
- else
- lcl_RemoveState( pPMPaddingAll );
- }
-}
-
-//______________________________________________________________________________
-
-XMLPageMasterExportPropMapper::XMLPageMasterExportPropMapper(
- const UniReference< XMLPropertySetMapper >& rMapper,
- SvXMLExport& rExport ) :
- SvXMLExportPropertyMapper( rMapper ),
- aBackgroundImageExport( rExport ),
- aTextColumnsExport( rExport ),
- aFootnoteSeparatorExport( rExport )
-{
-}
-
-XMLPageMasterExportPropMapper::~XMLPageMasterExportPropMapper()
-{
-}
-
-void XMLPageMasterExportPropMapper::handleElementItem(
- SvXMLExport&,
- const XMLPropertyState& rProperty,
- sal_uInt16 /*nFlags*/,
- const ::std::vector< XMLPropertyState >* pProperties,
- sal_uInt32 nIdx ) const
-{
- XMLPageMasterExportPropMapper* pThis = (XMLPageMasterExportPropMapper*) this;
-
- sal_uInt32 nContextId = getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex );
- switch( nContextId )
- {
- case CTF_PM_GRAPHICURL:
- case CTF_PM_HEADERGRAPHICURL:
- case CTF_PM_FOOTERGRAPHICURL:
- {
- DBG_ASSERT( pProperties && (nIdx >= 2), "property vector missing" );
- sal_Int32 nPos;
- sal_Int32 nFilter;
- switch( nContextId )
- {
- case CTF_PM_GRAPHICURL:
- nPos = CTF_PM_GRAPHICPOSITION;
- nFilter = CTF_PM_GRAPHICFILTER;
- break;
- case CTF_PM_HEADERGRAPHICURL:
- nPos = CTF_PM_HEADERGRAPHICPOSITION;
- nFilter = CTF_PM_HEADERGRAPHICFILTER;
- break;
- case CTF_PM_FOOTERGRAPHICURL:
- nPos = CTF_PM_FOOTERGRAPHICPOSITION;
- nFilter = CTF_PM_FOOTERGRAPHICFILTER;
- break;
- default:
- nPos = 0; // TODO What values should this be?
- nFilter = 0;
- }
- const Any* pPos = NULL;
- const Any* pFilter = NULL;
- if( pProperties && (nIdx >= 2) )
- {
- const XMLPropertyState& rPos = (*pProperties)[nIdx - 2];
- DBG_ASSERT( getPropertySetMapper()->GetEntryContextId( rPos.mnIndex ) == nPos,
- "invalid property map: pos expected" );
- if( getPropertySetMapper()->GetEntryContextId( rPos.mnIndex ) == nPos )
- pPos = &rPos.maValue;
-
- const XMLPropertyState& rFilter = (*pProperties)[nIdx - 1];
- DBG_ASSERT( getPropertySetMapper()->GetEntryContextId( rFilter.mnIndex ) == nFilter,
- "invalid property map: filter expected" );
- if( getPropertySetMapper()->GetEntryContextId( rFilter.mnIndex ) == nFilter )
- pFilter = &rFilter.maValue;
- }
- sal_uInt32 nPropIndex = rProperty.mnIndex;
- pThis->aBackgroundImageExport.exportXML( rProperty.maValue, pPos, pFilter, NULL,
- getPropertySetMapper()->GetEntryNameSpace( nPropIndex ),
- getPropertySetMapper()->GetEntryXMLName( nPropIndex ) );
- }
- break;
- case CTF_PM_TEXTCOLUMNS:
- pThis->aTextColumnsExport.exportXML( rProperty.maValue );
- break;
- case CTF_PM_FTN_LINE_WEIGTH:
- pThis->aFootnoteSeparatorExport.exportXML( pProperties, nIdx,
- getPropertySetMapper());
- break;
- }
-}
-
-void XMLPageMasterExportPropMapper::handleSpecialItem(
- SvXMLAttributeList&,
- const XMLPropertyState&,
- const SvXMLUnitConverter&,
- const SvXMLNamespaceMap&,
- const ::std::vector< XMLPropertyState >*,
- sal_uInt32 /*nIdx*/) const
-{
-}
-
-void XMLPageMasterExportPropMapper::ContextFilter(
- ::std::vector< XMLPropertyState >& rPropState,
- Reference< XPropertySet > rPropSet ) const
-{
- XMLPropertyStateBuffer aPageBuffer;
- XMLPropertyStateBuffer aHeaderBuffer;
- XMLPropertyStateBuffer aFooterBuffer;
-
- XMLPropertyState* pPMHeaderHeight = NULL;
- XMLPropertyState* pPMHeaderMinHeight = NULL;
- XMLPropertyState* pPMHeaderDynamic = NULL;
-
- XMLPropertyState* pPMFooterHeight = NULL;
- XMLPropertyState* pPMFooterMinHeight = NULL;
- XMLPropertyState* pPMFooterDynamic = NULL;
-
- XMLPropertyState* pPMScaleTo = NULL;
- XMLPropertyState* pPMScaleToPages = NULL;
- XMLPropertyState* pPMScaleToX = NULL;
- XMLPropertyState* pPMScaleToY = NULL;
- XMLPropertyState* pPMStandardMode = NULL;
- XMLPropertyState* pPMGridBaseWidth = NULL;
- XMLPropertyState* pPMGridSnapToChars = NULL;
-
- XMLPropertyState* pPrint = NULL;
-
- UniReference < XMLPropertySetMapper > aPropMapper(getPropertySetMapper());
-
- for( ::std::vector< XMLPropertyState >::iterator aIter = rPropState.begin(); aIter != rPropState.end(); ++aIter )
- {
- XMLPropertyState *pProp = &(*aIter);
- sal_Int16 nContextId = aPropMapper->GetEntryContextId( pProp->mnIndex );
- sal_Int16 nFlag = nContextId & CTF_PM_FLAGMASK;
- sal_Int16 nSimpleId = nContextId & (~CTF_PM_FLAGMASK | XML_PM_CTF_START);
- sal_Int16 nPrintId = nContextId & CTF_PM_PRINTMASK;
-
- XMLPropertyStateBuffer* pBuffer;
- switch( nFlag )
- {
- case CTF_PM_HEADERFLAG: pBuffer = &aHeaderBuffer; break;
- case CTF_PM_FOOTERFLAG: pBuffer = &aFooterBuffer; break;
- default: pBuffer = &aPageBuffer; break;
- }
-
- switch( nSimpleId )
- {
- case CTF_PM_MARGINALL: pBuffer->pPMMarginAll = pProp; break;
- case CTF_PM_MARGINTOP: pBuffer->pPMMarginTop = pProp; break;
- case CTF_PM_MARGINBOTTOM: pBuffer->pPMMarginBottom = pProp; break;
- case CTF_PM_MARGINLEFT: pBuffer->pPMMarginLeft = pProp; break;
- case CTF_PM_MARGINRIGHT: pBuffer->pPMMarginRight = pProp; break;
- case CTF_PM_BORDERALL: pBuffer->pPMBorderAll = pProp; break;
- case CTF_PM_BORDERTOP: pBuffer->pPMBorderTop = pProp; break;
- case CTF_PM_BORDERBOTTOM: pBuffer->pPMBorderBottom = pProp; break;
- case CTF_PM_BORDERLEFT: pBuffer->pPMBorderLeft = pProp; break;
- case CTF_PM_BORDERRIGHT: pBuffer->pPMBorderRight = pProp; break;
- case CTF_PM_BORDERWIDTHALL: pBuffer->pPMBorderWidthAll = pProp; break;
- case CTF_PM_BORDERWIDTHTOP: pBuffer->pPMBorderWidthTop = pProp; break;
- case CTF_PM_BORDERWIDTHBOTTOM: pBuffer->pPMBorderWidthBottom = pProp; break;
- case CTF_PM_BORDERWIDTHLEFT: pBuffer->pPMBorderWidthLeft = pProp; break;
- case CTF_PM_BORDERWIDTHRIGHT: pBuffer->pPMBorderWidthRight = pProp; break;
- case CTF_PM_PADDINGALL: pBuffer->pPMPaddingAll = pProp; break;
- case CTF_PM_PADDINGTOP: pBuffer->pPMPaddingTop = pProp; break;
- case CTF_PM_PADDINGBOTTOM: pBuffer->pPMPaddingBottom = pProp; break;
- case CTF_PM_PADDINGLEFT: pBuffer->pPMPaddingLeft = pProp; break;
- case CTF_PM_PADDINGRIGHT: pBuffer->pPMPaddingRight = pProp; break;
- }
-
- switch( nContextId )
- {
- case CTF_PM_HEADERHEIGHT: pPMHeaderHeight = pProp; break;
- case CTF_PM_HEADERMINHEIGHT: pPMHeaderMinHeight = pProp; break;
- case CTF_PM_HEADERDYNAMIC: pPMHeaderDynamic = pProp; break;
- case CTF_PM_FOOTERHEIGHT: pPMFooterHeight = pProp; break;
- case CTF_PM_FOOTERMINHEIGHT: pPMFooterMinHeight = pProp; break;
- case CTF_PM_FOOTERDYNAMIC: pPMFooterDynamic = pProp; break;
- case CTF_PM_SCALETO: pPMScaleTo = pProp; break;
- case CTF_PM_SCALETOPAGES: pPMScaleToPages = pProp; break;
- case CTF_PM_SCALETOX: pPMScaleToX = pProp; break;
- case CTF_PM_SCALETOY: pPMScaleToY = pProp; break;
- case CTF_PM_STANDARD_MODE: pPMStandardMode = pProp; break;
- case CTP_PM_GRID_BASE_WIDTH: pPMGridBaseWidth = pProp; break;
- case CTP_PM_GRID_SNAP_TO_CHARS: pPMGridSnapToChars = pProp; break;
- }
- if (nPrintId == CTF_PM_PRINTMASK)
- {
- pPrint = pProp;
- lcl_RemoveState(pPrint);
- }
- }
-
- if( pPMStandardMode && !getBOOL(pPMStandardMode->maValue) )
- {
- lcl_RemoveState(pPMStandardMode);
- if( pPMGridBaseWidth )
- lcl_RemoveState(pPMGridBaseWidth);
- if( pPMGridSnapToChars )
- lcl_RemoveState(pPMGridSnapToChars);
- }
-
- if( pPMGridBaseWidth && pPMStandardMode )
- lcl_RemoveState(pPMStandardMode);
-
- aPageBuffer.ContextFilter( rPropState );
- aHeaderBuffer.ContextFilter( rPropState );
- aFooterBuffer.ContextFilter( rPropState );
-
- if( pPMHeaderHeight && (!pPMHeaderDynamic || (pPMHeaderDynamic && getBOOL( pPMHeaderDynamic->maValue ))) )
- lcl_RemoveState( pPMHeaderHeight );
- if( pPMHeaderMinHeight && pPMHeaderDynamic && !getBOOL( pPMHeaderDynamic->maValue ) )
- lcl_RemoveState( pPMHeaderMinHeight );
- if( pPMHeaderDynamic )
- lcl_RemoveState( pPMHeaderDynamic );
-
- if( pPMFooterHeight && (!pPMFooterDynamic || (pPMFooterDynamic && getBOOL( pPMFooterDynamic->maValue ))) )
- lcl_RemoveState( pPMFooterHeight );
- if( pPMFooterMinHeight && pPMFooterDynamic && !getBOOL( pPMFooterDynamic->maValue ) )
- lcl_RemoveState( pPMFooterMinHeight );
- if( pPMFooterDynamic )
- lcl_RemoveState( pPMFooterDynamic );
-
- if( pPMScaleTo )
- lcl_RemoveStateIfZero16( pPMScaleTo );
- if( pPMScaleToPages )
- lcl_RemoveStateIfZero16( pPMScaleToPages );
- if( pPMScaleToX )
- lcl_RemoveStateIfZero16( pPMScaleToX );
- if( pPMScaleToY )
- lcl_RemoveStateIfZero16( pPMScaleToY );
-
- if (pPrint)
- {
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_ANNOTATIONS), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintAnnotations")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_CHARTS), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintCharts")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_DRAWING), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintDrawing")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_FORMULAS), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintFormulas")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_GRID), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintGrid")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_HEADERS), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintHeaders")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_OBJECTS), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintObjects")), rPropSet);
- lcl_AddState(rPropState, aPropMapper->FindEntryIndex(CTF_PM_PRINT_ZEROVALUES), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PrintZeroValues")), rPropSet);
- }
-
- SvXMLExportPropertyMapper::ContextFilter(rPropState,rPropSet);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterExportPropMapper.hxx b/xmloff/source/style/PageMasterExportPropMapper.hxx
deleted file mode 100644
index 5a90b9f872..0000000000
--- a/xmloff/source/style/PageMasterExportPropMapper.hxx
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PAGEMASTEREXPORTPROPMAPPER_HXX
-#define _XMLOFF_PAGEMASTEREXPORTPROPMAPPER_HXX
-
-#include <xmloff/xmlexppr.hxx>
-#include "XMLBackgroundImageExport.hxx"
-#include "XMLTextColumnsExport.hxx"
-#include "XMLFootnoteSeparatorExport.hxx"
-
-//______________________________________________________________________________
-
-class XMLPageMasterExportPropMapper : public SvXMLExportPropertyMapper
-{
-protected:
- XMLBackgroundImageExport aBackgroundImageExport;
- XMLTextColumnsExport aTextColumnsExport;
- XMLFootnoteSeparatorExport aFootnoteSeparatorExport;
-
- virtual void ContextFilter(
- ::std::vector< XMLPropertyState >& rProperties,
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rPropSet
- ) const;
-
-public:
- XMLPageMasterExportPropMapper(
- const UniReference< XMLPropertySetMapper >& rMapper,
- SvXMLExport& rExport
- );
- virtual ~XMLPageMasterExportPropMapper();
-
- virtual void handleElementItem(
- SvXMLExport& rExport,
- const XMLPropertyState& rProperty,
- sal_uInt16 nFlags,
- const ::std::vector< XMLPropertyState >* pProperties = 0,
- sal_uInt32 nIdx = 0
- ) const;
- virtual void handleSpecialItem(
- SvXMLAttributeList& rAttrList,
- const XMLPropertyState& rProperty,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- const ::std::vector< XMLPropertyState >* pProperties = 0,
- sal_uInt32 nIdx = 0
- ) const;
-
- inline XMLBackgroundImageExport& GetBackgroundImageExport()
- { return aBackgroundImageExport; }
-
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterImportContext.cxx b/xmloff/source/style/PageMasterImportContext.cxx
deleted file mode 100644
index ac412a997a..0000000000
--- a/xmloff/source/style/PageMasterImportContext.cxx
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include "PageMasterImportContext.hxx"
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include "PageMasterPropHdl.hxx"
-#include "PagePropertySetContext.hxx"
-#include "PageHeaderFooterContext.hxx"
-#include "PageMasterPropMapper.hxx"
-#include "PageMasterImportPropMapper.hxx"
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-
-void PageStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
- const rtl::OUString& rLocalName,
- const rtl::OUString& rValue )
-{
- // TODO: use a map here
- if( XML_NAMESPACE_STYLE == nPrefixKey && IsXMLToken( rLocalName, XML_PAGE_USAGE ) )
- {
- sPageUsage = rValue;
- }
- else
- {
- XMLPropStyleContext::SetAttribute( nPrefixKey, rLocalName, rValue );
- }
-}
-
-TYPEINIT1( PageStyleContext, XMLPropStyleContext );
-
-PageStyleContext::PageStyleContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList,
- SvXMLStylesContext& rStyles,
- sal_Bool bDefaultStyle) :
- XMLPropStyleContext( rImport, nPrfx, rLName, xAttrList, rStyles, XML_STYLE_FAMILY_PAGE_MASTER, bDefaultStyle),
- sPageUsage()
-{
-}
-
-PageStyleContext::~PageStyleContext()
-{
-}
-
-SvXMLImportContext *PageStyleContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = NULL;
-
- if( XML_NAMESPACE_STYLE == nPrefix &&
- ((IsXMLToken(rLocalName, XML_HEADER_STYLE )) ||
- (IsXMLToken(rLocalName, XML_FOOTER_STYLE )) ) )
- {
- sal_Bool bHeader = IsXMLToken(rLocalName, XML_HEADER_STYLE);
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- GetStyles()->GetImportPropertyMapper( GetFamily() );
- if( xImpPrMap.is() )
- {
- const UniReference< XMLPropertySetMapper >& rMapper = xImpPrMap->getPropertySetMapper();
- sal_Int32 nFlag;
- if (bHeader)
- nFlag = CTF_PM_HEADERFLAG;
- else
- nFlag = CTF_PM_FOOTERFLAG;
- sal_Int32 nStartIndex (-1);
- sal_Int32 nEndIndex (-1);
- sal_Bool bFirst(sal_False);
- sal_Bool bEnd(sal_False);
- sal_Int32 nIndex = 0;
- while ( nIndex < rMapper->GetEntryCount() && !bEnd)
- {
- if ((rMapper->GetEntryContextId( nIndex ) & CTF_PM_FLAGMASK) == nFlag)
- {
- if (!bFirst)
- {
- bFirst = sal_True;
- nStartIndex = nIndex;
- }
- }
- else if (bFirst)
- {
- bEnd = sal_True;
- nEndIndex = nIndex;
- }
- nIndex++;
- }
- if (!bEnd)
- nEndIndex = nIndex;
- pContext = new PageHeaderFooterContext(GetImport(), nPrefix, rLocalName,
- xAttrList, GetProperties(), xImpPrMap, nStartIndex, nEndIndex, bHeader);
- }
- }
- if( XML_NAMESPACE_STYLE == nPrefix &&
- IsXMLToken(rLocalName, XML_PAGE_LAYOUT_PROPERTIES) )
- {
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- GetStyles()->GetImportPropertyMapper( GetFamily() );
- if( xImpPrMap.is() )
- {
- const UniReference< XMLPropertySetMapper >& rMapper = xImpPrMap->getPropertySetMapper();
- sal_Int32 nEndIndex (-1);
- sal_Bool bEnd(sal_False);
- sal_Int32 nIndex = 0;
- sal_Int16 nContextID;
- while ( nIndex < rMapper->GetEntryCount() && !bEnd)
- {
- nContextID = rMapper->GetEntryContextId( nIndex );
- if (nContextID && ((nContextID & CTF_PM_FLAGMASK) != XML_PM_CTF_START))
- {
- nEndIndex = nIndex;
- bEnd = sal_True;
- }
- nIndex++;
- }
- if (!bEnd)
- nEndIndex = nIndex;
- PageContextType aType = Page;
- pContext = new PagePropertySetContext( GetImport(), nPrefix,
- rLocalName, xAttrList,
- XML_TYPE_PROP_PAGE_LAYOUT,
- GetProperties(),
- xImpPrMap, 0, nEndIndex, aType);
- }
- }
-
- if (!pContext)
- pContext = XMLPropStyleContext::CreateChildContext( nPrefix, rLocalName,
- xAttrList );
- return pContext;
-}
-
-void PageStyleContext::FillPropertySet(
- const uno::Reference<beans::XPropertySet > & rPropSet )
-{
- XMLPropStyleContext::FillPropertySet(rPropSet);
- if (sPageUsage.getLength())
- {
- uno::Any aPageUsage;
- XMLPMPropHdl_PageStyleLayout aPageUsageHdl;
- if (aPageUsageHdl.importXML(sPageUsage, aPageUsage, GetImport().GetMM100UnitConverter()))
- rPropSet->setPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PageStyleLayout")), aPageUsage);
- }
-}
-
-// text grid enhancement for better CJK support
-//set default page layout style
-void PageStyleContext::SetDefaults( )
-{
- Reference < XMultiServiceFactory > xFactory ( GetImport().GetModel(), UNO_QUERY);
- if (xFactory.is())
- {
- Reference < XInterface > xInt = xFactory->createInstance (
- rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.Defaults" ) ) );
- Reference < beans::XPropertySet > xProperties ( xInt, UNO_QUERY );
- if ( xProperties.is() )
- FillPropertySet ( xProperties );
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterImportPropMapper.cxx b/xmloff/source/style/PageMasterImportPropMapper.cxx
deleted file mode 100644
index 3785ea7fd6..0000000000
--- a/xmloff/source/style/PageMasterImportPropMapper.cxx
+++ /dev/null
@@ -1,409 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include "PageMasterImportPropMapper.hxx"
-#include "PageMasterPropMapper.hxx"
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <xmloff/maptype.hxx>
-#include <com/sun/star/table/BorderLine2.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <xmloff/xmlimp.hxx>
-
-#define XML_LINE_LEFT 0
-#define XML_LINE_RIGHT 1
-#define XML_LINE_TOP 2
-#define XML_LINE_BOTTOM 3
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
-
-PageMasterImportPropertyMapper::PageMasterImportPropertyMapper(
- const UniReference< XMLPropertySetMapper >& rMapper,
- SvXMLImport& rImp ) :
- SvXMLImportPropertyMapper( rMapper, rImp ),
- rImport( rImp )
-{
-}
-
-PageMasterImportPropertyMapper::~PageMasterImportPropertyMapper()
-{
-}
-
-bool PageMasterImportPropertyMapper::handleSpecialItem(
- XMLPropertyState& rProperty,
- ::std::vector< XMLPropertyState >& rProperties,
- const ::rtl::OUString& rValue,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nContextID =
- getPropertySetMapper()->GetEntryContextId(rProperty.mnIndex);
-
- if( CTF_PM_REGISTER_STYLE==nContextID )
- {
- ::rtl::OUString sDisplayName( rImport.GetStyleDisplayName(
- XML_STYLE_FAMILY_TEXT_PARAGRAPH, rValue ) );
- Reference < XNameContainer > xParaStyles =
- rImport.GetTextImport()->GetParaStyles();
- if( xParaStyles.is() && xParaStyles->hasByName( sDisplayName ) )
- {
- rProperty.maValue <<= sDisplayName;
- bRet = sal_True;
- }
- }
- else
- {
- bRet = SvXMLImportPropertyMapper::handleSpecialItem(
- rProperty, rProperties, rValue,
- rUnitConverter, rNamespaceMap );
- }
-
- return bRet;
-}
-
-
-void PageMasterImportPropertyMapper::finished(::std::vector< XMLPropertyState >& rProperties, sal_Int32 nStartIndex, sal_Int32 nEndIndex ) const
-{
- SvXMLImportPropertyMapper::finished(rProperties, nStartIndex, nEndIndex);
- XMLPropertyState* pAllPaddingProperty = NULL;
- XMLPropertyState* pPadding[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pNewPadding[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllBorderProperty = NULL;
- XMLPropertyState* pBorders[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pNewBorders[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllBorderWidthProperty = NULL;
- XMLPropertyState* pBorderWidths[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllHeaderPaddingProperty = NULL;
- XMLPropertyState* pHeaderPadding[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pHeaderNewPadding[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllHeaderBorderProperty = NULL;
- XMLPropertyState* pHeaderBorders[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pHeaderNewBorders[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllHeaderBorderWidthProperty = NULL;
- XMLPropertyState* pHeaderBorderWidths[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllFooterPaddingProperty = NULL;
- XMLPropertyState* pFooterPadding[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pFooterNewPadding[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllFooterBorderProperty = NULL;
- XMLPropertyState* pFooterBorders[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pFooterNewBorders[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pAllFooterBorderWidthProperty = NULL;
- XMLPropertyState* pFooterBorderWidths[4] = { NULL, NULL, NULL, NULL };
- XMLPropertyState* pHeaderHeight = NULL;
- XMLPropertyState* pHeaderMinHeight = NULL;
- XMLPropertyState* pHeaderDynamic = NULL;
- XMLPropertyState* pFooterHeight = NULL;
- XMLPropertyState* pFooterMinHeight = NULL;
- XMLPropertyState* pFooterDynamic = NULL;
- XMLPropertyState* pAllMarginProperty = NULL;
- XMLPropertyState* pMargins[4] = { NULL, NULL, NULL, NULL };
- ::std::auto_ptr<XMLPropertyState> pNewMargins[4];
- XMLPropertyState* pAllHeaderMarginProperty = NULL;
- XMLPropertyState* pHeaderMargins[4] = { NULL, NULL, NULL, NULL };
- ::std::auto_ptr<XMLPropertyState> pNewHeaderMargins[4];
- XMLPropertyState* pAllFooterMarginProperty = NULL;
- XMLPropertyState* pFooterMargins[4] = { NULL, NULL, NULL, NULL };
- ::std::auto_ptr<XMLPropertyState> pNewFooterMargins[4];
-
- ::std::vector< XMLPropertyState >::iterator aEnd = rProperties.end();
- for (::std::vector< XMLPropertyState >::iterator aIter = rProperties.begin(); aIter != aEnd; ++aIter)
- {
- XMLPropertyState *property = &(*aIter);
- sal_Int16 nContextID = getPropertySetMapper()->GetEntryContextId(property->mnIndex);
- if (property->mnIndex >= nStartIndex && property->mnIndex < nEndIndex)
- {
- switch (nContextID)
- {
- case CTF_PM_PADDINGALL : pAllPaddingProperty = property; break;
- case CTF_PM_PADDINGLEFT : pPadding[XML_LINE_LEFT] = property; break;
- case CTF_PM_PADDINGRIGHT : pPadding[XML_LINE_RIGHT] = property; break;
- case CTF_PM_PADDINGTOP : pPadding[XML_LINE_TOP] = property; break;
- case CTF_PM_PADDINGBOTTOM : pPadding[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_BORDERALL : pAllBorderProperty = property; break;
- case CTF_PM_BORDERLEFT : pBorders[XML_LINE_LEFT] = property; break;
- case CTF_PM_BORDERRIGHT : pBorders[XML_LINE_RIGHT] = property; break;
- case CTF_PM_BORDERTOP : pBorders[XML_LINE_TOP] = property; break;
- case CTF_PM_BORDERBOTTOM : pBorders[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_BORDERWIDTHALL : pAllBorderWidthProperty = property; break;
- case CTF_PM_BORDERWIDTHLEFT : pBorderWidths[XML_LINE_LEFT] = property; break;
- case CTF_PM_BORDERWIDTHRIGHT : pBorderWidths[XML_LINE_RIGHT] = property; break;
- case CTF_PM_BORDERWIDTHTOP : pBorderWidths[XML_LINE_TOP] = property; break;
- case CTF_PM_BORDERWIDTHBOTTOM : pBorderWidths[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_HEADERPADDINGALL : pAllHeaderPaddingProperty = property; break;
- case CTF_PM_HEADERPADDINGLEFT : pHeaderPadding[XML_LINE_LEFT] = property; break;
- case CTF_PM_HEADERPADDINGRIGHT : pHeaderPadding[XML_LINE_RIGHT] = property; break;
- case CTF_PM_HEADERPADDINGTOP : pHeaderPadding[XML_LINE_TOP] = property; break;
- case CTF_PM_HEADERPADDINGBOTTOM : pHeaderPadding[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_HEADERBORDERALL : pAllHeaderBorderProperty = property; break;
- case CTF_PM_HEADERBORDERLEFT : pHeaderBorders[XML_LINE_LEFT] = property; break;
- case CTF_PM_HEADERBORDERRIGHT : pHeaderBorders[XML_LINE_RIGHT] = property; break;
- case CTF_PM_HEADERBORDERTOP : pHeaderBorders[XML_LINE_TOP] = property; break;
- case CTF_PM_HEADERBORDERBOTTOM : pHeaderBorders[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_HEADERBORDERWIDTHALL : pAllHeaderBorderWidthProperty = property; break;
- case CTF_PM_HEADERBORDERWIDTHLEFT : pHeaderBorderWidths[XML_LINE_LEFT] = property; break;
- case CTF_PM_HEADERBORDERWIDTHRIGHT : pHeaderBorderWidths[XML_LINE_RIGHT] = property; break;
- case CTF_PM_HEADERBORDERWIDTHTOP : pHeaderBorderWidths[XML_LINE_TOP] = property; break;
- case CTF_PM_HEADERBORDERWIDTHBOTTOM : pHeaderBorderWidths[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_FOOTERPADDINGALL : pAllFooterPaddingProperty = property; break;
- case CTF_PM_FOOTERPADDINGLEFT : pFooterPadding[XML_LINE_LEFT] = property; break;
- case CTF_PM_FOOTERPADDINGRIGHT : pFooterPadding[XML_LINE_RIGHT] = property; break;
- case CTF_PM_FOOTERPADDINGTOP : pFooterPadding[XML_LINE_TOP] = property; break;
- case CTF_PM_FOOTERPADDINGBOTTOM : pFooterPadding[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_FOOTERBORDERALL : pAllFooterBorderProperty = property; break;
- case CTF_PM_FOOTERBORDERLEFT : pFooterBorders[XML_LINE_LEFT] = property; break;
- case CTF_PM_FOOTERBORDERRIGHT : pFooterBorders[XML_LINE_RIGHT] = property; break;
- case CTF_PM_FOOTERBORDERTOP : pFooterBorders[XML_LINE_TOP] = property; break;
- case CTF_PM_FOOTERBORDERBOTTOM : pFooterBorders[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_FOOTERBORDERWIDTHALL : pAllFooterBorderWidthProperty = property; break;
- case CTF_PM_FOOTERBORDERWIDTHLEFT : pFooterBorderWidths[XML_LINE_LEFT] = property; break;
- case CTF_PM_FOOTERBORDERWIDTHRIGHT : pFooterBorderWidths[XML_LINE_RIGHT] = property; break;
- case CTF_PM_FOOTERBORDERWIDTHTOP : pFooterBorderWidths[XML_LINE_TOP] = property; break;
- case CTF_PM_FOOTERBORDERWIDTHBOTTOM : pFooterBorderWidths[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_HEADERHEIGHT : pHeaderHeight = property; break;
- case CTF_PM_HEADERMINHEIGHT : pHeaderMinHeight = property; break;
- case CTF_PM_FOOTERHEIGHT : pFooterHeight = property; break;
- case CTF_PM_FOOTERMINHEIGHT : pFooterMinHeight = property; break;
- case CTF_PM_MARGINALL :
- pAllMarginProperty = property; break;
- case CTF_PM_MARGINTOP :
- pMargins[XML_LINE_TOP] = property; break;
- case CTF_PM_MARGINBOTTOM:
- pMargins[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_MARGINLEFT :
- pMargins[XML_LINE_LEFT] = property; break;
- case CTF_PM_MARGINRIGHT :
- pMargins[XML_LINE_RIGHT] = property; break;
- case CTF_PM_HEADERMARGINALL :
- pAllHeaderMarginProperty = property; break;
- case CTF_PM_HEADERMARGINTOP :
- pHeaderMargins[XML_LINE_TOP] = property; break;
- case CTF_PM_HEADERMARGINBOTTOM:
- pHeaderMargins[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_HEADERMARGINLEFT :
- pHeaderMargins[XML_LINE_LEFT] = property; break;
- case CTF_PM_HEADERMARGINRIGHT :
- pHeaderMargins[XML_LINE_RIGHT] = property; break;
- case CTF_PM_FOOTERMARGINALL :
- pAllFooterMarginProperty = property; break;
- case CTF_PM_FOOTERMARGINTOP :
- pFooterMargins[XML_LINE_TOP] = property; break;
- case CTF_PM_FOOTERMARGINBOTTOM:
- pFooterMargins[XML_LINE_BOTTOM] = property; break;
- case CTF_PM_FOOTERMARGINLEFT :
- pFooterMargins[XML_LINE_LEFT] = property; break;
- case CTF_PM_FOOTERMARGINRIGHT :
- pFooterMargins[XML_LINE_RIGHT] = property; break;
- }
- }
- }
-
- for (sal_uInt16 i = 0; i < 4; i++)
- {
- if (pAllMarginProperty && !pMargins[i])
- {
- pNewMargins[i].reset(new XMLPropertyState(
- pAllMarginProperty->mnIndex + 1 + i,
- pAllMarginProperty->maValue));
- }
- if (pAllHeaderMarginProperty && !pHeaderMargins[i])
- {
- pNewHeaderMargins[i].reset(new XMLPropertyState(
- pAllHeaderMarginProperty->mnIndex + 1 + i,
- pAllHeaderMarginProperty->maValue));
- }
- if (pAllFooterMarginProperty && !pFooterMargins[i])
- {
- pNewFooterMargins[i].reset(new XMLPropertyState(
- pAllFooterMarginProperty->mnIndex + 1 + i,
- pAllFooterMarginProperty->maValue));
- }
- if (pAllPaddingProperty && !pPadding[i])
- pNewPadding[i] = new XMLPropertyState(pAllPaddingProperty->mnIndex + 1 + i, pAllPaddingProperty->maValue);
- if (pAllBorderProperty && !pBorders[i])
- {
- pNewBorders[i] = new XMLPropertyState(pAllBorderProperty->mnIndex + 1 + i, pAllBorderProperty->maValue);
- pBorders[i] = pNewBorders[i];
- }
- if( !pBorderWidths[i] )
- pBorderWidths[i] = pAllBorderWidthProperty;
- else
- pBorderWidths[i]->mnIndex = -1;
- if( pBorders[i] )
- {
- table::BorderLine2 aBorderLine;
- pBorders[i]->maValue >>= aBorderLine;
- if( pBorderWidths[i] )
- {
- table::BorderLine2 aBorderLineWidth;
- pBorderWidths[i]->maValue >>= aBorderLineWidth;
- aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
- aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
- aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
- aBorderLine.LineWidth = aBorderLineWidth.LineWidth;
- pBorders[i]->maValue <<= aBorderLine;
- }
- }
- if (pAllHeaderPaddingProperty && !pHeaderPadding[i])
- pHeaderNewPadding[i] = new XMLPropertyState(pAllHeaderPaddingProperty->mnIndex + 1 + i, pAllHeaderPaddingProperty->maValue);
- if (pAllHeaderBorderProperty && !pHeaderBorders[i])
- pHeaderNewBorders[i] = new XMLPropertyState(pAllHeaderBorderProperty->mnIndex + 1 + i, pAllHeaderBorderProperty->maValue);
- if( !pHeaderBorderWidths[i] )
- pHeaderBorderWidths[i] = pAllHeaderBorderWidthProperty;
- else
- pHeaderBorderWidths[i]->mnIndex = -1;
- if( pHeaderBorders[i] )
- {
- table::BorderLine2 aBorderLine;
- pHeaderBorders[i]->maValue >>= aBorderLine;
- if( pHeaderBorderWidths[i] )
- {
- table::BorderLine2 aBorderLineWidth;
- pHeaderBorderWidths[i]->maValue >>= aBorderLineWidth;
- aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
- aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
- aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
- aBorderLine.LineWidth = aBorderLineWidth.LineWidth;
- pHeaderBorders[i]->maValue <<= aBorderLine;
- }
- }
- if (pAllFooterPaddingProperty && !pFooterPadding[i])
- pFooterNewPadding[i] = new XMLPropertyState(pAllFooterPaddingProperty->mnIndex + 1 + i, pAllFooterPaddingProperty->maValue);
- if (pAllFooterBorderProperty && !pFooterBorders[i])
- pFooterNewBorders[i] = new XMLPropertyState(pAllFooterBorderProperty->mnIndex + 1 + i, pAllFooterBorderProperty->maValue);
- if( !pFooterBorderWidths[i] )
- pFooterBorderWidths[i] = pAllFooterBorderWidthProperty;
- else
- pFooterBorderWidths[i]->mnIndex = -1;
- if( pFooterBorders[i] )
- {
- table::BorderLine2 aBorderLine;
- pFooterBorders[i]->maValue >>= aBorderLine;
- if( pFooterBorderWidths[i] )
- {
- table::BorderLine2 aBorderLineWidth;
- pFooterBorderWidths[i]->maValue >>= aBorderLineWidth;
- aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth;
- aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth;
- aBorderLine.LineDistance = aBorderLineWidth.LineDistance;
- aBorderLine.LineWidth = aBorderLineWidth.LineWidth;
- pFooterBorders[i]->maValue <<= aBorderLine;
- }
- }
- }
-
- if (pHeaderHeight)
- {
- sal_Bool bValue(sal_False);
- uno::Any aAny;
- aAny.setValue( &bValue, ::getBooleanCppuType() );
- pHeaderDynamic = new XMLPropertyState(pHeaderHeight->mnIndex + 2, aAny);
- }
- if (pHeaderMinHeight)
- {
- sal_Bool bValue(sal_True);
- uno::Any aAny;
- aAny.setValue( &bValue, ::getBooleanCppuType() );
- pHeaderDynamic = new XMLPropertyState(pHeaderMinHeight->mnIndex + 1, aAny);
- }
- if (pFooterHeight)
- {
- sal_Bool bValue(sal_False);
- uno::Any aAny;
- aAny.setValue( &bValue, ::getBooleanCppuType() );
- pFooterDynamic = new XMLPropertyState(pFooterHeight->mnIndex + 2, aAny);
- }
- if (pFooterMinHeight)
- {
- sal_Bool bValue(sal_True);
- uno::Any aAny;
- aAny.setValue( &bValue, ::getBooleanCppuType() );
- pFooterDynamic = new XMLPropertyState(pFooterMinHeight->mnIndex + 1, aAny);
- }
- for (sal_uInt16 i = 0; i < 4; i++)
- {
- if (pNewMargins[i].get())
- {
- rProperties.push_back(*pNewMargins[i]);
- }
- if (pNewHeaderMargins[i].get())
- {
- rProperties.push_back(*pNewHeaderMargins[i]);
- }
- if (pNewFooterMargins[i].get())
- {
- rProperties.push_back(*pNewFooterMargins[i]);
- }
- if (pNewPadding[i])
- {
- rProperties.push_back(*pNewPadding[i]);
- delete pNewPadding[i];
- }
- if (pNewBorders[i])
- {
- rProperties.push_back(*pNewBorders[i]);
- delete pNewBorders[i];
- }
- if (pHeaderNewPadding[i])
- {
- rProperties.push_back(*pHeaderNewPadding[i]);
- delete pHeaderNewPadding[i];
- }
- if (pHeaderNewBorders[i])
- {
- rProperties.push_back(*pHeaderNewBorders[i]);
- delete pHeaderNewBorders[i];
- }
- if (pFooterNewPadding[i])
- {
- rProperties.push_back(*pFooterNewPadding[i]);
- delete pFooterNewPadding[i];
- }
- if (pFooterNewBorders[i])
- {
- rProperties.push_back(*pFooterNewBorders[i]);
- delete pFooterNewBorders[i];
- }
- }
- if(pHeaderDynamic)
- {
- rProperties.push_back(*pHeaderDynamic);
- delete pHeaderDynamic;
- }
- if(pFooterDynamic)
- {
- rProperties.push_back(*pFooterDynamic);
- delete pFooterDynamic;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterImportPropMapper.hxx b/xmloff/source/style/PageMasterImportPropMapper.hxx
deleted file mode 100644
index 9832abc786..0000000000
--- a/xmloff/source/style/PageMasterImportPropMapper.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PAGEMASTERIMPORTPROPMAPPER_HXX
-#define _XMLOFF_PAGEMASTERIMPORTPROPMAPPER_HXX
-
-#include <xmloff/xmlimppr.hxx>
-
-class SvXMLImport;
-
-class PageMasterImportPropertyMapper : public SvXMLImportPropertyMapper
-{
- SvXMLImport& rImport;
-
-protected:
-
-public:
-
- PageMasterImportPropertyMapper(
- const UniReference< XMLPropertySetMapper >& rMapper,
- SvXMLImport& rImp);
- virtual ~PageMasterImportPropertyMapper();
-
- /** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_IMPORT flag set */
- virtual bool handleSpecialItem(
- XMLPropertyState& rProperty,
- ::std::vector< XMLPropertyState >& rProperties,
- const ::rtl::OUString& rValue,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap ) const;
-
- /** This method is called when all attributes have been processed. It may be used to remove items that are incomplete */
- virtual void finished(
- ::std::vector< XMLPropertyState >& rProperties,
- sal_Int32 nStartIndex, sal_Int32 nEndIndex ) const;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterPropHdl.cxx b/xmloff/source/style/PageMasterPropHdl.cxx
deleted file mode 100644
index 0bfbbee23b..0000000000
--- a/xmloff/source/style/PageMasterPropHdl.cxx
+++ /dev/null
@@ -1,428 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "PageMasterPropHdl.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmlnumi.hxx>
-#include <xmloff/xmlnume.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/style/PageStyleLayout.hpp>
-#include <comphelper/types.hxx>
-#include <comphelper/extract.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::comphelper;
-using namespace ::xmloff::token;
-
-
-//______________________________________________________________________________
-
-#define DEFAULT_PAPERTRAY (sal_Int32(-1))
-
-
-//______________________________________________________________________________
-// property handler for style:page-usage (style::PageStyleLayout)
-
-XMLPMPropHdl_PageStyleLayout::~XMLPMPropHdl_PageStyleLayout()
-{
-}
-
-bool XMLPMPropHdl_PageStyleLayout::equals( const Any& rAny1, const Any& rAny2 ) const
-{
- style::PageStyleLayout eLayout1, eLayout2;
- return ((rAny1 >>= eLayout1) && (rAny2 >>= eLayout2)) ? (eLayout1 == eLayout2) : sal_False;
-}
-
-sal_Bool XMLPMPropHdl_PageStyleLayout::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_True;
-
- if( IsXMLToken( rStrImpValue, XML_ALL ) )
- rValue <<= PageStyleLayout_ALL;
- else if( IsXMLToken( rStrImpValue, XML_LEFT ) )
- rValue <<= PageStyleLayout_LEFT;
- else if( IsXMLToken( rStrImpValue, XML_RIGHT ) )
- rValue <<= PageStyleLayout_RIGHT;
- else if( IsXMLToken( rStrImpValue, XML_MIRRORED ) )
- rValue <<= PageStyleLayout_MIRRORED;
- else
- bRet = sal_False;
-
- return bRet;
-}
-
-sal_Bool XMLPMPropHdl_PageStyleLayout::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- PageStyleLayout eLayout;
-
- if( rValue >>= eLayout )
- {
- bRet = sal_True;
- switch( eLayout )
- {
- case PageStyleLayout_ALL:
- rStrExpValue = GetXMLToken( XML_ALL );
- break;
- case PageStyleLayout_LEFT:
- rStrExpValue = GetXMLToken( XML_LEFT );
- break;
- case PageStyleLayout_RIGHT:
- rStrExpValue = GetXMLToken( XML_RIGHT );
- break;
- case PageStyleLayout_MIRRORED:
- rStrExpValue = GetXMLToken( XML_MIRRORED );
- break;
- default:
- bRet = sal_False;
- }
- }
-
- return bRet;
-}
-
-
-//______________________________________________________________________________
-// property handler for style:num-format (style::NumberingType)
-
-XMLPMPropHdl_NumFormat::~XMLPMPropHdl_NumFormat()
-{
-}
-
-sal_Bool XMLPMPropHdl_NumFormat::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Int16 nSync = sal_Int16();
- sal_Int16 nNumType = NumberingType::NUMBER_NONE;
- rUnitConverter.convertNumFormat( nNumType, rStrImpValue, OUString(),
- sal_True );
-
- if( !(rValue >>= nSync) )
- nSync = NumberingType::NUMBER_NONE;
-
- // if num-letter-sync appears before num-format, the function
- // XMLPMPropHdl_NumLetterSync::importXML() sets the value
- // NumberingType::CHARS_LOWER_LETTER_N
- if( nSync == NumberingType::CHARS_LOWER_LETTER_N )
- {
- switch( nNumType )
- {
- case NumberingType::CHARS_LOWER_LETTER:
- nNumType = NumberingType::CHARS_LOWER_LETTER_N;
- break;
- case NumberingType::CHARS_UPPER_LETTER:
- nNumType = NumberingType::CHARS_UPPER_LETTER_N;
- break;
- }
- }
- rValue <<= nNumType;
-
- return sal_True;
-}
-
-sal_Bool XMLPMPropHdl_NumFormat::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nNumType = sal_Int16();
-
- if( rValue >>= nNumType )
- {
- OUStringBuffer aBuffer( 10 );
- rUnitConverter.convertNumFormat( aBuffer, nNumType );
- rStrExpValue = aBuffer.makeStringAndClear();
- bRet = sal_True;
- }
- return bRet;
-}
-
-
-//______________________________________________________________________________
-// property handler for style:num-letter-sync (style::NumberingType)
-
-XMLPMPropHdl_NumLetterSync::~XMLPMPropHdl_NumLetterSync()
-{
-}
-
-sal_Bool XMLPMPropHdl_NumLetterSync::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Int16 nNumType;
- sal_Int16 nSync = NumberingType::NUMBER_NONE;
- rUnitConverter.convertNumFormat( nSync, rStrImpValue,
- GetXMLToken( XML_A ), sal_True );
-
- if( !(rValue >>= nNumType) )
- nNumType = NumberingType::NUMBER_NONE;
-
- if( nSync == NumberingType::CHARS_LOWER_LETTER_N )
- {
- switch( nNumType )
- {
- case NumberingType::CHARS_LOWER_LETTER:
- nNumType = NumberingType::CHARS_LOWER_LETTER_N;
- break;
- case NumberingType::CHARS_UPPER_LETTER:
- nNumType = NumberingType::CHARS_UPPER_LETTER_N;
- break;
- }
- }
- rValue <<= nNumType;
-
- return sal_True;
-}
-
-sal_Bool XMLPMPropHdl_NumLetterSync::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nNumType = sal_Int16();
-
- if( rValue >>= nNumType )
- {
- OUStringBuffer aBuffer( 5 );
- rUnitConverter.convertNumLetterSync( aBuffer, nNumType );
- rStrExpValue = aBuffer.makeStringAndClear();
- bRet = rStrExpValue.getLength() > 0;
- }
- return bRet;
-}
-
-
-//______________________________________________________________________________
-// property handler for style:paper-tray-number
-
-XMLPMPropHdl_PaperTrayNumber::~XMLPMPropHdl_PaperTrayNumber()
-{
-}
-
-sal_Bool XMLPMPropHdl_PaperTrayNumber::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if( IsXMLToken( rStrImpValue, XML_DEFAULT ) )
- {
- rValue <<= DEFAULT_PAPERTRAY;
- bRet = sal_True;
- }
- else
- {
- sal_Int32 nPaperTray;
- if( SvXMLUnitConverter::convertNumber( nPaperTray, rStrImpValue, 0 ) )
- {
- rValue <<= nPaperTray;
- bRet = sal_True;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLPMPropHdl_PaperTrayNumber::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nPaperTray = 0;
-
- if( rValue >>= nPaperTray )
- {
- if( nPaperTray == DEFAULT_PAPERTRAY )
- rStrExpValue = GetXMLToken( XML_DEFAULT );
- else
- {
- OUStringBuffer aBuffer;
- SvXMLUnitConverter::convertNumber( aBuffer, nPaperTray );
- rStrExpValue = aBuffer.makeStringAndClear();
- }
- bRet = sal_True;
- }
- return bRet;
-}
-
-
-//______________________________________________________________________________
-// property handler for style:print
-
-XMLPMPropHdl_Print::XMLPMPropHdl_Print( enum XMLTokenEnum eValue ) :
- sAttrValue( GetXMLToken( eValue ) )
-{
-}
-
-XMLPMPropHdl_Print::~XMLPMPropHdl_Print()
-{
-}
-
-sal_Bool XMLPMPropHdl_Print::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Unicode cToken = ' ';
- sal_Int32 nTokenIndex = 0;
- sal_Bool bFound = sal_False;
-
- do
- {
- bFound = (sAttrValue == rStrImpValue.getToken( 0, cToken, nTokenIndex ));
- }
- while ( (nTokenIndex >= 0) && !bFound );
-
- setBOOL( rValue, bFound );
- return sal_True;
-}
-
-sal_Bool XMLPMPropHdl_Print::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- if( getBOOL( rValue ) )
- {
- if( rStrExpValue.getLength() )
- rStrExpValue += OUString( RTL_CONSTASCII_USTRINGPARAM( " " ) );
- rStrExpValue += sAttrValue;
- }
-
- return sal_True;
-}
-
-//______________________________________________________________________________
-// property handler for style:table-centering
-
-XMLPMPropHdl_CenterHorizontal::~XMLPMPropHdl_CenterHorizontal()
-{
-}
-
-sal_Bool XMLPMPropHdl_CenterHorizontal::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if (rStrImpValue.getLength())
- if (IsXMLToken( rStrImpValue, XML_BOTH) ||
- IsXMLToken( rStrImpValue, XML_HORIZONTAL))
- {
- rValue = ::cppu::bool2any(sal_True);
- bRet = sal_True;
- }
-
-
- return bRet;
-}
-
-sal_Bool XMLPMPropHdl_CenterHorizontal::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if ( ::cppu::any2bool( rValue ) )
- {
- bRet = sal_True;
- if (rStrExpValue.getLength())
- rStrExpValue = GetXMLToken(XML_BOTH);
- else
- rStrExpValue = GetXMLToken(XML_HORIZONTAL);
- }
-
- return bRet;
-}
-
-XMLPMPropHdl_CenterVertical::~XMLPMPropHdl_CenterVertical()
-{
-}
-
-sal_Bool XMLPMPropHdl_CenterVertical::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if (rStrImpValue.getLength())
- if (IsXMLToken(rStrImpValue, XML_BOTH) ||
- IsXMLToken(rStrImpValue, XML_VERTICAL) )
- {
- rValue = ::cppu::bool2any(sal_True);
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-sal_Bool XMLPMPropHdl_CenterVertical::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if ( ::cppu::any2bool( rValue ) )
- {
- bRet = sal_True;
- if (rStrExpValue.getLength())
- rStrExpValue = GetXMLToken(XML_BOTH);
- else
- rStrExpValue = GetXMLToken(XML_VERTICAL);
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterPropHdl.hxx b/xmloff/source/style/PageMasterPropHdl.hxx
deleted file mode 100644
index d8d593449d..0000000000
--- a/xmloff/source/style/PageMasterPropHdl.hxx
+++ /dev/null
@@ -1,182 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PAGEMASTERPROPHDL_HXX_
-#define _XMLOFF_PAGEMASTERPROPHDL_HXX_
-
-#include <xmloff/xmlprhdl.hxx>
-#include <rtl/ustring.hxx>
-#include <xmloff/xmltoken.hxx>
-
-
-//______________________________________________________________________________
-// property handler for style:page-usage (style::PageStyleLayout)
-
-class XMLPMPropHdl_PageStyleLayout : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPMPropHdl_PageStyleLayout();
- virtual bool equals(
- const ::com::sun::star::uno::Any& rAny1,
- const ::com::sun::star::uno::Any& rAny2
- ) const;
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-
-//______________________________________________________________________________
-// property handler for style:num-format (style::NumberingType)
-
-class XMLPMPropHdl_NumFormat : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPMPropHdl_NumFormat();
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-
-//______________________________________________________________________________
-// property handler for style:num-letter-sync (style::NumberingType)
-
-class XMLPMPropHdl_NumLetterSync : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPMPropHdl_NumLetterSync();
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-
-//______________________________________________________________________________
-// property handler for style:paper-tray-number
-
-class XMLPMPropHdl_PaperTrayNumber : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPMPropHdl_PaperTrayNumber();
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-
-//______________________________________________________________________________
-// property handler for style:print
-
-class XMLPMPropHdl_Print : public XMLPropertyHandler
-{
-protected:
- ::rtl::OUString sAttrValue;
-
-public:
- XMLPMPropHdl_Print( enum ::xmloff::token::XMLTokenEnum eValue );
- virtual ~XMLPMPropHdl_Print();
-
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-//______________________________________________________________________________
-// property handler for style:table-centering
-
-class XMLPMPropHdl_CenterHorizontal : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPMPropHdl_CenterHorizontal();
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-class XMLPMPropHdl_CenterVertical : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPMPropHdl_CenterVertical();
- virtual sal_Bool importXML(
- const ::rtl::OUString& rStrImpValue,
- ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
- virtual sal_Bool exportXML(
- ::rtl::OUString& rStrExpValue,
- const ::com::sun::star::uno::Any& rValue,
- const SvXMLUnitConverter& rUnitConverter
- ) const;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterPropHdlFactory.cxx b/xmloff/source/style/PageMasterPropHdlFactory.cxx
deleted file mode 100644
index 7199dadadd..0000000000
--- a/xmloff/source/style/PageMasterPropHdlFactory.cxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "PageMasterPropHdlFactory.hxx"
-#include <xmloff/xmltypes.hxx>
-#include <xmloff/xmltoken.hxx>
-#include "xmlbahdl.hxx"
-#include <xmloff/NamedBoolPropertyHdl.hxx>
-#include "XMLTextColumnsPropertyHandler.hxx"
-#include <xmloff/XMLConstantsPropertyHandler.hxx>
-#include "PageMasterPropHdl.hxx"
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <com/sun/star/text/TextGridMode.hpp>
-
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-using namespace ::com::sun::star;
-
-
-SvXMLEnumMapEntry aXML_TextGridMode_ConstantMap[] =
-{
- { XML_NONE, text::TextGridMode::NONE },
- { XML_LINE, text::TextGridMode::LINES },
- { XML_BOTH, text::TextGridMode::LINES_AND_CHARS },
- { XML_TOKEN_INVALID, 0 }
-};
-
-//______________________________________________________________________________
-
-XMLPageMasterPropHdlFactory::XMLPageMasterPropHdlFactory() :
- XMLPropertyHandlerFactory()
-{
-}
-
-XMLPageMasterPropHdlFactory::~XMLPageMasterPropHdlFactory()
-{
-}
-
-const XMLPropertyHandler* XMLPageMasterPropHdlFactory::GetPropertyHandler( sal_Int32 nType ) const
-{
- nType &= MID_FLAG_MASK;
-
- XMLPropertyHandler* pHdl = (XMLPropertyHandler*) XMLPropertyHandlerFactory::GetPropertyHandler( nType );
- if( !pHdl )
- {
- switch( nType )
- {
- case XML_PM_TYPE_PAGESTYLELAYOUT:
- pHdl = new XMLPMPropHdl_PageStyleLayout();
- break;
- case XML_PM_TYPE_NUMFORMAT:
- pHdl = new XMLPMPropHdl_NumFormat();
- break;
- case XML_PM_TYPE_NUMLETTERSYNC:
- pHdl = new XMLPMPropHdl_NumLetterSync();
- break;
- case XML_PM_TYPE_PAPERTRAYNUMBER:
- pHdl = new XMLPMPropHdl_PaperTrayNumber();
- break;
- case XML_PM_TYPE_PRINTORIENTATION:
- pHdl = new XMLNamedBoolPropertyHdl(
- GetXMLToken( XML_LANDSCAPE ),
- GetXMLToken( XML_PORTRAIT ) );
- break;
- case XML_PM_TYPE_PRINTANNOTATIONS:
- pHdl = new XMLPMPropHdl_Print( XML_ANNOTATIONS );
- break;
- case XML_PM_TYPE_PRINTCHARTS:
- pHdl = new XMLPMPropHdl_Print( XML_CHARTS );
- break;
- case XML_PM_TYPE_PRINTDRAWING:
- pHdl = new XMLPMPropHdl_Print( XML_DRAWINGS );
- break;
- case XML_PM_TYPE_PRINTFORMULAS:
- pHdl = new XMLPMPropHdl_Print( XML_FORMULAS );
- break;
- case XML_PM_TYPE_PRINTGRID:
- pHdl = new XMLPMPropHdl_Print( XML_GRID );
- break;
- case XML_PM_TYPE_PRINTHEADERS:
- pHdl = new XMLPMPropHdl_Print( XML_HEADERS );
- break;
- case XML_PM_TYPE_PRINTOBJECTS:
- pHdl = new XMLPMPropHdl_Print( XML_OBJECTS );
- break;
- case XML_PM_TYPE_PRINTZEROVALUES:
- pHdl = new XMLPMPropHdl_Print( XML_ZERO_VALUES );
- break;
- case XML_PM_TYPE_PRINTPAGEORDER:
- pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken( XML_TTB ),
- GetXMLToken( XML_LTR ) );
- break;
- case XML_PM_TYPE_FIRSTPAGENUMBER:
- pHdl = new XMLNumberNonePropHdl( XML_CONTINUE, 2 );
- break;
- case XML_PM_TYPE_CENTER_HORIZONTAL:
- pHdl = new XMLPMPropHdl_CenterHorizontal();
- break;
- case XML_PM_TYPE_CENTER_VERTICAL:
- pHdl = new XMLPMPropHdl_CenterVertical();
- break;
- case XML_TYPE_TEXT_COLUMNS:
- pHdl = new XMLTextColumnsPropertyHandler;
- break;
- case XML_TYPE_LAYOUT_GRID_MODE:
- pHdl = new XMLConstantsPropertyHandler(
- aXML_TextGridMode_ConstantMap, XML_NONE );
- break;
- }
-
- if( pHdl )
- PutHdlCache( nType, pHdl );
- }
- return pHdl;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterPropHdlFactory.hxx b/xmloff/source/style/PageMasterPropHdlFactory.hxx
deleted file mode 100644
index f0db3a88a1..0000000000
--- a/xmloff/source/style/PageMasterPropHdlFactory.hxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PAGEMASTERPROPHDLFACTORY_HXX
-#define _XMLOFF_PAGEMASTERPROPHDLFACTORY_HXX
-
-#include <xmloff/prhdlfac.hxx>
-
-
-//______________________________________________________________________________
-
-class XMLPageMasterPropHdlFactory : public XMLPropertyHandlerFactory
-{
-public:
- XMLPageMasterPropHdlFactory();
- virtual ~XMLPageMasterPropHdlFactory();
-
- virtual const XMLPropertyHandler*
- GetPropertyHandler( sal_Int32 nType ) const;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterPropMapper.cxx b/xmloff/source/style/PageMasterPropMapper.cxx
deleted file mode 100644
index 2b7f9082a7..0000000000
--- a/xmloff/source/style/PageMasterPropMapper.cxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include "PageMasterPropMapper.hxx"
-
-
-#include <xmloff/PageMasterStyleMap.hxx>
-#include "PageMasterPropHdlFactory.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-
-
-//______________________________________________________________________________
-
-XMLPageMasterPropSetMapper::XMLPageMasterPropSetMapper():
- XMLPropertySetMapper( aXMLPageMasterStyleMap, new XMLPageMasterPropHdlFactory())
-{
-}
-
-XMLPageMasterPropSetMapper::XMLPageMasterPropSetMapper(
- const XMLPropertyMapEntry* pEntries,
- const UniReference< XMLPropertyHandlerFactory >& rFactory ) :
- XMLPropertySetMapper( pEntries, rFactory )
-{
-}
-
-XMLPageMasterPropSetMapper::~XMLPageMasterPropSetMapper()
-{
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterPropMapper.hxx b/xmloff/source/style/PageMasterPropMapper.hxx
deleted file mode 100644
index 655f127db5..0000000000
--- a/xmloff/source/style/PageMasterPropMapper.hxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PAGEMASTERPROPMAPPER_HXX_
-#define _XMLOFF_PAGEMASTERPROPMAPPER_HXX_
-
-#include <xmloff/xmlprmap.hxx>
-
-
-//______________________________________________________________________________
-
-class XMLPageMasterPropSetMapper : public XMLPropertySetMapper
-{
-public:
- XMLPageMasterPropSetMapper();
- XMLPageMasterPropSetMapper(
- const XMLPropertyMapEntry* pEntries,
- const UniReference< XMLPropertyHandlerFactory >& rFactory );
- virtual ~XMLPageMasterPropSetMapper();
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx
deleted file mode 100644
index 8c5665284c..0000000000
--- a/xmloff/source/style/PageMasterStyleMap.cxx
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <xmloff/xmlnmspe.hxx>
-#include <xmloff/xmltoken.hxx>
-
-using namespace ::xmloff::token;
-
-#define _MAP(name,prefix,token,type,context) { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010 }
-#define PLMAP(name,prefix,token,type,context) \
- _MAP(name,prefix,token,type|XML_TYPE_PROP_PAGE_LAYOUT,context)
-#define HFMAP(name,prefix,token,type,context) \
- _MAP(name,prefix,token,type|XML_TYPE_PROP_HEADER_FOOTER,context)
-
-//______________________________________________________________________________
-
-const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
-{
-// page master
- PLMAP( "PageStyleLayout", XML_NAMESPACE_STYLE, XML_PAGE_USAGE, XML_PM_TYPE_PAGESTYLELAYOUT | MID_FLAG_SPECIAL_ITEM, CTF_PM_PAGEUSAGE ),
- PLMAP( "Width", XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TYPE_MEASURE, 0 ),
- PLMAP( "Height", XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TYPE_MEASURE, 0 ),
- PLMAP( "NumberingType", XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_PM_TYPE_NUMFORMAT | MID_FLAG_MERGE_PROPERTY, 0 ),
- PLMAP( "NumberingType", XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, XML_PM_TYPE_NUMLETTERSYNC, 0 ),
- PLMAP( "PrinterPaperTray", XML_NAMESPACE_STYLE, XML_PAPER_TRAY_NAME, XML_TYPE_STRING | MID_FLAG_PROPERTY_MAY_EXCEPT, 0 ),
- PLMAP( "IsLandscape", XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_PM_TYPE_PRINTORIENTATION, 0 ),
- PLMAP( "TopMargin", XML_NAMESPACE_FO, XML_MARGIN, XML_TYPE_MEASURE, CTF_PM_MARGINALL ),
- PLMAP( "TopMargin", XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TYPE_MEASURE, CTF_PM_MARGINTOP ),
- PLMAP( "BottomMargin", XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TYPE_MEASURE, CTF_PM_MARGINBOTTOM ),
- PLMAP( "LeftMargin", XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TYPE_MEASURE, CTF_PM_MARGINLEFT ),
- PLMAP( "RightMargin", XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TYPE_MEASURE, CTF_PM_MARGINRIGHT ),
- PLMAP( "TopBorder", XML_NAMESPACE_FO, XML_BORDER, XML_TYPE_BORDER, CTF_PM_BORDERALL ),
- PLMAP( "TopBorder", XML_NAMESPACE_FO, XML_BORDER_TOP, XML_TYPE_BORDER, CTF_PM_BORDERTOP ),
- PLMAP( "BottomBorder", XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_TYPE_BORDER, CTF_PM_BORDERBOTTOM ),
- PLMAP( "LeftBorder", XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_TYPE_BORDER, CTF_PM_BORDERLEFT ),
- PLMAP( "RightBorder", XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_TYPE_BORDER, CTF_PM_BORDERRIGHT ),
- PLMAP( "TopBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_TYPE_BORDER_WIDTH, CTF_PM_BORDERWIDTHALL ),
- PLMAP( "TopBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_TYPE_BORDER_WIDTH, CTF_PM_BORDERWIDTHTOP ),
- PLMAP( "BottomBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH, CTF_PM_BORDERWIDTHBOTTOM ),
- PLMAP( "LeftBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_TYPE_BORDER_WIDTH, CTF_PM_BORDERWIDTHLEFT ),
- PLMAP( "RightBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_TYPE_BORDER_WIDTH, CTF_PM_BORDERWIDTHRIGHT ),
- PLMAP( "TopBorderDistance", XML_NAMESPACE_FO, XML_PADDING, XML_TYPE_MEASURE, CTF_PM_PADDINGALL ),
- PLMAP( "TopBorderDistance", XML_NAMESPACE_FO, XML_PADDING_TOP, XML_TYPE_MEASURE, CTF_PM_PADDINGTOP ),
- PLMAP( "BottomBorderDistance", XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE, CTF_PM_PADDINGBOTTOM ),
- PLMAP( "LeftBorderDistance", XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_TYPE_MEASURE, CTF_PM_PADDINGLEFT ),
- PLMAP( "RightBorderDistance", XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_TYPE_MEASURE, CTF_PM_PADDINGRIGHT ),
- PLMAP( "ShadowFormat", XML_NAMESPACE_STYLE, XML_SHADOW, XML_TYPE_TEXT_SHADOW, 0 ),
- PLMAP( "BackColor", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT | MID_FLAG_MULTI_PROPERTY, 0 ),
- PLMAP( "BackTransparent", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT | MID_FLAG_MERGE_ATTRIBUTE, 0 ),
- PLMAP( "BackGraphicLocation", XML_NAMESPACE_STYLE, XML_POSITION, XML_TYPE_BUILDIN_CMP_ONLY | MID_FLAG_SPECIAL_ITEM, CTF_PM_GRAPHICPOSITION ),
- PLMAP( "BackGraphicFilter", XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TYPE_STRING | MID_FLAG_SPECIAL_ITEM, CTF_PM_GRAPHICFILTER ),
- PLMAP( "BackGraphicURL", XML_NAMESPACE_STYLE, XML_BACKGROUND_IMAGE, XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM, CTF_PM_GRAPHICURL ),
- PLMAP( "PrintAnnotations", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTANNOTATIONS | MID_FLAG_MULTI_PROPERTY, CTF_PM_PRINT_ANNOTATIONS ),
- PLMAP( "PrintCharts", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTCHARTS | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_CHARTS ),
- PLMAP( "PrintDrawing", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTDRAWING | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_DRAWING ),
- PLMAP( "PrintFormulas", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTFORMULAS | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_FORMULAS ),
- PLMAP( "PrintGrid", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTGRID | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_GRID ),
- PLMAP( "PrintHeaders", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTHEADERS | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_HEADERS ),
- PLMAP( "PrintObjects", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTOBJECTS | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_OBJECTS ),
- PLMAP( "PrintZeroValues", XML_NAMESPACE_STYLE, XML_PRINT, XML_PM_TYPE_PRINTZEROVALUES | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_PRINT_ZEROVALUES ),
- PLMAP( "PrintDownFirst", XML_NAMESPACE_STYLE, XML_PRINT_PAGE_ORDER, XML_PM_TYPE_PRINTPAGEORDER, 0 ),
- PLMAP( "FirstPageNumber", XML_NAMESPACE_STYLE, XML_FIRST_PAGE_NUMBER, XML_PM_TYPE_FIRSTPAGENUMBER, 0 ),
- PLMAP( "PageScale", XML_NAMESPACE_STYLE, XML_SCALE_TO, XML_TYPE_PERCENT16, CTF_PM_SCALETO ),
- PLMAP( "ScaleToPages", XML_NAMESPACE_STYLE, XML_SCALE_TO_PAGES, XML_TYPE_NUMBER16, CTF_PM_SCALETOPAGES ),
- PLMAP( "ScaleToPagesX", XML_NAMESPACE_STYLE, XML_SCALE_TO_X, XML_TYPE_NUMBER16, CTF_PM_SCALETOX ),
- PLMAP( "ScaleToPagesY", XML_NAMESPACE_STYLE, XML_SCALE_TO_Y, XML_TYPE_NUMBER16, CTF_PM_SCALETOY ),
- PLMAP( "CenterHorizontally", XML_NAMESPACE_STYLE, XML_TABLE_CENTERING, XML_PM_TYPE_CENTER_HORIZONTAL | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, 0 ),
- PLMAP( "CenterVertically", XML_NAMESPACE_STYLE, XML_TABLE_CENTERING, XML_PM_TYPE_CENTER_VERTICAL | MID_FLAG_MULTI_PROPERTY | MID_FLAG_MERGE_ATTRIBUTE, 0 ),
- PLMAP( "TextColumns", XML_NAMESPACE_STYLE, XML_COLUMNS, MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_COLUMNS, CTF_PM_TEXTCOLUMNS ),
- PLMAP( "RegisterModeActive", XML_NAMESPACE_STYLE, XML_REGISTER_TRUE, XML_TYPE_BOOL, 0 ),
- PLMAP( "RegisterParagraphStyle", XML_NAMESPACE_STYLE, XML_REGISTER_TRUTH_REF_STYLE_NAME, XML_TYPE_STYLENAME| MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_PM_REGISTER_STYLE ),
- PLMAP( "WritingMode", XML_NAMESPACE_STYLE, XML_WRITING_MODE, XML_TYPE_TEXT_WRITING_MODE, 0 ),
-
- PLMAP( "GridColor", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_COLOR, XML_TYPE_COLOR, 0 ),
- PLMAP( "GridLines", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_LINES, XML_TYPE_NUMBER16, 0 ),
- PLMAP( "GridBaseHeight", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_BASE_HEIGHT, XML_TYPE_MEASURE, 0 ),
- PLMAP( "GridRubyHeight", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_RUBY_HEIGHT, XML_TYPE_MEASURE, 0 ),
- PLMAP( "GridMode", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_MODE, XML_TYPE_LAYOUT_GRID_MODE, 0 ),
- PLMAP( "RubyBelow", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_RUBY_BELOW, XML_TYPE_BOOL, 0 ),
- PLMAP( "GridPrint", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_PRINT, XML_TYPE_BOOL, 0 ),
- PLMAP( "GridDisplay", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_DISPLAY, XML_TYPE_BOOL, 0 ),
-
- //text grid enhancement for better CJK support
- PLMAP( "GridBaseWidth", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_BASE_WIDTH, XML_TYPE_MEASURE, CTP_PM_GRID_BASE_WIDTH ),
- PLMAP( "GridSnapToChars", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_SNAP_TO, XML_TYPE_BOOL, CTP_PM_GRID_SNAP_TO_CHARS ),
- PLMAP( "GridSnapToChars", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_SNAP_TO_CHARS, XML_TYPE_BOOL, CTP_PM_GRID_SNAP_TO_CHARS ),
- //export as a default attribute
- PLMAP( "StandardPageMode", XML_NAMESPACE_STYLE, XML_LAYOUT_GRID_STANDARD_MODE, XML_TYPE_BOOL|MID_FLAG_DEFAULT_ITEM_EXPORT, CTF_PM_STANDARD_MODE ),
-
- PLMAP( "UserDefinedAttributes", XML_NAMESPACE_TEXT, XML_XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
-
-// footnote
- PLMAP( "FootnoteHeight", XML_NAMESPACE_STYLE, XML_FOOTNOTE_MAX_HEIGHT, XML_TYPE_MEASURE, CTF_PM_FTN_HEIGTH ),
- PLMAP( "FootnoteLineAdjust", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_TEXT_HORIZONTAL_ADJUST|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_ADJUST ),
- PLMAP( "FootnoteLineColor", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_COLOR ),
- PLMAP( "FootnoteLineDistance", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM,CTF_PM_FTN_DISTANCE ),
- PLMAP( "FootnoteLineRelativeWidth", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_PERCENT8|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_WIDTH ),
- PLMAP( "FootnoteLineTextDistance", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_DISTANCE ),
- PLMAP( "FootnoteLineWeight", XML_NAMESPACE_STYLE, XML_FOOTNOTE_SEP, XML_TYPE_MEASURE16|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_WEIGTH ),
- PLMAP( "FootnoteLineStyle", XML_NAMESPACE_STYLE, XML_EMPTY, XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_STYLE ),
-
-// header
- HFMAP( "HeaderHeight", XML_NAMESPACE_SVG, XML_HEIGHT, XML_TYPE_MEASURE, CTF_PM_HEADERHEIGHT ),
- HFMAP( "HeaderHeight", XML_NAMESPACE_FO, XML_MIN_HEIGHT, XML_TYPE_MEASURE, CTF_PM_HEADERMINHEIGHT ),
- HFMAP( "HeaderIsDynamicHeight", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_BOOL, CTF_PM_HEADERDYNAMIC ),
- HFMAP( "HeaderLeftMargin", XML_NAMESPACE_FO, XML_MARGIN, XML_TYPE_MEASURE, CTF_PM_HEADERMARGINALL ),
- HFMAP( "HeaderLeftMargin", XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TYPE_MEASURE, CTF_PM_HEADERMARGINLEFT ),
- HFMAP( "HeaderRightMargin", XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TYPE_MEASURE, CTF_PM_HEADERMARGINRIGHT ),
- HFMAP( "HeaderBodyDistance", XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TYPE_MEASURE, CTF_PM_HEADERMARGINBOTTOM ),
- HFMAP( "HeaderTopBorder", XML_NAMESPACE_FO, XML_BORDER, XML_TYPE_BORDER, CTF_PM_HEADERBORDERALL ),
- HFMAP( "HeaderTopBorder", XML_NAMESPACE_FO, XML_BORDER_TOP, XML_TYPE_BORDER, CTF_PM_HEADERBORDERTOP ),
- HFMAP( "HeaderBottomBorder", XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_TYPE_BORDER, CTF_PM_HEADERBORDERBOTTOM ),
- HFMAP( "HeaderLeftBorder", XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_TYPE_BORDER, CTF_PM_HEADERBORDERLEFT ),
- HFMAP( "HeaderRightBorder", XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_TYPE_BORDER, CTF_PM_HEADERBORDERRIGHT ),
- HFMAP( "HeaderTopBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_TYPE_BORDER_WIDTH, CTF_PM_HEADERBORDERWIDTHALL ),
- HFMAP( "HeaderTopBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_TYPE_BORDER_WIDTH, CTF_PM_HEADERBORDERWIDTHTOP ),
- HFMAP( "HeaderBottomBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH, CTF_PM_HEADERBORDERWIDTHBOTTOM ),
- HFMAP( "HeaderLeftBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_TYPE_BORDER_WIDTH, CTF_PM_HEADERBORDERWIDTHLEFT ),
- HFMAP( "HeaderRightBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_TYPE_BORDER_WIDTH, CTF_PM_HEADERBORDERWIDTHRIGHT ),
- HFMAP( "HeaderTopBorderDistance", XML_NAMESPACE_FO, XML_PADDING, XML_TYPE_MEASURE, CTF_PM_HEADERPADDINGALL ),
- HFMAP( "HeaderTopBorderDistance", XML_NAMESPACE_FO, XML_PADDING_TOP, XML_TYPE_MEASURE, CTF_PM_HEADERPADDINGTOP ),
- HFMAP( "HeaderBottomBorderDistance", XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE, CTF_PM_HEADERPADDINGBOTTOM ),
- HFMAP( "HeaderLeftBorderDistance", XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_TYPE_MEASURE, CTF_PM_HEADERPADDINGLEFT ),
- HFMAP( "HeaderRightBorderDistance", XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_TYPE_MEASURE, CTF_PM_HEADERPADDINGRIGHT ),
- HFMAP( "HeaderShadowFormat", XML_NAMESPACE_STYLE, XML_SHADOW, XML_TYPE_TEXT_SHADOW, CTF_PM_HEADERFLAG ),
- HFMAP( "HeaderBackColor", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT | MID_FLAG_MULTI_PROPERTY, CTF_PM_HEADERFLAG ),
- HFMAP( "HeaderBackTransparent", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_HEADERFLAG ),
- HFMAP( "HeaderBackGraphicLocation", XML_NAMESPACE_STYLE, XML_POSITION, XML_TYPE_BUILDIN_CMP_ONLY | MID_FLAG_SPECIAL_ITEM, CTF_PM_HEADERGRAPHICPOSITION ),
- HFMAP( "HeaderBackGraphicFilter", XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TYPE_STRING | MID_FLAG_SPECIAL_ITEM, CTF_PM_HEADERGRAPHICFILTER ),
- HFMAP( "HeaderBackGraphicURL", XML_NAMESPACE_STYLE, XML_BACKGROUND_IMAGE, XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM, CTF_PM_HEADERGRAPHICURL ),
- HFMAP( "HeaderDynamicSpacing", XML_NAMESPACE_STYLE, XML_DYNAMIC_SPACING, XML_TYPE_BOOL, CTF_PM_HEADERFLAG ),
-
-// footer
- HFMAP( "FooterHeight", XML_NAMESPACE_SVG, XML_HEIGHT, XML_TYPE_MEASURE, CTF_PM_FOOTERHEIGHT ),
- HFMAP( "FooterHeight", XML_NAMESPACE_FO, XML_MIN_HEIGHT, XML_TYPE_MEASURE, CTF_PM_FOOTERMINHEIGHT ),
- HFMAP( "FooterIsDynamicHeight", XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_BOOL, CTF_PM_FOOTERDYNAMIC ),
- HFMAP( "FooterLeftMargin", XML_NAMESPACE_FO, XML_MARGIN, XML_TYPE_MEASURE, CTF_PM_FOOTERMARGINALL ),
- HFMAP( "FooterLeftMargin", XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TYPE_MEASURE, CTF_PM_FOOTERMARGINLEFT ),
- HFMAP( "FooterRightMargin", XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TYPE_MEASURE, CTF_PM_FOOTERMARGINRIGHT ),
- HFMAP( "FooterBodyDistance", XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TYPE_MEASURE, CTF_PM_FOOTERMARGINTOP ),
- HFMAP( "FooterTopBorder", XML_NAMESPACE_FO, XML_BORDER, XML_TYPE_BORDER, CTF_PM_FOOTERBORDERALL ),
- HFMAP( "FooterTopBorder", XML_NAMESPACE_FO, XML_BORDER_TOP, XML_TYPE_BORDER, CTF_PM_FOOTERBORDERTOP ),
- HFMAP( "FooterBottomBorder", XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_TYPE_BORDER, CTF_PM_FOOTERBORDERBOTTOM ),
- HFMAP( "FooterLeftBorder", XML_NAMESPACE_FO, XML_BORDER_LEFT, XML_TYPE_BORDER, CTF_PM_FOOTERBORDERLEFT ),
- HFMAP( "FooterRightBorder", XML_NAMESPACE_FO, XML_BORDER_RIGHT, XML_TYPE_BORDER, CTF_PM_FOOTERBORDERRIGHT ),
- HFMAP( "FooterTopBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH, XML_TYPE_BORDER_WIDTH, CTF_PM_FOOTERBORDERWIDTHALL ),
- HFMAP( "FooterTopBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP, XML_TYPE_BORDER_WIDTH, CTF_PM_FOOTERBORDERWIDTHTOP ),
- HFMAP( "FooterBottomBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH, CTF_PM_FOOTERBORDERWIDTHBOTTOM ),
- HFMAP( "FooterLeftBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT, XML_TYPE_BORDER_WIDTH, CTF_PM_FOOTERBORDERWIDTHLEFT ),
- HFMAP( "FooterRightBorder", XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT, XML_TYPE_BORDER_WIDTH, CTF_PM_FOOTERBORDERWIDTHRIGHT ),
- HFMAP( "FooterTopBorderDistance", XML_NAMESPACE_FO, XML_PADDING, XML_TYPE_MEASURE, CTF_PM_FOOTERPADDINGALL ),
- HFMAP( "FooterTopBorderDistance", XML_NAMESPACE_FO, XML_PADDING_TOP, XML_TYPE_MEASURE, CTF_PM_FOOTERPADDINGTOP ),
- HFMAP( "FooterBottomBorderDistance", XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE, CTF_PM_FOOTERPADDINGBOTTOM ),
- HFMAP( "FooterLeftBorderDistance", XML_NAMESPACE_FO, XML_PADDING_LEFT, XML_TYPE_MEASURE, CTF_PM_FOOTERPADDINGLEFT ),
- HFMAP( "FooterRightBorderDistance", XML_NAMESPACE_FO, XML_PADDING_RIGHT, XML_TYPE_MEASURE, CTF_PM_FOOTERPADDINGRIGHT ),
- HFMAP( "FooterShadowFormat", XML_NAMESPACE_STYLE, XML_SHADOW, XML_TYPE_TEXT_SHADOW, CTF_PM_FOOTERFLAG ),
- HFMAP( "FooterBackColor", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT | MID_FLAG_MULTI_PROPERTY, CTF_PM_FOOTERFLAG ),
- HFMAP( "FooterBackTransparent", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT | MID_FLAG_MERGE_ATTRIBUTE, CTF_PM_FOOTERFLAG ),
- HFMAP( "FooterBackGraphicLocation", XML_NAMESPACE_STYLE, XML_POSITION, XML_TYPE_BUILDIN_CMP_ONLY | MID_FLAG_SPECIAL_ITEM, CTF_PM_FOOTERGRAPHICPOSITION ),
- HFMAP( "FooterBackGraphicFilter", XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TYPE_STRING | MID_FLAG_SPECIAL_ITEM, CTF_PM_FOOTERGRAPHICFILTER ),
- HFMAP( "FooterBackGraphicURL", XML_NAMESPACE_STYLE, XML_BACKGROUND_IMAGE, XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM, CTF_PM_FOOTERGRAPHICURL ),
- HFMAP( "FooterDynamicSpacing", XML_NAMESPACE_STYLE, XML_DYNAMIC_SPACING, XML_TYPE_BOOL, CTF_PM_FOOTERFLAG ),
-
- { 0L, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010 }
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PagePropertySetContext.cxx b/xmloff/source/style/PagePropertySetContext.cxx
deleted file mode 100644
index fdd93d79d2..0000000000
--- a/xmloff/source/style/PagePropertySetContext.cxx
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include "PagePropertySetContext.hxx"
-#include "XMLBackgroundImageContext.hxx"
-#include "XMLTextColumnsContext.hxx"
-#include <xmloff/PageMasterStyleMap.hxx>
-#include "XMLFootnoteSeparatorImport.hxx"
-
-using ::rtl::OUString;
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star;
-
-PagePropertySetContext::PagePropertySetContext(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
- sal_uInt32 nFam,
- ::std::vector< XMLPropertyState > &rProps,
- const UniReference < SvXMLImportPropertyMapper > &rMap,
- sal_Int32 nStartIndex, sal_Int32 nEndIndex,
- const PageContextType aTempType ) :
- SvXMLPropertySetContext( rImport, nPrfx, rLName, xAttrList, nFam,
- rProps, rMap, nStartIndex, nEndIndex )
-{
- aType = aTempType;
-}
-
-PagePropertySetContext::~PagePropertySetContext()
-{
-}
-
-SvXMLImportContext *PagePropertySetContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
- ::std::vector< XMLPropertyState > &rProperties,
- const XMLPropertyState& rProp )
-{
- sal_Int32 nPos = CTF_PM_GRAPHICPOSITION;
- sal_Int32 nFil = CTF_PM_GRAPHICFILTER;
- switch ( aType )
- {
- case Header:
- {
- nPos = CTF_PM_HEADERGRAPHICPOSITION;
- nFil = CTF_PM_HEADERGRAPHICFILTER;
- }
- break;
- case Footer:
- {
- nPos = CTF_PM_FOOTERGRAPHICPOSITION;
- nFil = CTF_PM_FOOTERGRAPHICFILTER;
- }
- break;
- default:
- break;
- }
- SvXMLImportContext *pContext = 0;
-
- switch( mxMapper->getPropertySetMapper()
- ->GetEntryContextId( rProp.mnIndex ) )
- {
- case CTF_PM_GRAPHICURL:
- case CTF_PM_HEADERGRAPHICURL:
- case CTF_PM_FOOTERGRAPHICURL:
- DBG_ASSERT( rProp.mnIndex >= 2 &&
- nPos == mxMapper->getPropertySetMapper()
- ->GetEntryContextId( rProp.mnIndex-2 ) &&
- nFil == mxMapper->getPropertySetMapper()
- ->GetEntryContextId( rProp.mnIndex-1 ),
- "invalid property map!");
- (void)nPos;
- (void)nFil;
- pContext =
- new XMLBackgroundImageContext( GetImport(), nPrefix,
- rLocalName, xAttrList,
- rProp,
- rProp.mnIndex-2,
- rProp.mnIndex-1,
- -1,
- rProperties );
- break;
-
- case CTF_PM_TEXTCOLUMNS:
- pContext = new XMLTextColumnsContext( GetImport(), nPrefix,
- rLocalName, xAttrList, rProp,
- rProperties );
- break;
-
- case CTF_PM_FTN_LINE_WEIGTH:
- pContext = new XMLFootnoteSeparatorImport(
- GetImport(), nPrefix, rLocalName, rProperties,
- mxMapper->getPropertySetMapper(), rProp.mnIndex);
- break;
- }
-
- if( !pContext )
- pContext = SvXMLPropertySetContext::CreateChildContext( nPrefix, rLocalName,
- xAttrList,
- rProperties, rProp );
-
- return pContext;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/PagePropertySetContext.hxx b/xmloff/source/style/PagePropertySetContext.hxx
deleted file mode 100644
index 5d9003afb1..0000000000
--- a/xmloff/source/style/PagePropertySetContext.hxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PAGEPROPERTYSETCONTEXT_HXX
-#define _XMLOFF_PAGEPROPERTYSETCONTEXT_HXX
-
-#include <xmloff/xmlprcon.hxx>
-
-enum PageContextType
-{
- Page,
- Header,
- Footer
-};
-
-class PagePropertySetContext : public SvXMLPropertySetContext
-{
- PageContextType aType;
-
-public:
- PagePropertySetContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const ::rtl::OUString& rLName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList >& xAttrList,
- sal_uInt32 nFam,
- ::std::vector< XMLPropertyState > &rProps,
- const UniReference < SvXMLImportPropertyMapper > &rMap,
- sal_Int32 nStartIndex, sal_Int32 nEndIndex,
- const PageContextType aType );
-
- virtual ~PagePropertySetContext();
-
- using SvXMLPropertySetContext::CreateChildContext;
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const ::rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList,
- ::std::vector< XMLPropertyState > &rProperties,
- const XMLPropertyState& rProp);
-};
-
-
-#endif // _XMLOFF_XMLTEXTPROPERTYSETCONTEXT_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/SinglePropertySetInfoCache.cxx b/xmloff/source/style/SinglePropertySetInfoCache.cxx
deleted file mode 100644
index 07154be303..0000000000
--- a/xmloff/source/style/SinglePropertySetInfoCache.cxx
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <cppuhelper/weakref.hxx>
-
-#include <xmloff/SinglePropertySetInfoCache.hxx>
-
-using namespace ::com::sun::star::uno;
-using ::com::sun::star::lang::XTypeProvider;
-using ::com::sun::star::beans::XPropertySet;
-using ::com::sun::star::beans::XPropertySetInfo;
-
-sal_Bool SinglePropertySetInfoCache::hasProperty(
- const Reference< XPropertySet >& rPropSet,
- Reference< XPropertySetInfo >& rPropSetInfo )
-{
- if( !rPropSetInfo.is() )
- rPropSetInfo = rPropSet->getPropertySetInfo();
- sal_Bool bRet = sal_False, bValid = sal_False;
- Reference < XTypeProvider > xTypeProv( rPropSet, UNO_QUERY );
- Sequence< sal_Int8 > aImplId;
- if( xTypeProv.is() )
- {
- aImplId = xTypeProv->getImplementationId();
- if( aImplId.getLength() == 16 )
- {
- // The key must not be created outside this block, because it
- // keeps a reference to the property set info.
- PropertySetInfoKey aKey( rPropSetInfo, aImplId );
- iterator aIter = find( aKey );
- if( aIter != end() )
- {
- bRet = (*aIter).second;
- bValid = sal_True;
- }
- }
- }
- if( !bValid )
- {
- bRet = rPropSetInfo->hasPropertyByName( sName );
- if( xTypeProv.is() && aImplId.getLength() == 16 )
- {
- // Check whether the property set info is destroyed if it is
- // assigned to a weak reference only. If it is destroyed, then
- // every instance of getPropertySetInfo returns a new object.
- // Such property set infos must not be cached.
- WeakReference < XPropertySetInfo > xWeakInfo( rPropSetInfo );
- rPropSetInfo = 0;
- rPropSetInfo = xWeakInfo;
- if( rPropSetInfo.is() )
- {
- PropertySetInfoKey aKey( rPropSetInfo, aImplId );
- value_type aValue( aKey, bRet );
- insert( aValue );
- }
- }
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/StyleMap.cxx b/xmloff/source/style/StyleMap.cxx
deleted file mode 100644
index 441d204900..0000000000
--- a/xmloff/source/style/StyleMap.cxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <osl/mutex.hxx>
-#include <rtl/memory.h>
-#include <comphelper/servicehelper.hxx>
-
-#include "StyleMap.hxx"
-
-using namespace ::osl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-
-
-StyleMap::StyleMap()
-{
-}
-
-
-
-StyleMap::~StyleMap()
-{
-}
-
-namespace
-{
- class theStyleMapUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theStyleMapUnoTunnelId> {};
-}
-
-// XUnoTunnel & co
-const Sequence< sal_Int8 > & StyleMap::getUnoTunnelId() throw()
-{
- return theStyleMapUnoTunnelId::get().getSeq();
-}
-
-StyleMap* StyleMap::getImplementation( Reference< XInterface > xInt ) throw()
-{
- Reference< XUnoTunnel > xUT( xInt, UNO_QUERY );
- if( xUT.is() )
- return reinterpret_cast<StyleMap *>(
- xUT->getSomething( StyleMap::getUnoTunnelId() ) );
- else
- return 0;
-}
-
-// XUnoTunnel
-sal_Int64 SAL_CALL StyleMap::getSomething(
- const Sequence< sal_Int8 >& rId )
- throw( RuntimeException )
-{
- if( rId.getLength() == 16 &&
- 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
- rId.getConstArray(), 16 ) )
- {
- return reinterpret_cast<sal_Int64>( this );
- }
- return 0;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/TransGradientStyle.cxx b/xmloff/source/style/TransGradientStyle.cxx
deleted file mode 100644
index 9bd4618312..0000000000
--- a/xmloff/source/style/TransGradientStyle.cxx
+++ /dev/null
@@ -1,328 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "TransGradientStyle.hxx"
-#include <com/sun/star/awt/Gradient.hpp>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-#include <tools/debug.hxx>
-#include <xmloff/xmltkmap.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlimp.hxx>
-
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_GRADIENT_NAME,
- XML_TOK_GRADIENT_DISPLAY_NAME,
- XML_TOK_GRADIENT_STYLE,
- XML_TOK_GRADIENT_CX,
- XML_TOK_GRADIENT_CY,
- XML_TOK_GRADIENT_START,
- XML_TOK_GRADIENT_END,
- XML_TOK_GRADIENT_ANGLE,
- XML_TOK_GRADIENT_BORDER,
- XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN
-};
-
-
-SvXMLEnumMapEntry const pXML_GradientStyle_Enum[] =
-{
- { XML_GRADIENTSTYLE_LINEAR, awt::GradientStyle_LINEAR },
- { XML_GRADIENTSTYLE_AXIAL, awt::GradientStyle_AXIAL },
- { XML_GRADIENTSTYLE_RADIAL, awt::GradientStyle_RADIAL },
- { XML_GRADIENTSTYLE_ELLIPSOID, awt::GradientStyle_ELLIPTICAL },
- { XML_GRADIENTSTYLE_SQUARE, awt::GradientStyle_SQUARE },
- { XML_GRADIENTSTYLE_RECTANGULAR, awt::GradientStyle_RECT },
- { XML_TOKEN_INVALID, 0 }
-};
-
-
-//-------------------------------------------------------------
-// Import
-//-------------------------------------------------------------
-
-XMLTransGradientStyleImport::XMLTransGradientStyleImport( SvXMLImport& rImp )
- : rImport(rImp)
-{
-}
-
-XMLTransGradientStyleImport::~XMLTransGradientStyleImport()
-{
-}
-
-sal_Bool XMLTransGradientStyleImport::importXML(
- const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- uno::Any& rValue,
- OUString& rStrName )
-{
- sal_Bool bRet = sal_False;
- sal_Bool bHasName = sal_False;
- sal_Bool bHasStyle = sal_False;
- OUString aDisplayName;
-
- awt::Gradient aGradient;
- aGradient.XOffset = 0;
- aGradient.YOffset = 0;
- aGradient.StartIntensity = 100;
- aGradient.EndIntensity = 100;
- aGradient.Angle = 0;
- aGradient.Border = 0;
-
- {
- static SvXMLTokenMapEntry aTrGradientAttrTokenMap[] =
-{
- { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME },
- { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME },
- { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE },
- { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX },
- { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY },
- { XML_NAMESPACE_DRAW, XML_START, XML_TOK_GRADIENT_START },
- { XML_NAMESPACE_DRAW, XML_END, XML_TOK_GRADIENT_END },
- { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE },
- { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER },
- XML_TOKEN_MAP_END
-};
-
- SvXMLTokenMap aTokenMap( aTrGradientAttrTokenMap );
- SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap();
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rFullAttrName = xAttrList->getNameByIndex( i );
- OUString aStrAttrName;
- sal_uInt16 nPrefix = rNamespaceMap.GetKeyByAttrName( rFullAttrName, &aStrAttrName );
- const OUString& rStrValue = xAttrList->getValueByIndex( i );
-
- sal_Int32 nTmpValue;
-
- switch( aTokenMap.Get( nPrefix, aStrAttrName ) )
- {
- case XML_TOK_GRADIENT_NAME:
- {
- rStrName = rStrValue;
- bHasName = sal_True;
- }
- break;
- case XML_TOK_GRADIENT_DISPLAY_NAME:
- {
- aDisplayName = rStrValue;
- }
- break;
- case XML_TOK_GRADIENT_STYLE:
- {
- sal_uInt16 eValue;
- if( SvXMLUnitConverter::convertEnum( eValue, rStrValue, pXML_GradientStyle_Enum ) )
- {
- aGradient.Style = (awt::GradientStyle) eValue;
- bHasStyle = sal_True;
- }
- }
- break;
- case XML_TOK_GRADIENT_CX:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.XOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
- break;
- case XML_TOK_GRADIENT_CY:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.YOffset = sal::static_int_cast< sal_Int16 >(nTmpValue);
- break;
- case XML_TOK_GRADIENT_START:
- {
- sal_Int32 aStartTransparency;
- SvXMLUnitConverter::convertPercent( aStartTransparency, rStrValue );
-
- sal_uInt8 n = sal::static_int_cast< sal_uInt8 >(
- ( (100 - aStartTransparency) * 255 ) / 100 );
-
- Color aColor( n, n, n );
- aGradient.StartColor = (sal_Int32)( aColor.GetColor() );
- }
- break;
- case XML_TOK_GRADIENT_END:
- {
- sal_Int32 aEndTransparency;
- SvXMLUnitConverter::convertPercent( aEndTransparency, rStrValue );
-
- sal_uInt8 n = sal::static_int_cast< sal_uInt8 >(
- ( (100 - aEndTransparency) * 255 ) / 100 );
-
- Color aColor( n, n, n );
- aGradient.EndColor = (sal_Int32)( aColor.GetColor() );
- }
- break;
- case XML_TOK_GRADIENT_ANGLE:
- {
- sal_Int32 nValue;
- SvXMLUnitConverter::convertNumber( nValue, rStrValue, 0, 3600 );
- aGradient.Angle = sal_Int16( nValue );
- }
- break;
- case XML_TOK_GRADIENT_BORDER:
- SvXMLUnitConverter::convertPercent( nTmpValue, rStrValue );
- aGradient.Border = sal::static_int_cast< sal_Int16 >(nTmpValue);
- break;
-
- default:
- DBG_WARNING( "Unknown token at import transparency gradient style" )
- ;
- }
- }
-
- rValue <<= aGradient;
-
- if( aDisplayName.getLength() )
- {
- rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_GRADIENT_ID, rStrName,
- aDisplayName );
- rStrName = aDisplayName;
- }
-
- bRet = bHasName && bHasStyle;
-
- }
-
- return bRet;
-}
-
-
-//-------------------------------------------------------------
-// Export
-//-------------------------------------------------------------
-
-XMLTransGradientStyleExport::XMLTransGradientStyleExport( SvXMLExport& rExp )
- : rExport(rExp)
-{
-}
-
-XMLTransGradientStyleExport::~XMLTransGradientStyleExport()
-{
-}
-
-
-sal_Bool XMLTransGradientStyleExport::exportXML(
- const OUString& rStrName,
- const uno::Any& rValue )
-{
- sal_Bool bRet = sal_False;
- awt::Gradient aGradient;
-
- if( rStrName.getLength() )
- {
- if( rValue >>= aGradient )
- {
- OUString aStrValue;
- OUStringBuffer aOut;
-
- // Style
- if( !SvXMLUnitConverter::convertEnum( aOut, aGradient.Style, pXML_GradientStyle_Enum ) )
- {
- bRet = sal_False;
- }
- else
- {
- // Name
- sal_Bool bEncoded = sal_False;
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME,
- rExport.EncodeStyleName( rStrName,
- &bEncoded ) );
- if( bEncoded )
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_DISPLAY_NAME,
- rStrName );
-
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE, aStrValue );
-
- // Center x/y
- if( aGradient.Style != awt::GradientStyle_LINEAR &&
- aGradient.Style != awt::GradientStyle_AXIAL )
- {
- SvXMLUnitConverter::convertPercent( aOut, aGradient.XOffset );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_CX, aStrValue );
-
- SvXMLUnitConverter::convertPercent( aOut, aGradient.YOffset );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_CY, aStrValue );
- }
-
-
- Color aColor;
-
- // Transparency start
- aColor.SetColor( aGradient.StartColor );
- sal_Int32 aStartValue = 100 - (sal_Int32)(((aColor.GetRed() + 1) * 100) / 255);
- SvXMLUnitConverter::convertPercent( aOut, aStartValue );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_START, aStrValue );
-
- // Transparency end
- aColor.SetColor( aGradient.EndColor );
- sal_Int32 aEndValue = 100 - (sal_Int32)(((aColor.GetRed() + 1) * 100) / 255);
- SvXMLUnitConverter::convertPercent( aOut, aEndValue );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_END, aStrValue );
-
- // Angle
- if( aGradient.Style != awt::GradientStyle_RADIAL )
- {
- SvXMLUnitConverter::convertNumber( aOut, sal_Int32( aGradient.Angle ) );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, aStrValue );
- }
-
- // Border
- SvXMLUnitConverter::convertPercent( aOut, aGradient.Border );
- aStrValue = aOut.makeStringAndClear();
- rExport.AddAttribute( XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, aStrValue );
-
- // Do Write
- SvXMLElementExport rElem( rExport,
- XML_NAMESPACE_DRAW, XML_OPACITY,
- sal_True, sal_False );
- }
- }
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/VisAreaContext.cxx b/xmloff/source/style/VisAreaContext.cxx
deleted file mode 100644
index c0c790262c..0000000000
--- a/xmloff/source/style/VisAreaContext.cxx
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-
-
-// INCLUDE ---------------------------------------------------------------
-#include "xmloff/VisAreaContext.hxx"
-#include <xmloff/xmltoken.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <tools/gen.hxx>
-
-using namespace com::sun::star;
-using namespace ::xmloff::token;
-
-//------------------------------------------------------------------
-
-XMLVisAreaContext::XMLVisAreaContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList,
- Rectangle& rRect, const MapUnit aMapUnit ) :
- SvXMLImportContext( rImport, nPrfx, rLName )
-{
- awt::Rectangle rAwtRect( rRect.getX(), rRect.getY(), rRect.getWidth(), rRect.getHeight() );
- process( xAttrList, rAwtRect, (sal_Int16)aMapUnit );
-
- rRect.setX( rAwtRect.X );
- rRect.setY( rAwtRect.Y );
- rRect.setWidth( rAwtRect.Width );
- rRect.setHeight( rAwtRect.Height );
-}
-
-XMLVisAreaContext::XMLVisAreaContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList,
- ::com::sun::star::awt::Rectangle& rRect, const sal_Int16 nMeasureUnit ) :
- SvXMLImportContext( rImport, nPrfx, rLName )
-{
- process( xAttrList, rRect, nMeasureUnit );
-}
-
-XMLVisAreaContext::~XMLVisAreaContext()
-{
-}
-
-void XMLVisAreaContext::process( const uno::Reference< xml::sax::XAttributeList>& xAttrList, awt::Rectangle& rRect, const sal_Int16 nMeasureUnit )
-{
- MapUnit aMapUnit = (MapUnit)nMeasureUnit;
-
- sal_Int32 nX(0);
- sal_Int32 nY(0);
- sal_Int32 nWidth(0);
- sal_Int32 nHeight(0);
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- rtl::OUString sAttrName = xAttrList->getNameByIndex( i );
- rtl::OUString aLocalName;
- sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName(
- sAttrName, &aLocalName );
- rtl::OUString sValue = xAttrList->getValueByIndex( i );
-
- if (nPrefix == XML_NAMESPACE_OFFICE)
- {
- if (IsXMLToken( aLocalName, XML_X ))
- {
- SvXMLUnitConverter::convertMeasure(nX, sValue, aMapUnit);
- rRect.X = nX;
- }
- else if (IsXMLToken( aLocalName, XML_Y ))
- {
- SvXMLUnitConverter::convertMeasure(nY, sValue, aMapUnit);
- rRect.Y = nY;
- }
- else if (IsXMLToken( aLocalName, XML_WIDTH ))
- {
- SvXMLUnitConverter::convertMeasure(nWidth, sValue, aMapUnit);
- rRect.Width = nWidth;
- }
- else if (IsXMLToken( aLocalName, XML_HEIGHT ))
- {
- SvXMLUnitConverter::convertMeasure(nHeight, sValue, aMapUnit);
- rRect.Height = nHeight;
- }
- }
- }
-}
-
-SvXMLImportContext *XMLVisAreaContext::CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& )
-{
- // here is no context
- SvXMLImportContext *pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
-
- return pContext;
-}
-
-void XMLVisAreaContext::EndElement()
-{
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/WordWrapPropertyHdl.cxx b/xmloff/source/style/WordWrapPropertyHdl.cxx
deleted file mode 100644
index a8168c4b47..0000000000
--- a/xmloff/source/style/WordWrapPropertyHdl.cxx
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/WordWrapPropertyHdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <comphelper/extract.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLWordWrapPropertyHdl
-//
-
-XMLWordWrapPropertyHdl::XMLWordWrapPropertyHdl( SvXMLImport* pImport )
-: mpImport( pImport )
-{
-}
-
-XMLWordWrapPropertyHdl::~XMLWordWrapPropertyHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLWordWrapPropertyHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bValue = sal_False, bRetValue = sal_False;
- if( rStrImpValue == GetXMLToken( xmloff::token::XML_WRAP ) )
- {
- bValue = sal_True;
- bRetValue = sal_True;
- }
- if( rStrImpValue == GetXMLToken( xmloff::token::XML_NO_WRAP ) )
- {
- bValue = sal_False;
- bRetValue = sal_True;
- }
- if ( bRetValue && mpImport )
- {
- sal_Int32 nUPD, nBuildId;
- if( mpImport->getBuildIds( nUPD, nBuildId ) )
- {
- if( nUPD == 300 )
- {
- if( ( nBuildId > 0 ) && (nBuildId < 9316 ) )
- bValue = bValue ? sal_False : sal_True; // treat OOo 3.0 beta1 as OOo 2.x
- }
- else if( ( nUPD == 680 ) || ( nUPD >= 640 && nUPD <= 645 ) )
- bValue = bValue ? sal_False : sal_True;
- }
- rValue <<= bValue;
- }
- return bRetValue;
-}
-
-sal_Bool XMLWordWrapPropertyHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- if( ::cppu::any2bool( rValue ) )
- {
- rStrExpValue = GetXMLToken( xmloff::token::XML_WRAP );
- }
- else
- {
- rStrExpValue = GetXMLToken( xmloff::token::XML_NO_WRAP );
- }
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLBackgroundImageContext.cxx b/xmloff/source/style/XMLBackgroundImageContext.cxx
deleted file mode 100644
index 4306146b09..0000000000
--- a/xmloff/source/style/XMLBackgroundImageContext.cxx
+++ /dev/null
@@ -1,417 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <xmloff/xmltkmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/XMLBase64ImportContext.hxx>
-#include "XMLBackgroundImageContext.hxx"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::io;
-using namespace ::xmloff::token;
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_BGIMG_HREF,
- XML_TOK_BGIMG_TYPE,
- XML_TOK_BGIMG_ACTUATE,
- XML_TOK_BGIMG_SHOW,
- XML_TOK_BGIMG_POSITION,
- XML_TOK_BGIMG_REPEAT,
- XML_TOK_BGIMG_FILTER,
- XML_TOK_BGIMG_OPACITY,
- XML_TOK_NGIMG_END=XML_TOK_UNKNOWN
-};
-const SvXMLTokenMapEntry* lcl_getBGImgAttributesAttrTokenMap()
-{
- static SvXMLTokenMapEntry aBGImgAttributesAttrTokenMap[] =
- {
- { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_BGIMG_HREF },
- { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_BGIMG_TYPE },
- { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_BGIMG_ACTUATE },
- { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_BGIMG_SHOW },
- { XML_NAMESPACE_STYLE, XML_POSITION, XML_TOK_BGIMG_POSITION },
- { XML_NAMESPACE_STYLE, XML_REPEAT, XML_TOK_BGIMG_REPEAT },
- { XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TOK_BGIMG_FILTER },
- { XML_NAMESPACE_DRAW, XML_OPACITY, XML_TOK_BGIMG_OPACITY },
- XML_TOKEN_MAP_END
- };
- return aBGImgAttributesAttrTokenMap;
-}
-
-
-
-SvXMLEnumMapEntry psXML_BrushHoriPos[] =
-{
- { XML_LEFT, GraphicLocation_LEFT_MIDDLE },
- { XML_RIGHT, GraphicLocation_RIGHT_MIDDLE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry psXML_BrushVertPos[] =
-{
- { XML_TOP, GraphicLocation_MIDDLE_TOP },
- { XML_BOTTOM, GraphicLocation_MIDDLE_BOTTOM },
- { XML_TOKEN_INVALID, 0 }
-};
-
-void lcl_xmlbic_MergeHoriPos( GraphicLocation& ePos,
- GraphicLocation eHori )
-{
- DBG_ASSERT( GraphicLocation_LEFT_MIDDLE==eHori ||
- GraphicLocation_MIDDLE_MIDDLE==eHori ||
- GraphicLocation_RIGHT_MIDDLE==eHori,
- "lcl_xmlbic_MergeHoriPos: vertical pos must be middle" );
-
- switch( ePos )
- {
- case GraphicLocation_LEFT_TOP:
- case GraphicLocation_MIDDLE_TOP:
- case GraphicLocation_RIGHT_TOP:
- ePos = GraphicLocation_LEFT_MIDDLE==eHori
- ? GraphicLocation_LEFT_TOP
- : (GraphicLocation_MIDDLE_MIDDLE==eHori
- ? GraphicLocation_MIDDLE_TOP
- : GraphicLocation_RIGHT_TOP);
- break;
-
- case GraphicLocation_LEFT_MIDDLE:
- case GraphicLocation_MIDDLE_MIDDLE:
- case GraphicLocation_RIGHT_MIDDLE:
- ePos = eHori;
- break;
-
- case GraphicLocation_LEFT_BOTTOM:
- case GraphicLocation_MIDDLE_BOTTOM:
- case GraphicLocation_RIGHT_BOTTOM:
- ePos = GraphicLocation_LEFT_MIDDLE==eHori
- ? GraphicLocation_LEFT_BOTTOM
- : (GraphicLocation_MIDDLE_MIDDLE==eHori
- ? GraphicLocation_MIDDLE_BOTTOM
- : GraphicLocation_RIGHT_BOTTOM);
- break;
- default:
- break;
- }
-}
-
-void lcl_xmlbic_MergeVertPos( GraphicLocation& ePos,
- GraphicLocation eVert )
-{
- DBG_ASSERT( GraphicLocation_MIDDLE_TOP==eVert ||
- GraphicLocation_MIDDLE_MIDDLE==eVert ||
- GraphicLocation_MIDDLE_BOTTOM==eVert,
- "lcl_xmlbic_MergeVertPos: horizontal pos must be middle" );
-
- switch( ePos )
- {
- case GraphicLocation_LEFT_TOP:
- case GraphicLocation_LEFT_MIDDLE:
- case GraphicLocation_LEFT_BOTTOM:
- ePos = GraphicLocation_MIDDLE_TOP==eVert
- ? GraphicLocation_LEFT_TOP
- : (GraphicLocation_MIDDLE_MIDDLE==eVert
- ? GraphicLocation_LEFT_MIDDLE
- : GraphicLocation_LEFT_BOTTOM);
- ePos = eVert;
- break;
-
- case GraphicLocation_MIDDLE_TOP:
- case GraphicLocation_MIDDLE_MIDDLE:
- case GraphicLocation_MIDDLE_BOTTOM:
- ePos = eVert;
- break;
-
- case GraphicLocation_RIGHT_TOP:
- case GraphicLocation_RIGHT_MIDDLE:
- case GraphicLocation_RIGHT_BOTTOM:
- ePos = GraphicLocation_MIDDLE_TOP==eVert
- ? GraphicLocation_RIGHT_TOP
- : (GraphicLocation_MIDDLE_MIDDLE==eVert
- ? GraphicLocation_RIGHT_MIDDLE
- : GraphicLocation_RIGHT_BOTTOM);
- break;
- default:
- break;
- }
-}
-
-TYPEINIT1( XMLBackgroundImageContext, XMLElementPropertyContext );
-
-void XMLBackgroundImageContext::ProcessAttrs(
- const Reference< xml::sax::XAttributeList >& xAttrList )
-{
- SvXMLTokenMap aTokenMap( lcl_getBGImgAttributesAttrTokenMap() );
-
- ePos = GraphicLocation_NONE;
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- switch( aTokenMap.Get( nPrefix, aLocalName ) )
- {
- case XML_TOK_BGIMG_HREF:
- sURL = rValue;
- if( GraphicLocation_NONE == ePos )
- ePos = GraphicLocation_TILED;
- break;
- case XML_TOK_BGIMG_TYPE:
- case XML_TOK_BGIMG_ACTUATE:
- case XML_TOK_BGIMG_SHOW:
- break;
- case XML_TOK_BGIMG_POSITION:
- {
- GraphicLocation eNewPos = GraphicLocation_NONE, eTmp;
- sal_uInt16 nTmp;
- SvXMLTokenEnumerator aTokenEnum( rValue );
- OUString aToken;
- sal_Bool bHori = sal_False, bVert = sal_False;
- sal_Bool bOK = sal_True;
- while( bOK && aTokenEnum.getNextToken( aToken ) )
- {
- if( bHori && bVert )
- {
- bOK = sal_False;
- }
- else if( -1 != aToken.indexOf( sal_Unicode('%') ) )
- {
- sal_Int32 nPrc = 50;
- if( SvXMLUnitConverter::convertPercent( nPrc, aToken ) )
- {
- if( !bHori )
- {
- eNewPos = nPrc < 25
- ? GraphicLocation_LEFT_TOP
- : (nPrc < 75 ? GraphicLocation_MIDDLE_MIDDLE
- : GraphicLocation_RIGHT_BOTTOM);
- bHori = sal_True;
- }
- else
- {
- eTmp = nPrc < 25
- ? GraphicLocation_LEFT_TOP
- : (nPrc < 75 ? GraphicLocation_LEFT_MIDDLE
- : GraphicLocation_LEFT_BOTTOM);
- lcl_xmlbic_MergeVertPos( eNewPos, eTmp );
- bVert = sal_True;
- }
- }
- else
- {
- // wrong percentage
- bOK = sal_False;
- }
- }
- else if( IsXMLToken( aToken, XML_CENTER ) )
- {
- if( bHori )
- lcl_xmlbic_MergeVertPos( eNewPos,
- GraphicLocation_MIDDLE_MIDDLE );
- else if ( bVert )
- lcl_xmlbic_MergeHoriPos( eNewPos,
- GraphicLocation_MIDDLE_MIDDLE );
- else
- eNewPos = GraphicLocation_MIDDLE_MIDDLE;
- }
- else if( SvXMLUnitConverter::convertEnum( nTmp, aToken,
- psXML_BrushHoriPos ) )
- {
- if( bVert )
- lcl_xmlbic_MergeHoriPos( eNewPos,
- (GraphicLocation)nTmp );
- else if( !bHori )
- eNewPos = (GraphicLocation)nTmp;
- else
- bOK = sal_False;
- bHori = sal_True;
- }
- else if( SvXMLUnitConverter::convertEnum( nTmp, aToken,
- psXML_BrushVertPos ) )
- {
- if( bHori )
- lcl_xmlbic_MergeVertPos( eNewPos,
- (GraphicLocation)nTmp );
- else if( !bVert )
- eNewPos = (GraphicLocation)nTmp;
- else
- bOK = sal_False;
- bVert = sal_True;
- }
- else
- {
- bOK = sal_False;
- }
- }
-
- bOK &= GraphicLocation_NONE != eNewPos;
- if( bOK )
- ePos = eNewPos;
- }
- break;
- case XML_TOK_BGIMG_REPEAT:
- {
- sal_uInt16 nPos = GraphicLocation_NONE;
- static SvXMLEnumMapEntry psXML_BrushRepeat[] =
- {
- { XML_BACKGROUND_REPEAT, GraphicLocation_TILED },
- { XML_BACKGROUND_NO_REPEAT, GraphicLocation_MIDDLE_MIDDLE },
- { XML_BACKGROUND_STRETCH, GraphicLocation_AREA },
- { XML_TOKEN_INVALID, 0 }
- };
- if( SvXMLUnitConverter::convertEnum( nPos, rValue,
- psXML_BrushRepeat ) )
- {
- if( GraphicLocation_MIDDLE_MIDDLE != nPos ||
- GraphicLocation_NONE == ePos ||
- GraphicLocation_AREA == ePos ||
- GraphicLocation_TILED == ePos )
- ePos = (GraphicLocation)nPos;
- }
- }
- break;
- case XML_TOK_BGIMG_FILTER:
- sFilter = rValue;
- break;
- case XML_TOK_BGIMG_OPACITY:
- {
- sal_Int32 nTmp;
- // convert from percent and clip
- if( SvXMLUnitConverter::convertPercent( nTmp, rValue ) )
- {
- if( (nTmp >= 0) && (nTmp <= 100) )
- nTransparency = static_cast<sal_Int8>( 100-nTmp );
- }
- }
- break;
- }
- }
-
-}
-
-XMLBackgroundImageContext::XMLBackgroundImageContext(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
- const XMLPropertyState& rProp,
- sal_Int32 nPosIdx,
- sal_Int32 nFilterIdx,
- sal_Int32 nTransparencyIdx,
- ::std::vector< XMLPropertyState > &rProps ) :
- XMLElementPropertyContext( rImport, nPrfx, rLName, rProp, rProps ),
- aPosProp( nPosIdx ),
- aFilterProp( nFilterIdx ),
- aTransparencyProp( nTransparencyIdx ),
- nTransparency( 0 )
-{
- ProcessAttrs( xAttrList );
-}
-
-XMLBackgroundImageContext::~XMLBackgroundImageContext()
-{
-}
-
-SvXMLImportContext *XMLBackgroundImageContext::CreateChildContext(
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = NULL;
- if( (XML_NAMESPACE_OFFICE == nPrefix) &&
- xmloff::token::IsXMLToken( rLocalName,
- xmloff::token::XML_BINARY_DATA ) )
- {
- if( !sURL.getLength() && !xBase64Stream.is() )
- {
- xBase64Stream = GetImport().GetStreamForGraphicObjectURLFromBase64();
- if( xBase64Stream.is() )
- pContext = new XMLBase64ImportContext( GetImport(), nPrefix,
- rLocalName, xAttrList,
- xBase64Stream );
- }
- }
- if( !pContext )
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-
- return pContext;
-}
-
-void XMLBackgroundImageContext::EndElement()
-{
- if( sURL.getLength() )
- {
- sURL = GetImport().ResolveGraphicObjectURL( sURL, sal_False );
- }
- else if( xBase64Stream.is() )
- {
- sURL = GetImport().ResolveGraphicObjectURLFromBase64( xBase64Stream );
- xBase64Stream = 0;
- }
-
- if( !sURL.getLength() )
- ePos = GraphicLocation_NONE;
- else if( GraphicLocation_NONE == ePos )
- ePos = GraphicLocation_TILED;
-
- aProp.maValue <<= sURL;
- aPosProp.maValue <<= ePos;
- aFilterProp.maValue <<= sFilter;
- aTransparencyProp.maValue <<= nTransparency;
-
- SetInsert( sal_True );
- XMLElementPropertyContext::EndElement();
-
- if( -1 != aPosProp.mnIndex )
- rProperties.push_back( aPosProp );
- if( -1 != aFilterProp.mnIndex )
- rProperties.push_back( aFilterProp );
- if( -1 != aTransparencyProp.mnIndex )
- rProperties.push_back( aTransparencyProp );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLBackgroundImageExport.cxx b/xmloff/source/style/XMLBackgroundImageExport.cxx
deleted file mode 100644
index d01b3663bb..0000000000
--- a/xmloff/source/style/XMLBackgroundImageExport.cxx
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/style/GraphicLocation.hpp>
-
-#include <xmloff/xmlnmspe.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/xmlexp.hxx>
-#include "XMLBackgroundImageExport.hxx"
-#include <xmloff/xmluconv.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::xmloff::token;
-
-XMLBackgroundImageExport::XMLBackgroundImageExport( SvXMLExport& rExp ) :
- rExport( rExp )
-{
-}
-
-XMLBackgroundImageExport::~XMLBackgroundImageExport()
-{
-}
-
-void XMLBackgroundImageExport::exportXML( const Any& rURL,
- const Any *pPos,
- const Any *pFilter,
- const Any *pTransparency,
- sal_uInt16 nPrefix,
- const ::rtl::OUString& rLocalName )
-{
- GraphicLocation ePos;
- if( !(pPos && ((*pPos) >>= ePos)) )
- ePos = GraphicLocation_AREA;
-
- OUString sURL;
- rURL >>= sURL;
- if( sURL.getLength() && GraphicLocation_NONE != ePos )
- {
- OUString sTempURL( GetExport().AddEmbeddedGraphicObject( sURL ) );
- if( sTempURL.getLength() )
- {
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, sTempURL );
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE,
- XML_SIMPLE );
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE,
- XML_ONLOAD );
- }
-
- OUStringBuffer aOut;
- switch( ePos )
- {
- case GraphicLocation_LEFT_TOP:
- case GraphicLocation_MIDDLE_TOP:
- case GraphicLocation_RIGHT_TOP:
- aOut.append( GetXMLToken(XML_TOP) );
- break;
- case GraphicLocation_LEFT_MIDDLE:
- case GraphicLocation_MIDDLE_MIDDLE:
- case GraphicLocation_RIGHT_MIDDLE:
- aOut.append( GetXMLToken(XML_CENTER) );
- break;
- case GraphicLocation_LEFT_BOTTOM:
- case GraphicLocation_MIDDLE_BOTTOM:
- case GraphicLocation_RIGHT_BOTTOM:
- aOut.append( GetXMLToken(XML_BOTTOM) );
- break;
- default:
- break;
- }
-
- if( aOut.getLength() )
- {
- aOut.append( sal_Unicode( ' ' ) );
-
- switch( ePos )
- {
- case GraphicLocation_LEFT_TOP:
- case GraphicLocation_LEFT_BOTTOM:
- case GraphicLocation_LEFT_MIDDLE:
- aOut.append( GetXMLToken(XML_LEFT) );
- break;
- case GraphicLocation_MIDDLE_TOP:
- case GraphicLocation_MIDDLE_MIDDLE:
- case GraphicLocation_MIDDLE_BOTTOM:
- aOut.append( GetXMLToken(XML_CENTER) );
- break;
- case GraphicLocation_RIGHT_MIDDLE:
- case GraphicLocation_RIGHT_TOP:
- case GraphicLocation_RIGHT_BOTTOM:
- aOut.append( GetXMLToken(XML_RIGHT) );
- break;
- default:
- break;
- }
- }
- if( aOut.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_POSITION, aOut.makeStringAndClear() );
-
- if( GraphicLocation_AREA == ePos )
- {
- aOut.append( GetXMLToken(XML_BACKGROUND_STRETCH) );
- }
- else if( GraphicLocation_NONE != ePos && GraphicLocation_TILED != ePos )
- {
- aOut.append( GetXMLToken(XML_BACKGROUND_NO_REPEAT) );
- }
- if( aOut.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_REPEAT,
- aOut.makeStringAndClear() );
-
- if( pFilter )
- {
- OUString sFilter;
- (*pFilter) >>= sFilter;
- if( sFilter.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_FILTER_NAME,
- sFilter );
- }
-
- if( pTransparency )
- {
- sal_Int8 nTransparency = sal_Int8();
- if( (*pTransparency) >>= nTransparency )
- {
- OUStringBuffer aTransOut;
- SvXMLUnitConverter::convertPercent( aTransOut, 100-nTransparency );
- GetExport().AddAttribute( XML_NAMESPACE_DRAW, XML_OPACITY,
- aTransOut.makeStringAndClear() );
- }
- }
- }
-
- {
- SvXMLElementExport aElem( GetExport(), nPrefix, rLocalName, sal_True, sal_True );
- if( sURL.getLength() && GraphicLocation_NONE != ePos )
- {
- // optional office:binary-data
- GetExport().AddEmbeddedGraphicObjectAsBase64( sURL );
- }
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLBitmapLogicalSizePropertyHandler.cxx b/xmloff/source/style/XMLBitmapLogicalSizePropertyHandler.cxx
deleted file mode 100644
index d91570633a..0000000000
--- a/xmloff/source/style/XMLBitmapLogicalSizePropertyHandler.cxx
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include "XMLBitmapLogicalSizePropertyHandler.hxx"
-#include <comphelper/extract.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-XMLBitmapLogicalSizePropertyHandler::XMLBitmapLogicalSizePropertyHandler()
-{
-}
-
-XMLBitmapLogicalSizePropertyHandler::~XMLBitmapLogicalSizePropertyHandler()
-{
-}
-
-sal_Bool XMLBitmapLogicalSizePropertyHandler::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- rValue = ::cppu::bool2any( rStrImpValue.indexOf( sal_Unicode('%') ) == -1 );
- return sal_True;
-}
-
-sal_Bool XMLBitmapLogicalSizePropertyHandler::exportXML(
- OUString&,
- const Any&,
- const SvXMLUnitConverter& ) const
-{
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLBitmapRepeatOffsetPropertyHandler.cxx b/xmloff/source/style/XMLBitmapRepeatOffsetPropertyHandler.cxx
deleted file mode 100644
index 32639c657e..0000000000
--- a/xmloff/source/style/XMLBitmapRepeatOffsetPropertyHandler.cxx
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include "XMLBitmapRepeatOffsetPropertyHandler.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-using ::xmloff::token::GetXMLToken;
-using ::xmloff::token::XML_VERTICAL;
-using ::xmloff::token::XML_HORIZONTAL;
-
-
-XMLBitmapRepeatOffsetPropertyHandler::XMLBitmapRepeatOffsetPropertyHandler( sal_Bool bX )
-: mbX( bX ),
- msVertical( GetXMLToken(XML_VERTICAL) ),
- msHorizontal( GetXMLToken(XML_HORIZONTAL) )
-{
-}
-
-XMLBitmapRepeatOffsetPropertyHandler::~XMLBitmapRepeatOffsetPropertyHandler()
-{
-}
-
-sal_Bool XMLBitmapRepeatOffsetPropertyHandler::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- SvXMLTokenEnumerator aTokenEnum( rStrImpValue );
- OUString aToken;
- if( aTokenEnum.getNextToken( aToken ) )
- {
- sal_Int32 nValue;
- if( SvXMLUnitConverter::convertPercent( nValue, aToken ) )
- {
- if( aTokenEnum.getNextToken( aToken ) )
- {
- if( ( mbX && ( aToken == msHorizontal ) ) || ( !mbX && ( aToken == msVertical ) ) )
- {
- rValue <<= nValue;
- return sal_True;
- }
- }
- }
- }
-
- return sal_False;
-
-}
-
-sal_Bool XMLBitmapRepeatOffsetPropertyHandler::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut;
-
- sal_Int32 nValue = 0;
- if( rValue >>= nValue )
- {
- SvXMLUnitConverter::convertPercent( aOut, nValue );
- aOut.append( sal_Unicode( ' ' ) );
- aOut.append( mbX ? msHorizontal : msVertical );
- rStrExpValue = aOut.makeStringAndClear();
-
- return sal_True;
- }
-
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLClipPropertyHandler.cxx b/xmloff/source/style/XMLClipPropertyHandler.cxx
deleted file mode 100644
index 8e981b7de8..0000000000
--- a/xmloff/source/style/XMLClipPropertyHandler.cxx
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "XMLClipPropertyHandler.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/text/GraphicCrop.hpp>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmltoken.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::text;
-using namespace ::xmloff::token;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLMeasurePropHdl
-//
-
-XMLClipPropertyHandler::XMLClipPropertyHandler( sal_Bool bODF11 ) :
- m_bODF11( bODF11 )
-{
-}
-
-XMLClipPropertyHandler::~XMLClipPropertyHandler()
-{
- // nothing to do
-}
-
-bool XMLClipPropertyHandler::equals(
- const Any& r1,
- const Any& r2 ) const
-{
- GraphicCrop aCrop1, aCrop2;
- r1 >>= aCrop1;
- r2 >>= aCrop2;
-
- return aCrop1.Top == aCrop2.Top &&
- aCrop1.Bottom == aCrop2.Bottom &&
- aCrop1.Left == aCrop2.Left &&
- aCrop1.Right == aCrop2.Right;
-}
-
-sal_Bool XMLClipPropertyHandler::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nLen = rStrImpValue.getLength();
- if( nLen > 6 &&
- 0 == rStrImpValue.compareTo( GetXMLToken(XML_RECT), 4 ) &&
- rStrImpValue[4] == '(' &&
- rStrImpValue[nLen-1] == ')' )
- {
- GraphicCrop aCrop;
- OUString sTmp( rStrImpValue.copy( 5, nLen-6 ) );
-
- sal_Bool bHasComma = sTmp.indexOf( ',' ) != -1;
- SvXMLTokenEnumerator aTokenEnum( sTmp, bHasComma ? ',' : ' ' );
-
- sal_uInt16 nPos = 0;
- OUString aToken;
- while( aTokenEnum.getNextToken( aToken ) )
- {
- sal_Int32 nVal = 0;
- if( !IsXMLToken(aToken, XML_AUTO) &&
- !rUnitConverter.convertMeasure( nVal, aToken ) )
- break;
-
- switch( nPos )
- {
- case 0: aCrop.Top = nVal; break;
- case 1: aCrop.Right = nVal; break;
- case 2: aCrop.Bottom = nVal; break;
- case 3: aCrop.Left = nVal; break;
- }
- nPos++;
- }
-
- bRet = (4 == nPos );
- if( bRet )
- rValue <<= aCrop;
- }
-
- return bRet;
-}
-
-sal_Bool XMLClipPropertyHandler::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut(30);
- GraphicCrop aCrop;
-
- if( rValue >>= aCrop )
- {
- aOut.append( GetXMLToken(XML_RECT) );
- aOut.append( (sal_Unicode)'(' );
- rUnitConverter.convertMeasure( aOut, aCrop.Top );
- if( !m_bODF11 )
- aOut.append( (sal_Unicode)',' );
- aOut.append( (sal_Unicode)' ' );
- rUnitConverter.convertMeasure( aOut, aCrop.Right );
- if( !m_bODF11 )
- aOut.append( (sal_Unicode)',' );
- aOut.append( (sal_Unicode)' ' );
- rUnitConverter.convertMeasure( aOut, aCrop.Bottom );
- if( !m_bODF11 )
- aOut.append( (sal_Unicode)',' );
- aOut.append( (sal_Unicode)' ' );
- rUnitConverter.convertMeasure( aOut, aCrop.Left );
- aOut.append( (sal_Unicode)')' );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLConstantsPropertyHandler.cxx b/xmloff/source/style/XMLConstantsPropertyHandler.cxx
deleted file mode 100644
index e70aad38bc..0000000000
--- a/xmloff/source/style/XMLConstantsPropertyHandler.cxx
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <xmloff/XMLConstantsPropertyHandler.hxx>
-
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using ::xmloff::token::XMLTokenEnum;
-
-XMLConstantsPropertyHandler::XMLConstantsPropertyHandler(
- const SvXMLEnumMapEntry *pM,
- enum XMLTokenEnum eDflt ) :
- pMap( pM ),
- eDefault( eDflt )
-{
-}
-
-XMLConstantsPropertyHandler::~XMLConstantsPropertyHandler()
-{
-}
-
-sal_Bool XMLConstantsPropertyHandler::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_uInt16 nEnum;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- nEnum, rStrImpValue, pMap );
-
- if( bRet )
- rValue <<= (sal_Int16)nEnum;
-
- return bRet;
-}
-
-sal_Bool XMLConstantsPropertyHandler::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut;
-
- sal_Bool bRet = false;
-
- sal_Int32 nEnum = 0;
-
- if( rValue.hasValue() && (rValue.getValueTypeClass() == TypeClass_ENUM))
- {
- nEnum = *((sal_Int32*)rValue.getValue());
- bRet = true;
- }
- else
- {
- bRet = (rValue >>= nEnum );
- }
-
- if( bRet )
- {
- if( (nEnum >= 0) && (nEnum <= 0xffff) )
- {
- sal_uInt16 nConst = static_cast<sal_uInt16>( nEnum );
-
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, nConst, pMap, eDefault );
-
- rStrExpValue = aOut.makeStringAndClear();
- }
- else
- {
- OSL_FAIL("XMLConstantsPropertyHandler::exportXML() constant is out of range for implementation using sal_uInt16");
- }
- }
- else
- {
- OSL_FAIL("XMLConstantsPropertyHandler::exportXML() could not convert any to sal_Int32");
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLElementPropertyContext.cxx b/xmloff/source/style/XMLElementPropertyContext.cxx
deleted file mode 100644
index 0a1174d3b4..0000000000
--- a/xmloff/source/style/XMLElementPropertyContext.cxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include "XMLElementPropertyContext.hxx"
-
-using ::rtl::OUString;
-
-TYPEINIT1( XMLElementPropertyContext , SvXMLImportContext );
-
-XMLElementPropertyContext::XMLElementPropertyContext (
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const XMLPropertyState& rProp,
- ::std::vector< XMLPropertyState > &rProps ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- bInsert( sal_False ),
- rProperties( rProps ),
- aProp( rProp )
-{
-}
-
-XMLElementPropertyContext::~XMLElementPropertyContext()
-{
-}
-
-void XMLElementPropertyContext::EndElement( )
-{
- if( bInsert )
- rProperties.push_back( aProp );
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFillBitmapSizePropertyHandler.cxx b/xmloff/source/style/XMLFillBitmapSizePropertyHandler.cxx
deleted file mode 100644
index 3c961a1728..0000000000
--- a/xmloff/source/style/XMLFillBitmapSizePropertyHandler.cxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include "XMLFillBitmapSizePropertyHandler.hxx"
-#include <comphelper/extract.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-XMLFillBitmapSizePropertyHandler::XMLFillBitmapSizePropertyHandler()
-{
-}
-
-XMLFillBitmapSizePropertyHandler::~XMLFillBitmapSizePropertyHandler()
-{
-}
-
-sal_Bool XMLFillBitmapSizePropertyHandler::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Int32 nValue;
- sal_Bool bRet;
-
- if( rStrImpValue.indexOf( sal_Unicode('%') ) != -1 )
- {
- bRet = rUnitConverter.convertPercent( nValue, rStrImpValue );
- nValue *= -1;
- }
- else
- {
- bRet = rUnitConverter.convertMeasure( nValue, rStrImpValue );
- }
-
- if( bRet )
- rValue <<= nValue;
-
- return bRet;
-}
-
-sal_Bool XMLFillBitmapSizePropertyHandler::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- sal_Int32 nValue = 0;
- if( rValue >>= nValue )
- {
- if( nValue < 0 )
- {
- rUnitConverter.convertPercent( aOut, -nValue );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, nValue );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return sal_True;
- }
-
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFontAutoStylePool.cxx b/xmloff/source/style/XMLFontAutoStylePool.cxx
deleted file mode 100644
index 98d66f3a31..0000000000
--- a/xmloff/source/style/XMLFontAutoStylePool.cxx
+++ /dev/null
@@ -1,294 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <svl/cntnrsrt.hxx>
-#include <tools/fontenum.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "fonthdl.hxx"
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/XMLFontAutoStylePool.hxx>
-
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::xmloff::token;
-
-int XMLFontAutoStylePoolNameCmp_Impl( const OUString& r1,
- const OUString& r2 )
-{
- return (int)r1.compareTo( r2 );
-}
-
-DECLARE_CONTAINER_SORT_DEL( XMLFontAutoStylePoolNames_Impl,
- OUString )
-IMPL_CONTAINER_SORT( XMLFontAutoStylePoolNames_Impl,
- OUString,
- XMLFontAutoStylePoolNameCmp_Impl )
-
-class XMLFontAutoStylePoolEntry_Impl
-{
- OUString sName;
- OUString sFamilyName;
- OUString sStyleName;
- sal_Int16 nFamily;
- sal_Int16 nPitch;
- rtl_TextEncoding eEnc;
-
-public:
-
- inline XMLFontAutoStylePoolEntry_Impl(
- const ::rtl::OUString& rName,
- const ::rtl::OUString& rFamilyName,
- const ::rtl::OUString& rStyleName,
- sal_Int16 nFamily,
- sal_Int16 nPitch,
- rtl_TextEncoding eEnc );
-
- inline XMLFontAutoStylePoolEntry_Impl(
- const ::rtl::OUString& rFamilyName,
- const ::rtl::OUString& rStyleName,
- sal_Int16 nFamily,
- sal_Int16 nPitch,
- rtl_TextEncoding eEnc );
-
- const OUString& GetName() const { return sName; }
- const OUString& GetFamilyName() const { return sFamilyName; }
- const OUString& GetStyleName() const { return sStyleName; }
- sal_Int16 GetFamily() const { return nFamily; }
- sal_Int16 GetPitch() const { return nPitch; }
- rtl_TextEncoding GetEncoding() const { return eEnc; }
-};
-
-
-inline XMLFontAutoStylePoolEntry_Impl::XMLFontAutoStylePoolEntry_Impl(
- const ::rtl::OUString& rName,
- const ::rtl::OUString& rFamilyName,
- const ::rtl::OUString& rStyleName,
- sal_Int16 nFam,
- sal_Int16 nP,
- rtl_TextEncoding eE ) :
- sName( rName ),
- sFamilyName( rFamilyName ),
- sStyleName( rStyleName ),
- nFamily( nFam ),
- nPitch( nP ),
- eEnc( eE )
-{
-}
-
-inline XMLFontAutoStylePoolEntry_Impl::XMLFontAutoStylePoolEntry_Impl(
- const ::rtl::OUString& rFamilyName,
- const ::rtl::OUString& rStyleName,
- sal_Int16 nFam,
- sal_Int16 nP,
- rtl_TextEncoding eE ) :
- sFamilyName( rFamilyName ),
- sStyleName( rStyleName ),
- nFamily( nFam ),
- nPitch( nP ),
- eEnc( eE )
-{
-}
-int XMLFontAutoStylePoolEntryCmp_Impl(
- const XMLFontAutoStylePoolEntry_Impl& r1,
- const XMLFontAutoStylePoolEntry_Impl& r2 )
-{
- sal_Int8 nEnc1(r1.GetEncoding() != RTL_TEXTENCODING_SYMBOL);
- sal_Int8 nEnc2(r2.GetEncoding() != RTL_TEXTENCODING_SYMBOL);
- if( nEnc1 != nEnc2 )
- return nEnc1 - nEnc2;
- else if( r1.GetPitch() != r2.GetPitch() )
- return (int)r1.GetPitch() - (int)r2.GetPitch();
- else if( r1.GetFamily() != r2.GetFamily() )
- return (int)r1.GetFamily() - (int)r2.GetFamily();
- else
- {
- sal_Int32 nCmp = r1.GetFamilyName().compareTo( r2.GetFamilyName() );
- if( 0 == nCmp )
- return (int)r1.GetStyleName().compareTo( r2.GetStyleName() );
- else
- return (int)nCmp;
- }
-}
-
-typedef XMLFontAutoStylePoolEntry_Impl *XMLFontAutoStylePoolEntryPtr;
-DECLARE_CONTAINER_SORT_DEL( XMLFontAutoStylePool_Impl,
- XMLFontAutoStylePoolEntry_Impl )
-IMPL_CONTAINER_SORT( XMLFontAutoStylePool_Impl,
- XMLFontAutoStylePoolEntry_Impl,
- XMLFontAutoStylePoolEntryCmp_Impl )
-
-XMLFontAutoStylePool::XMLFontAutoStylePool( SvXMLExport& rExp ) :
- rExport( rExp ),
- pPool( new XMLFontAutoStylePool_Impl( 5, 5 ) ),
- pNames( new XMLFontAutoStylePoolNames_Impl( 5, 5 ) )
-{
-}
-
-XMLFontAutoStylePool::~XMLFontAutoStylePool()
-{
- delete pPool;
- delete pNames;
-}
-
-OUString XMLFontAutoStylePool::Add(
- const OUString& rFamilyName,
- const OUString& rStyleName,
- sal_Int16 nFamily,
- sal_Int16 nPitch,
- rtl_TextEncoding eEnc )
-{
- OUString sPoolName;
- XMLFontAutoStylePoolEntry_Impl aTmp( rFamilyName, rStyleName, nFamily,
- nPitch, eEnc );
- sal_uLong nPos;
- if( pPool->Seek_Entry( &aTmp, &nPos ) )
- {
- sPoolName = pPool->GetObject( nPos )->GetName();
- }
- else
- {
- OUString sName;
- sal_Int32 nLen = rFamilyName.indexOf( sal_Unicode(';'), 0 );
- if( -1 == nLen )
- {
- sName = rFamilyName;
- }
- else if( nLen > 0 )
- {
- sName = rFamilyName.copy( 0, nLen );
- sName.trim();
- }
-
- if( !sName.getLength() )
- sName = OUString::valueOf( sal_Unicode( 'F' ) );
-
- if( pNames->Seek_Entry( &sName, 0 ) )
- {
- sal_Int32 nCount = 1;
- OUString sPrefix( sName );
- sName += OUString::valueOf( nCount );
- while( pNames->Seek_Entry( &sName, 0 ) )
- {
- sName = sPrefix;
- sName += OUString::valueOf( ++nCount );
- }
- }
-
- XMLFontAutoStylePoolEntry_Impl *pEntry =
- new XMLFontAutoStylePoolEntry_Impl( sName, rFamilyName, rStyleName,
- nFamily, nPitch, eEnc );
- pPool->Insert( pEntry );
- pNames->Insert( new OUString( sName ) );
- }
-
- return sPoolName;
-}
-
-::rtl::OUString XMLFontAutoStylePool::Find(
- const OUString& rFamilyName,
- const OUString& rStyleName,
- sal_Int16 nFamily,
- sal_Int16 nPitch,
- rtl_TextEncoding eEnc ) const
-{
- OUString sName;
- XMLFontAutoStylePoolEntry_Impl aTmp( rFamilyName, rStyleName, nFamily,
- nPitch, eEnc );
- sal_uLong nPos;
- if( pPool->Seek_Entry( &aTmp, &nPos ) )
- {
- sName = pPool->GetObject( nPos )->GetName();
- }
-
- return sName;
-}
-
-
-void XMLFontAutoStylePool::exportXML()
-{
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_OFFICE,
- XML_FONT_FACE_DECLS,
- sal_True, sal_True );
- Any aAny;
- OUString sTmp;
- XMLFontFamilyNamePropHdl aFamilyNameHdl;
- XMLFontFamilyPropHdl aFamilyHdl;
- XMLFontPitchPropHdl aPitchHdl;
- XMLFontEncodingPropHdl aEncHdl;
- const SvXMLUnitConverter& rUnitConv = GetExport().GetMM100UnitConverter();
-
- sal_uInt32 nCount = pPool->Count();
- for( sal_uInt32 i=0; i<nCount; i++ )
- {
- const XMLFontAutoStylePoolEntry_Impl *pEntry = pPool->GetObject( i );
-
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_NAME, pEntry->GetName() );
-
- aAny <<= pEntry->GetFamilyName();
- if( aFamilyNameHdl.exportXML( sTmp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_SVG,
- XML_FONT_FAMILY, sTmp );
-
- const OUString& rStyleName = pEntry->GetStyleName();
- if( rStyleName.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_ADORNMENTS,
- rStyleName );
-
- aAny <<= (sal_Int16)pEntry->GetFamily();
- if( aFamilyHdl.exportXML( sTmp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_FAMILY_GENERIC, sTmp );
-
- aAny <<= (sal_Int16)pEntry->GetPitch();
- if( aPitchHdl.exportXML( sTmp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_PITCH, sTmp );
-
- aAny <<= (sal_Int16)pEntry->GetEncoding();
- if( aEncHdl.exportXML( sTmp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_CHARSET, sTmp );
-
- SvXMLElementExport aElement( GetExport(), XML_NAMESPACE_STYLE,
- XML_FONT_FACE,
- sal_True, sal_True );
- }
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFontStylesContext.cxx b/xmloff/source/style/XMLFontStylesContext.cxx
deleted file mode 100644
index 5017e8f874..0000000000
--- a/xmloff/source/style/XMLFontStylesContext.cxx
+++ /dev/null
@@ -1,288 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <com/sun/star/awt/FontFamily.hpp>
-#include <com/sun/star/awt/FontPitch.hpp>
-
-#include <rtl/logfile.hxx>
-
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include "fonthdl.hxx"
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/maptype.hxx>
-#include <xmloff/XMLFontStylesContext.hxx>
-
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::awt;
-using namespace ::xmloff::token;
-
-
-#define XML_STYLE_FAMILY_FONT 1
-
-enum XMLFontStyleAttrTokens
-{
- XML_TOK_FONT_STYLE_ATTR_FAMILY,
- XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC,
- XML_TOK_FONT_STYLE_ATTR_STYLENAME,
- XML_TOK_FONT_STYLE_ATTR_PITCH,
- XML_TOK_FONT_STYLE_ATTR_CHARSET,
-
- XML_TOK_FONT_STYLE_ATTR_END=XML_TOK_UNKNOWN
-};
-
-const SvXMLTokenMapEntry* lcl_getFontStyleAttrTokenMap()
-{
- static SvXMLTokenMapEntry aFontStyleAttrTokenMap[] =
- {
- { XML_NAMESPACE_SVG, XML_FONT_FAMILY,
- XML_TOK_FONT_STYLE_ATTR_FAMILY },
- { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC,
- XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC },
- { XML_NAMESPACE_STYLE, XML_FONT_ADORNMENTS,
- XML_TOK_FONT_STYLE_ATTR_STYLENAME },
- { XML_NAMESPACE_STYLE, XML_FONT_PITCH,
- XML_TOK_FONT_STYLE_ATTR_PITCH },
- { XML_NAMESPACE_STYLE, XML_FONT_CHARSET,
- XML_TOK_FONT_STYLE_ATTR_CHARSET },
-
- XML_TOKEN_MAP_END
- };
- return aFontStyleAttrTokenMap;
-}
-
-class XMLFontStyleContext_Impl : public SvXMLStyleContext
-{
- Any aFamilyName;
- Any aStyleName;
- Any aFamily;
- Any aPitch;
- Any aEnc;
-
- SvXMLImportContextRef xStyles;
-
- XMLFontStylesContext *GetStyles()
- {
- return ((XMLFontStylesContext *)&xStyles);
- }
-
-public:
-
- TYPEINFO();
-
- XMLFontStyleContext_Impl( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const ::rtl::OUString& rLName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList > & xAttrList,
- XMLFontStylesContext& rStyles );
- virtual ~XMLFontStyleContext_Impl();
-
- void SetAttribute( sal_uInt16 nPrefixKey, const OUString& rLocalName,
- const OUString& rValue );
-
- void FillProperties( ::std::vector< XMLPropertyState > &rProps,
- sal_Int32 nFamilyNameIdx,
- sal_Int32 nStyleNameIdx,
- sal_Int32 nFamilyIdx,
- sal_Int32 nPitchIdx,
- sal_Int32 nCharsetIdx ) const;
-
-};
-
-TYPEINIT1( XMLFontStyleContext_Impl, SvXMLStyleContext );
-
-XMLFontStyleContext_Impl::XMLFontStyleContext_Impl( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const OUString& rLName,
- const Reference< XAttributeList > & xAttrList,
- XMLFontStylesContext& rStyles ) :
- SvXMLStyleContext( rImport, nPrfx, rLName, xAttrList, XML_STYLE_FAMILY_FONT ),
- xStyles( &rStyles )
-{
- OUString sEmpty;
- aFamilyName <<= sEmpty;
- aStyleName <<= sEmpty;
- aFamily <<= (sal_Int16)FontFamily::DONTKNOW;
- aPitch <<= (sal_Int16)FontPitch::DONTKNOW;
- aEnc <<= (sal_Int16)rStyles.GetDfltCharset();
-}
-
-void XMLFontStyleContext_Impl::SetAttribute( sal_uInt16 nPrefixKey,
- const OUString& rLocalName,
- const OUString& rValue )
-{
- SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter();
- const SvXMLTokenMap& rTokenMap = GetStyles()->GetFontStyleAttrTokenMap();
- Any aAny;
-
- switch( rTokenMap.Get( nPrefixKey, rLocalName ) )
- {
- case XML_TOK_FONT_STYLE_ATTR_FAMILY:
- if( GetStyles()->GetFamilyNameHdl().importXML( rValue, aAny,
- rUnitConv ) )
- aFamilyName = aAny;
- break;
- case XML_TOK_FONT_STYLE_ATTR_STYLENAME:
- aStyleName <<= rValue;
- break;
- case XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC:
- if( GetStyles()->GetFamilyHdl().importXML( rValue, aAny,
- rUnitConv ) )
- aFamily = aAny;
- break;
- case XML_TOK_FONT_STYLE_ATTR_PITCH:
- if( GetStyles()->GetPitchHdl().importXML( rValue, aAny,
- rUnitConv ) )
- aPitch = aAny;
- break;
- case XML_TOK_FONT_STYLE_ATTR_CHARSET:
- if( GetStyles()->GetEncodingHdl().importXML( rValue, aAny,
- rUnitConv ) )
- aEnc = aAny;
- break;
- default:
- SvXMLStyleContext::SetAttribute( nPrefixKey, rLocalName, rValue );
- break;
- }
-}
-
-XMLFontStyleContext_Impl::~XMLFontStyleContext_Impl()
-{
-}
-
-void XMLFontStyleContext_Impl::FillProperties(
- ::std::vector< XMLPropertyState > &rProps,
- sal_Int32 nFamilyNameIdx,
- sal_Int32 nStyleNameIdx,
- sal_Int32 nFamilyIdx,
- sal_Int32 nPitchIdx,
- sal_Int32 nCharsetIdx ) const
-{
- if( nFamilyNameIdx != -1 )
- {
- XMLPropertyState aPropState( nFamilyNameIdx, aFamilyName );
- rProps.push_back( aPropState );
- }
- if( nStyleNameIdx != -1 )
- {
- XMLPropertyState aPropState( nStyleNameIdx, aStyleName );
- rProps.push_back( aPropState );
- }
- if( nFamilyIdx != -1 )
- {
- XMLPropertyState aPropState( nFamilyIdx, aFamily );
- rProps.push_back( aPropState );
- }
- if( nPitchIdx != -1 )
- {
- XMLPropertyState aPropState( nPitchIdx, aPitch );
- rProps.push_back( aPropState );
- }
- if( nCharsetIdx != -1 )
- {
- XMLPropertyState aPropState( nCharsetIdx, aEnc );
- rProps.push_back( aPropState );
- }
-}
-
-SvXMLStyleContext *XMLFontStylesContext::CreateStyleChildContext(
- sal_uInt16 nPrefix,
- const ::rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLStyleContext *pStyle;
- if( XML_NAMESPACE_STYLE == nPrefix &&
- IsXMLToken( rLocalName, XML_FONT_FACE ) )
- {
- pStyle = new XMLFontStyleContext_Impl( GetImport(), nPrefix,
- rLocalName, xAttrList, *this );
- }
- else
- {
- pStyle = SvXMLStylesContext::CreateStyleChildContext( nPrefix,
- rLocalName, xAttrList );
- }
-
- return pStyle;
-}
-
-TYPEINIT1( XMLFontStylesContext, SvXMLStylesContext );
-
-XMLFontStylesContext::XMLFontStylesContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const OUString& rLName,
- const Reference< XAttributeList > & xAttrList,
- rtl_TextEncoding eDfltEnc ) :
- SvXMLStylesContext( rImport, nPrfx, rLName, xAttrList ),
- pFamilyNameHdl( new XMLFontFamilyNamePropHdl ),
- pFamilyHdl( new XMLFontFamilyPropHdl ),
- pPitchHdl( new XMLFontPitchPropHdl ),
- pEncHdl( new XMLFontEncodingPropHdl ),
- pFontStyleAttrTokenMap( new SvXMLTokenMap(lcl_getFontStyleAttrTokenMap()) ),
- eDfltEncoding( eDfltEnc )
-{
-}
-
-XMLFontStylesContext::~XMLFontStylesContext()
-{
- delete pFamilyNameHdl;
- delete pFamilyHdl;
- delete pPitchHdl;
- delete pEncHdl;
- delete pFontStyleAttrTokenMap;
-}
-
-sal_Bool XMLFontStylesContext::FillProperties( const OUString& rName,
- ::std::vector< XMLPropertyState > &rProps,
- sal_Int32 nFamilyNameIdx,
- sal_Int32 nStyleNameIdx,
- sal_Int32 nFamilyIdx,
- sal_Int32 nPitchIdx,
- sal_Int32 nCharsetIdx ) const
-{
- const SvXMLStyleContext* pStyle = FindStyleChildContext( XML_STYLE_FAMILY_FONT, rName, sal_True );
- const XMLFontStyleContext_Impl *pFontStyle = PTR_CAST( XMLFontStyleContext_Impl,pStyle);// use temp var, PTR_CAST is a bad macro, FindStyleChildContext will be called twice
- if( pFontStyle )
- pFontStyle->FillProperties( rProps, nFamilyNameIdx, nStyleNameIdx,
- nFamilyIdx, nPitchIdx, nCharsetIdx );
- return 0 != pFontStyle;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx
deleted file mode 100644
index 04f1e1568c..0000000000
--- a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx
+++ /dev/null
@@ -1,190 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "XMLFootnoteSeparatorExport.hxx"
-#include <tools/debug.hxx>
-#include <xmloff/xmlexp.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlprmap.hxx>
-
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <com/sun/star/text/HorizontalAdjust.hpp>
-#include <rtl/ustrbuf.hxx>
-
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-using ::rtl::OUStringBuffer;
-using ::std::vector;
-
-XMLFootnoteSeparatorExport::XMLFootnoteSeparatorExport(SvXMLExport& rExp) :
- rExport(rExp)
-{
-}
-
-XMLFootnoteSeparatorExport::~XMLFootnoteSeparatorExport()
-{
-}
-
-
-void XMLFootnoteSeparatorExport::exportXML(
- const vector<XMLPropertyState> * pProperties,
- sal_uInt32
- #ifdef DBG_UTIL
- nIdx
- #endif
- ,
- const UniReference<XMLPropertySetMapper> & rMapper)
-{
- DBG_ASSERT(NULL != pProperties, "Need property states");
-
- // intialize values
- sal_Int16 eLineAdjust = text::HorizontalAdjust_LEFT;
- sal_Int32 nLineColor = 0;
- sal_Int32 nLineDistance = 0;
- sal_Int8 nLineRelWidth = 0;
- sal_Int32 nLineTextDistance = 0;
- sal_Int16 nLineWeight = 0;
- sal_Int8 nLineStyle = 0;
-
- // find indices into property map and get values
- sal_uInt32 nCount = pProperties->size();
- for(sal_uInt32 i = 0; i < nCount; i++)
- {
- const XMLPropertyState& rState = (*pProperties)[i];
-
- if( rState.mnIndex == -1 )
- continue;
-
- switch (rMapper->GetEntryContextId(rState.mnIndex))
- {
- case CTF_PM_FTN_LINE_ADJUST:
- rState.maValue >>= eLineAdjust;
- break;
- case CTF_PM_FTN_LINE_COLOR:
- rState.maValue >>= nLineColor;
- break;
- case CTF_PM_FTN_DISTANCE:
- rState.maValue >>= nLineDistance;
- break;
- case CTF_PM_FTN_LINE_WIDTH:
- rState.maValue >>= nLineRelWidth;
- break;
- case CTF_PM_FTN_LINE_DISTANCE:
- rState.maValue >>= nLineTextDistance;
- break;
- case CTF_PM_FTN_LINE_WEIGTH:
- DBG_ASSERT( i == nIdx,
- "received wrong property state index" );
- rState.maValue >>= nLineWeight;
- break;
- case CTF_PM_FTN_LINE_STYLE:
- rState.maValue >>= nLineStyle;
- break;
- }
- }
-
- OUStringBuffer sBuf;
-
- // weight/width
- if (nLineWeight > 0)
- {
- rExport.GetMM100UnitConverter().convertMeasure(sBuf, nLineWeight);
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_WIDTH,
- sBuf.makeStringAndClear());
- }
-
- // line text distance
- if (nLineTextDistance > 0)
- {
- rExport.GetMM100UnitConverter().convertMeasure(sBuf,nLineTextDistance);
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_DISTANCE_BEFORE_SEP,
- sBuf.makeStringAndClear());
- }
-
- // line distance
- if (nLineDistance > 0)
- {
- rExport.GetMM100UnitConverter().convertMeasure(sBuf, nLineDistance);
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_DISTANCE_AFTER_SEP,
- sBuf.makeStringAndClear());
- }
-
- // line style
- static const SvXMLEnumMapEntry aXML_LineStyle_Enum[] =
- {
- { XML_NONE, 0 },
- { XML_SOLID, 1 },
- { XML_DOTTED, 2 },
- { XML_DASH, 3 },
- { XML_TOKEN_INVALID, 0 }
- };
- if (rExport.GetMM100UnitConverter().convertEnum(
- sBuf, nLineStyle, aXML_LineStyle_Enum ) )
- {
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_LINE_STYLE,
- sBuf.makeStringAndClear());
- }
-
- // adjustment
- static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] =
- {
- { XML_LEFT, text::HorizontalAdjust_LEFT },
- { XML_CENTER, text::HorizontalAdjust_CENTER },
- { XML_RIGHT, text::HorizontalAdjust_RIGHT },
- { XML_TOKEN_INVALID, 0 }
- };
-
- if (rExport.GetMM100UnitConverter().convertEnum(
- sBuf, eLineAdjust, aXML_HorizontalAdjust_Enum))
- {
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_ADJUSTMENT,
- sBuf.makeStringAndClear());
- }
-
- // relative line width
- SvXMLUnitConverter::convertPercent(sBuf, nLineRelWidth);
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_REL_WIDTH,
- sBuf.makeStringAndClear());
-
- // color
- rExport.GetMM100UnitConverter().convertColor(sBuf, nLineColor);
- rExport.AddAttribute(XML_NAMESPACE_STYLE, XML_COLOR,
- sBuf.makeStringAndClear());
-
- // line-style
-
- SvXMLElementExport aElem(rExport, XML_NAMESPACE_STYLE,
- XML_FOOTNOTE_SEP, sal_True, sal_True);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFootnoteSeparatorExport.hxx b/xmloff/source/style/XMLFootnoteSeparatorExport.hxx
deleted file mode 100644
index 324c41b149..0000000000
--- a/xmloff/source/style/XMLFootnoteSeparatorExport.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_XMLFOOTNOTESEPARATOREXPORT_HXX
-#define _XMLOFF_XMLFOOTNOTESEPARATOREXPORT_HXX
-
-#include <sal/types.h>
-
-class SvXMLExport;
-class XMLPropertySetMapper;
-struct XMLPropertyState;
-template<class X> class UniReference;
-
-
-#include <vector>
-
-
-/**
- * export footnote separator element in page styles
- */
-class XMLFootnoteSeparatorExport
-{
- SvXMLExport& rExport;
-
-public:
-
- XMLFootnoteSeparatorExport(SvXMLExport& rExp);
-
- ~XMLFootnoteSeparatorExport();
-
- void exportXML(
- const ::std::vector<XMLPropertyState> * pProperties,
- sal_uInt32 nIdx,
- /// used only for debugging
- const UniReference<XMLPropertySetMapper> & rMapper);
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx
deleted file mode 100644
index 47238b34dc..0000000000
--- a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx
+++ /dev/null
@@ -1,217 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "XMLFootnoteSeparatorImport.hxx"
-
-#ifndef _RTL_USTRING
-#include <rtl/ustring.hxx>
-#endif
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/xml/sax/XAttributeList.hpp>
-#include <com/sun/star/text/HorizontalAdjust.hpp>
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmlprmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/maptype.hxx>
-
-#include <xmloff/PageMasterStyleMap.hxx>
-#include <tools/debug.hxx>
-#include <tools/color.hxx>
-
-#include <vector>
-
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-using ::rtl::OUString;
-using ::std::vector;
-using ::com::sun::star::uno::Any;
-using ::com::sun::star::uno::Reference;
-using ::com::sun::star::xml::sax::XAttributeList;
-
-
-TYPEINIT1(XMLFootnoteSeparatorImport, SvXMLImportContext);
-
-
-XMLFootnoteSeparatorImport::XMLFootnoteSeparatorImport(
- SvXMLImport& rImport,
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- vector<XMLPropertyState> & rProps,
- const UniReference<XMLPropertySetMapper> & rMapperRef,
- sal_Int32 nIndex) :
- SvXMLImportContext(rImport, nPrefix, rLocalName),
- rProperties(rProps),
- rMapper(rMapperRef),
- nPropIndex(nIndex)
-{
-}
-
-XMLFootnoteSeparatorImport::~XMLFootnoteSeparatorImport()
-{
-}
-
-void XMLFootnoteSeparatorImport::StartElement(
- const Reference<XAttributeList> & xAttrList)
-{
- // get the values from the properties
- sal_Int16 nLineWeight = 0;
- sal_Int32 nLineColor = 0;
- sal_Int8 nLineRelWidth = 0;
- sal_Int16 eLineAdjust = text::HorizontalAdjust_LEFT; // enum text::HorizontalAdjust
- sal_Int32 nLineTextDistance = 0;
- sal_Int32 nLineDistance = 0;
- sal_Int8 nLineStyle = 0;
-
- // iterate over xattribute list and fill values
- sal_Int16 nLength = xAttrList->getLength();
- for(sal_Int16 nAttr = 0; nAttr < nLength; nAttr++)
- {
- OUString sLocalName;
- sal_uInt16 nPrefix = GetImport().GetNamespaceMap().
- GetKeyByAttrName( xAttrList->getNameByIndex(nAttr),
- &sLocalName );
-
- if (XML_NAMESPACE_STYLE == nPrefix)
- {
- OUString sAttrValue = xAttrList->getValueByIndex(nAttr);
- sal_Int32 nTmp;
- if (IsXMLToken( sLocalName, XML_WIDTH ))
- {
- if (GetImport().GetMM100UnitConverter().convertMeasure(
- nTmp, sAttrValue))
- {
- nLineWeight = (sal_Int16)nTmp;
- }
- }
- else if (IsXMLToken( sLocalName, XML_DISTANCE_BEFORE_SEP ))
- {
- if (GetImport().GetMM100UnitConverter().convertMeasure(
- nTmp, sAttrValue))
- nLineTextDistance = nTmp;
- }
- else if (IsXMLToken( sLocalName, XML_DISTANCE_AFTER_SEP ))
- {
- if (GetImport().GetMM100UnitConverter().convertMeasure(
- nTmp, sAttrValue))
- nLineDistance = nTmp;
- }
- else if (IsXMLToken( sLocalName, XML_ADJUSTMENT ))
- {
- sal_uInt16 nTmpU;
- static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] =
- {
- { XML_LEFT, text::HorizontalAdjust_LEFT },
- { XML_CENTER, text::HorizontalAdjust_CENTER },
- { XML_RIGHT, text::HorizontalAdjust_RIGHT },
- { XML_TOKEN_INVALID, 0 }
- };
-
- if (SvXMLUnitConverter::convertEnum(
- nTmpU, sAttrValue, aXML_HorizontalAdjust_Enum))
- eLineAdjust = (sal_Int16)nTmpU;
- }
- else if (IsXMLToken( sLocalName, XML_REL_WIDTH ))
- {
- if (SvXMLUnitConverter::convertPercent(nTmp, sAttrValue))
- nLineRelWidth = (sal_uInt8)nTmp;
- }
- else if (IsXMLToken( sLocalName, XML_COLOR ))
- {
- Color aColor;
- if (SvXMLUnitConverter::convertColor(aColor, sAttrValue))
- nLineColor = (sal_Int32)aColor.GetColor();
- }
- else if (IsXMLToken( sLocalName, XML_LINE_STYLE ))
- {
- sal_uInt16 nTmpU;
- static const SvXMLEnumMapEntry aXML_LineStyle_Enum[] =
- {
- { XML_NONE, 0 },
- { XML_SOLID, 1 },
- { XML_DOTTED, 2 },
- { XML_DASH, 3 },
- { XML_TOKEN_INVALID, 0 }
- };
-
- if (SvXMLUnitConverter::convertEnum(
- nTmpU, sAttrValue, aXML_LineStyle_Enum))
- nLineStyle = (sal_Int8)nTmpU;
-
- }
- }
- }
-
- // OK, now we have all values and can fill the XMLPropertyState vector
- Any aAny;
- sal_Int32 nIndex;
-
- aAny <<= eLineAdjust;
- nIndex = rMapper->FindEntryIndex(CTF_PM_FTN_LINE_ADJUST);
- XMLPropertyState aLineAdjust( nIndex, aAny);
- rProperties.push_back(aLineAdjust);
-
- aAny <<= nLineColor;
- nIndex = rMapper->FindEntryIndex(CTF_PM_FTN_LINE_COLOR);
- XMLPropertyState aLineColor( nIndex, aAny );
- rProperties.push_back(aLineColor);
-
- aAny <<= nLineStyle;
- nIndex = rMapper->FindEntryIndex(CTF_PM_FTN_LINE_STYLE);
- XMLPropertyState aLineStyle( nIndex, aAny );
- rProperties.push_back(aLineStyle);
-
- aAny <<= nLineDistance;
- nIndex = rMapper->FindEntryIndex(CTF_PM_FTN_DISTANCE);
- XMLPropertyState aLineDistance( nIndex, aAny );
- rProperties.push_back(aLineDistance);
-
- aAny <<= nLineRelWidth;
- nIndex = rMapper->FindEntryIndex(CTF_PM_FTN_LINE_WIDTH);
- XMLPropertyState aLineRelWidth( nIndex, aAny);
- rProperties.push_back(aLineRelWidth);
-
- aAny <<= nLineTextDistance;
- nIndex = rMapper->FindEntryIndex(CTF_PM_FTN_LINE_DISTANCE);
- XMLPropertyState aLineTextDistance( nIndex, aAny);
- rProperties.push_back(aLineTextDistance);
-
- DBG_ASSERT( rMapper->FindEntryIndex(CTF_PM_FTN_LINE_WEIGTH) == nPropIndex,
- "Received wrong property map index!" );
- aAny <<= nLineWeight;
- XMLPropertyState aLineWeight( nPropIndex, aAny );
- rProperties.push_back(aLineWeight);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLFootnoteSeparatorImport.hxx b/xmloff/source/style/XMLFootnoteSeparatorImport.hxx
deleted file mode 100644
index 36b3419fcb..0000000000
--- a/xmloff/source/style/XMLFootnoteSeparatorImport.hxx
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_XMLFOOTNOTESEPARATORIMPORT_HXX
-#define _XMLOFF_XMLFOOTNOTESEPARATORIMPORT_HXX
-
-
-
-#include <xmloff/xmlictxt.hxx>
-#include <xmloff/uniref.hxx>
-
-#include <vector>
-
-
-class SvXMLImport;
-struct XMLPropertyState;
-class XMLPropertySetMapper;
-namespace rtl { class OUString; }
-namespace com { namespace sun { namespace star {
- namespace uno { template<class X> class Reference; }
- namespace xml { namespace sax { class XAttributeList; } }
-} } }
-
-
-/**
- * Import the footnote-separator element in page styles.
- */
-class XMLFootnoteSeparatorImport : public SvXMLImportContext
-{
- ::std::vector<XMLPropertyState> & rProperties;
- UniReference<XMLPropertySetMapper> rMapper;
- sal_Int32 nPropIndex;
-
-public:
-
- TYPEINFO();
-
- XMLFootnoteSeparatorImport(
- SvXMLImport& rImport,
- sal_uInt16 nPrefix,
- const ::rtl::OUString& rLocalName,
- ::std::vector<XMLPropertyState> & rProperties,
- const UniReference<XMLPropertySetMapper> & rMapperRef,
- sal_Int32 nIndex);
-
- ~XMLFootnoteSeparatorImport();
-
- virtual void StartElement(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList> & xAttrList );
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLIsPercentagePropertyHandler.cxx b/xmloff/source/style/XMLIsPercentagePropertyHandler.cxx
deleted file mode 100644
index 69f0e0e3e3..0000000000
--- a/xmloff/source/style/XMLIsPercentagePropertyHandler.cxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-#include "XMLIsPercentagePropertyHandler.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-XMLIsPercentagePropertyHandler::~XMLIsPercentagePropertyHandler()
-{
-}
-
-sal_Bool XMLIsPercentagePropertyHandler::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- rValue <<= (sal_Bool)(rStrImpValue.indexOf( sal_Unicode('%') ) != -1);
- return sal_True;
-}
-
-sal_Bool XMLIsPercentagePropertyHandler::exportXML(
- OUString&,
- const Any&,
- const SvXMLUnitConverter& ) const
-{
- OSL_FAIL( "XMLIsPercentagePropertyHandler is not for export!" );
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLPageExport.cxx b/xmloff/source/style/XMLPageExport.cxx
deleted file mode 100644
index ac5865edd6..0000000000
--- a/xmloff/source/style/XMLPageExport.cxx
+++ /dev/null
@@ -1,272 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/XMLPageExport.hxx>
-#include <tools/debug.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
-#include <com/sun/star/style/XStyle.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XIndexReplace.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <xmloff/families.hxx>
-#include <xmloff/xmlexp.hxx>
-#include "PageMasterPropHdlFactory.hxx"
-#include <xmloff/PageMasterStyleMap.hxx>
-#include "PageMasterPropMapper.hxx"
-#include "PageMasterExportPropMapper.hxx"
-#include "PageMasterExportPropMapper.hxx"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::beans;
-using namespace ::xmloff::token;
-
-
-//______________________________________________________________________________
-
-sal_Bool XMLPageExport::findPageMasterName( const OUString& rStyleName, OUString& rPMName ) const
-{
- for( ::std::vector< XMLPageExportNameEntry >::const_iterator pEntry = aNameVector.begin();
- pEntry != aNameVector.end(); ++pEntry )
- {
- if( pEntry->sStyleName == rStyleName )
- {
- rPMName = pEntry->sPageMasterName;
- return sal_True;
- }
- }
- return sal_False;
-}
-
-void XMLPageExport::collectPageMasterAutoStyle(
- const Reference < XPropertySet > & rPropSet,
- OUString& rPageMasterName )
-{
- DBG_ASSERT( xPageMasterPropSetMapper.is(), "page master family/XMLPageMasterPropSetMapper not found" );
- if( xPageMasterPropSetMapper.is() )
- {
- ::std::vector<XMLPropertyState> xPropStates = xPageMasterExportPropMapper->Filter( rPropSet );
- if( !xPropStates.empty())
- {
- OUString sParent;
- rPageMasterName = rExport.GetAutoStylePool()->Find( XML_STYLE_FAMILY_PAGE_MASTER, sParent, xPropStates );
- if (!rPageMasterName.getLength())
- rPageMasterName = rExport.GetAutoStylePool()->Add(XML_STYLE_FAMILY_PAGE_MASTER, sParent, xPropStates);
- }
- }
-}
-
-void XMLPageExport::exportMasterPageContent(
- const Reference < XPropertySet > &,
- sal_Bool /*bAutoStyles*/ )
-{
-
-}
-
-sal_Bool XMLPageExport::exportStyle(
- const Reference< XStyle >& rStyle,
- sal_Bool bAutoStyles )
-{
- Reference< XPropertySet > xPropSet( rStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo = xPropSet->getPropertySetInfo();
-
- // Don't export styles that aren't existing really. This may be the
- // case for StarOffice Writer's pool styles.
- if( xPropSetInfo->hasPropertyByName( sIsPhysical ) )
- {
- Any aAny = xPropSet->getPropertyValue( sIsPhysical );
- if( !*(sal_Bool *)aAny.getValue() )
- return sal_False;
- }
-
- if( bAutoStyles )
- {
- XMLPageExportNameEntry aEntry;
- collectPageMasterAutoStyle( xPropSet, aEntry.sPageMasterName );
- aEntry.sStyleName = rStyle->getName();
- aNameVector.push_back( aEntry );
-
- exportMasterPageContent( xPropSet, sal_True );
- }
- else
- {
- OUString sName( rStyle->getName() );
- sal_Bool bEncoded = sal_False;
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NAME,
- GetExport().EncodeStyleName( sName, &bEncoded ) );
-
- if( bEncoded )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_DISPLAY_NAME,
- sName);
-
- OUString sPMName;
- if( findPageMasterName( sName, sPMName ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, GetExport().EncodeStyleName( sPMName ) );
-
- Reference<XPropertySetInfo> xInfo = xPropSet->getPropertySetInfo();
- if ( xInfo.is() && xInfo->hasPropertyByName(sFollowStyle) )
- {
- OUString sNextName;
- xPropSet->getPropertyValue( sFollowStyle ) >>= sNextName;
-
- if( sName != sNextName && sNextName.getLength() )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NEXT_STYLE_NAME,
- GetExport().EncodeStyleName( sNextName ) );
- }
- }
-
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
- XML_MASTER_PAGE, sal_True, sal_True );
-
- exportMasterPageContent( xPropSet, sal_False );
- }
-
- return sal_True;
-}
-
-XMLPageExport::XMLPageExport( SvXMLExport& rExp ) :
- rExport( rExp ),
- sIsPhysical( RTL_CONSTASCII_USTRINGPARAM( "IsPhysical" ) ),
- sFollowStyle( RTL_CONSTASCII_USTRINGPARAM( "FollowStyle" ) )
-{
- xPageMasterPropHdlFactory = new XMLPageMasterPropHdlFactory;
- xPageMasterPropSetMapper = new XMLPageMasterPropSetMapper(
- (XMLPropertyMapEntry*) aXMLPageMasterStyleMap,
- xPageMasterPropHdlFactory );
- xPageMasterExportPropMapper = new XMLPageMasterExportPropMapper(
- xPageMasterPropSetMapper, rExp);
-
- rExport.GetAutoStylePool()->AddFamily( XML_STYLE_FAMILY_PAGE_MASTER, OUString( RTL_CONSTASCII_USTRINGPARAM( XML_STYLE_FAMILY_PAGE_MASTER_NAME ) ),
- xPageMasterExportPropMapper, OUString( RTL_CONSTASCII_USTRINGPARAM( XML_STYLE_FAMILY_PAGE_MASTER_PREFIX ) ), sal_False );
-
- Reference< XStyleFamiliesSupplier > xFamiliesSupp( GetExport().GetModel(),
- UNO_QUERY );
- DBG_ASSERT( xFamiliesSupp.is(),
- "No XStyleFamiliesSupplier from XModel for export!" );
- if( xFamiliesSupp.is() )
- {
- Reference< XNameAccess > xFamilies( xFamiliesSupp->getStyleFamilies() );
- DBG_ASSERT( xFamiliesSupp.is(),
- "getStyleFamilies() from XModel failed for export!" );
- if( xFamilies.is() )
- {
- const OUString aPageStyleName(
- RTL_CONSTASCII_USTRINGPARAM( "PageStyles" ));
-
- if( xFamilies->hasByName( aPageStyleName ) )
- {
- xPageStyles.set(xFamilies->getByName( aPageStyleName ),uno::UNO_QUERY);
-
- DBG_ASSERT( xPageStyles.is(),
- "Page Styles not found for export!" );
- }
- }
- }
-}
-
-XMLPageExport::~XMLPageExport()
-{
-}
-
-void XMLPageExport::exportStyles( sal_Bool bUsed, sal_Bool bAutoStyles )
-{
- if( xPageStyles.is() )
- {
- uno::Sequence< ::rtl::OUString> aSeq = xPageStyles->getElementNames();
- const ::rtl::OUString* pIter = aSeq.getConstArray();
- const ::rtl::OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
- {
- Reference< XStyle > xStyle(xPageStyles->getByName( *pIter ),uno::UNO_QUERY);
- if( !bUsed || xStyle->isInUse() )
- exportStyle( xStyle, bAutoStyles );
- }
- }
-}
-
-void XMLPageExport::exportAutoStyles()
-{
- rExport.GetAutoStylePool()->exportXML(XML_STYLE_FAMILY_PAGE_MASTER
- , rExport.GetDocHandler(), rExport.GetMM100UnitConverter(),
- rExport.GetNamespaceMap()
- );
-}
-
-void XMLPageExport::exportDefaultStyle()
-{
- Reference < lang::XMultiServiceFactory > xFactory (GetExport().GetModel(), UNO_QUERY);
- if (xFactory.is())
- {
- OUString sTextDefaults ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.Defaults" ) );
- Reference < XPropertySet > xPropSet (xFactory->createInstance ( sTextDefaults ), UNO_QUERY);
- if (xPropSet.is())
- {
- // <style:default-style ...>
- GetExport().CheckAttrList();
-
- ::std::vector< XMLPropertyState > xPropStates =
- xPageMasterExportPropMapper->FilterDefaults( xPropSet );
-
- sal_Bool bExport = sal_False;
- UniReference < XMLPropertySetMapper > aPropMapper(xPageMasterExportPropMapper->getPropertySetMapper());
- for( ::std::vector< XMLPropertyState >::iterator aIter = xPropStates.begin(); aIter != xPropStates.end(); ++aIter )
- {
- XMLPropertyState *pProp = &(*aIter);
- sal_Int16 nContextId = aPropMapper->GetEntryContextId( pProp->mnIndex );
- if( nContextId == CTF_PM_STANDARD_MODE )
- {
- bExport = sal_True;
- break;
- }
- }
-
- if( bExport )
- {
- //<style:default-page-layout>
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
- XML_DEFAULT_PAGE_LAYOUT,
- sal_True, sal_True );
-
- xPageMasterExportPropMapper->exportXML( GetExport(), xPropStates,
- XML_EXPORT_FLAG_IGN_WS );
- }
- }
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLPercentOrMeasurePropertyHandler.cxx b/xmloff/source/style/XMLPercentOrMeasurePropertyHandler.cxx
deleted file mode 100644
index 47d36b894d..0000000000
--- a/xmloff/source/style/XMLPercentOrMeasurePropertyHandler.cxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-#include "XMLPercentOrMeasurePropertyHandler.hxx"
-#include <xmloff/xmluconv.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-XMLPercentOrMeasurePropertyHandler::XMLPercentOrMeasurePropertyHandler( sal_Bool bPercent )
-: mbPercent( bPercent )
-{
-}
-
-XMLPercentOrMeasurePropertyHandler::~XMLPercentOrMeasurePropertyHandler()
-{
-}
-
-sal_Bool XMLPercentOrMeasurePropertyHandler::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- if( (rStrImpValue.indexOf( sal_Unicode('%') ) != -1) != mbPercent )
- return sal_False;
-
- sal_Int32 nValue;
-
- if( mbPercent )
- {
- if( !rUnitConverter.convertPercent( nValue, rStrImpValue ) )
- return sal_False;
- }
- else
- {
- if( !rUnitConverter.convertMeasure( nValue, rStrImpValue ) )
- return sal_False;
- }
-
- rValue <<= nValue;
- return sal_True;
-}
-
-sal_Bool XMLPercentOrMeasurePropertyHandler::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- sal_Int32 nValue = 0;
- if( !(rValue >>= nValue ) )
- return sal_False;
-
- if( mbPercent )
- {
- rUnitConverter.convertPercent( aOut, nValue );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, nValue );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLRectangleMembersHandler.cxx b/xmloff/source/style/XMLRectangleMembersHandler.cxx
deleted file mode 100644
index 8461ee8d32..0000000000
--- a/xmloff/source/style/XMLRectangleMembersHandler.cxx
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-#include <com/sun/star/awt/Rectangle.hdl>
-#include "XMLRectangleMembersHandler.hxx"
-#include <xmloff/xmltypes.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-
-XMLRectangleMembersHdl::XMLRectangleMembersHdl( sal_Int32 nType )
-: mnType( nType )
-{
-}
-
-XMLRectangleMembersHdl::~XMLRectangleMembersHdl()
-{
-}
-
-sal_Bool XMLRectangleMembersHdl::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- awt::Rectangle aRect( 0, 0, 0, 0 );
- if( rValue.hasValue() )
- rValue >>= aRect;
-
- sal_Int32 nValue;
-
- if( rUnitConverter.convertMeasure( nValue, rStrImpValue ) )
- {
- switch( mnType )
- {
- case XML_TYPE_RECTANGLE_LEFT :
- aRect.X = nValue;
- break;
- case XML_TYPE_RECTANGLE_TOP :
- aRect.Y = nValue;
- break;
- case XML_TYPE_RECTANGLE_WIDTH :
- aRect.Width = nValue;
- break;
- case XML_TYPE_RECTANGLE_HEIGHT :
- aRect.Height = nValue;
- break;
- }
-
- rValue <<= aRect;
- return sal_True;
- }
-
- return sal_False;
-}
-
-sal_Bool XMLRectangleMembersHdl::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- awt::Rectangle aRect( 0, 0, 0, 0 );
- rValue >>= aRect;
-
- sal_Int32 nValue;
-
- switch( mnType )
- {
- case XML_TYPE_RECTANGLE_LEFT :
- nValue = aRect.X;
- break;
- case XML_TYPE_RECTANGLE_TOP :
- nValue = aRect.Y;
- break;
- case XML_TYPE_RECTANGLE_WIDTH :
- nValue = aRect.Width;
- break;
- case XML_TYPE_RECTANGLE_HEIGHT :
- nValue = aRect.Height;
- break;
- default:
- nValue = 0; // TODO What value should this be?
- break;
- }
-
- rtl::OUStringBuffer sBuffer;
- rUnitConverter.convertMeasure( sBuffer, nValue );
- rStrExpValue = sBuffer.makeStringAndClear();
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/adjushdl.cxx b/xmloff/source/style/adjushdl.cxx
deleted file mode 100644
index a1d0263289..0000000000
--- a/xmloff/source/style/adjushdl.cxx
+++ /dev/null
@@ -1,138 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <adjushdl.hxx>
-#include <tools/solar.h>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/style/ParagraphAdjust.hpp>
-#include <com/sun/star/uno/Any.hxx>
-
-using namespace ::com::sun::star;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry const pXML_Para_Adjust_Enum[] =
-{
- { XML_START, style::ParagraphAdjust_LEFT },
- { XML_END, style::ParagraphAdjust_RIGHT },
- { XML_CENTER, style::ParagraphAdjust_CENTER },
- { XML_JUSTIFY, style::ParagraphAdjust_BLOCK },
- { XML_JUSTIFIED, style::ParagraphAdjust_BLOCK }, // obsolete
- { XML_LEFT, style::ParagraphAdjust_LEFT },
- { XML_RIGHT, style::ParagraphAdjust_RIGHT },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry const pXML_Para_Align_Last_Enum[] =
-{
- { XML_START, style::ParagraphAdjust_LEFT },
- { XML_CENTER, style::ParagraphAdjust_CENTER },
- { XML_JUSTIFY, style::ParagraphAdjust_BLOCK },
- { XML_JUSTIFIED, style::ParagraphAdjust_BLOCK }, // obsolete
- { XML_TOKEN_INVALID, 0 }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLParaAdjustPropHdl
-//
-
-XMLParaAdjustPropHdl::~XMLParaAdjustPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLParaAdjustPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eAdjust;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( eAdjust, rStrImpValue, pXML_Para_Adjust_Enum );
- if( bRet )
- rValue <<= (sal_Int16)eAdjust;
-
- return bRet;
-}
-
-sal_Bool XMLParaAdjustPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- if(!rValue.hasValue())
- return sal_False;
- OUStringBuffer aOut;
- sal_Int16 nVal = 0;
-
- rValue >>= nVal;
-
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( aOut, nVal, pXML_Para_Adjust_Enum, XML_START );
-
- rStrExpValue = aOut.makeStringAndClear();
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLLastLineAdjustPropHdl
-//
-
-XMLLastLineAdjustPropHdl::~XMLLastLineAdjustPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLLastLineAdjustPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eAdjust;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( eAdjust, rStrImpValue, pXML_Para_Align_Last_Enum );
- if( bRet )
- rValue <<= (sal_Int16)eAdjust;
-
- return bRet;
-}
-
-sal_Bool XMLLastLineAdjustPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut;
- sal_Int16 nVal = 0;
- sal_Bool bRet = sal_False;
-
- rValue >>= nVal;
-
- if( nVal != style::ParagraphAdjust_LEFT )
- bRet = SvXMLUnitConverter::convertEnum( aOut, nVal, pXML_Para_Align_Last_Enum, XML_START );
-
- rStrExpValue = aOut.makeStringAndClear();
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/adjushdl.hxx b/xmloff/source/style/adjushdl.hxx
deleted file mode 100644
index 39b7e8b350..0000000000
--- a/xmloff/source/style/adjushdl.hxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_ADJUSTTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_ADJUSTTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLParaAdjustPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLParaAdjustPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLLastLineAdjustPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLLastLineAdjustPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_ADJUSTTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/backhdl.cxx b/xmloff/source/style/backhdl.cxx
deleted file mode 100644
index 41598b42f7..0000000000
--- a/xmloff/source/style/backhdl.cxx
+++ /dev/null
@@ -1,300 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <backhdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry pXML_BrushHorizontalPos[] =
-{
- { XML_LEFT, style::GraphicLocation_LEFT_MIDDLE },
- { XML_RIGHT, style::GraphicLocation_RIGHT_MIDDLE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry pXML_BrushVerticalPos[] =
-{
- { XML_TOP, style::GraphicLocation_MIDDLE_TOP },
- { XML_BOTTOM, style::GraphicLocation_MIDDLE_BOTTOM },
- { XML_TOKEN_INVALID, 0 }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLBackGraphicPositionPropHdl
-//
-
-XMLBackGraphicPositionPropHdl::~XMLBackGraphicPositionPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLBackGraphicPositionPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_True;
- style::GraphicLocation ePos = style::GraphicLocation_NONE, eTmp;
- sal_uInt16 nTmp;
- SvXMLTokenEnumerator aTokenEnum( rStrImpValue );
- OUString aToken;
- sal_Bool bHori = sal_False, bVert = sal_False;
-
- while( bRet && aTokenEnum.getNextToken( aToken ) )
- {
- if( bHori && bVert )
- {
- bRet = sal_False;
- }
- else if( -1 != aToken.indexOf( sal_Unicode('%') ) )
- {
- sal_Int32 nPrc = 50;
- if( SvXMLUnitConverter::convertPercent( nPrc, aToken ) )
- {
- if( !bHori )
- {
- ePos = nPrc < 25 ? style::GraphicLocation_LEFT_TOP :
- (nPrc < 75 ? style::GraphicLocation_MIDDLE_MIDDLE :
- style::GraphicLocation_RIGHT_BOTTOM);
- bHori = sal_True;
- }
- else
- {
- eTmp = nPrc < 25 ? style::GraphicLocation_LEFT_TOP:
- (nPrc < 75 ? style::GraphicLocation_LEFT_MIDDLE :
- style::GraphicLocation_LEFT_BOTTOM);
- MergeXMLVertPos( ePos, eTmp );
- bVert = sal_True;
- }
- }
- else
- {
- // wrong percentage
- bRet = sal_False;
- }
- }
- else if( IsXMLToken( aToken, XML_CENTER ) )
- {
- if( bHori )
- MergeXMLVertPos( ePos, style::GraphicLocation_MIDDLE_MIDDLE );
- else if ( bVert )
- MergeXMLHoriPos( ePos, style::GraphicLocation_MIDDLE_MIDDLE );
- else
- ePos = style::GraphicLocation_MIDDLE_MIDDLE;
- }
- else if( SvXMLUnitConverter::convertEnum( nTmp, aToken, pXML_BrushHorizontalPos ) )
- {
- if( bVert )
- MergeXMLHoriPos( ePos, (style::GraphicLocation)nTmp );
- else if( !bHori )
- ePos = (style::GraphicLocation)nTmp;
- else
- bRet = sal_False;
-
- bHori = sal_True;
- }
- else if( SvXMLUnitConverter::convertEnum( nTmp, aToken, pXML_BrushVerticalPos ) )
- {
- if( bHori )
- MergeXMLVertPos( ePos, (style::GraphicLocation)nTmp );
- else if( !bVert )
- ePos = (style::GraphicLocation)nTmp;
- else
- bRet = sal_False;
- bVert = sal_True;
- }
- else
- {
- bRet = sal_False;
- }
- }
-
- bRet &= style::GraphicLocation_NONE != ePos;
- if( bRet )
- rValue <<= (style::GraphicLocation)(sal_uInt16)ePos;
-
- return bRet;
-}
-
-sal_Bool XMLBackGraphicPositionPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_True;
- OUStringBuffer aOut;
-
- style::GraphicLocation eLocation;
- if( !( rValue >>= eLocation ) )
- {
- sal_Int32 nValue = 0;
- if( rValue >>= nValue )
- eLocation = (style::GraphicLocation)nValue;
- else
- bRet = sal_False;
- }
-
- if( bRet )
- {
- bRet = sal_False;
-
- switch( eLocation )
- {
- case style::GraphicLocation_LEFT_TOP:
- case style::GraphicLocation_MIDDLE_TOP:
- case style::GraphicLocation_RIGHT_TOP:
- aOut.append( GetXMLToken(XML_TOP) );
- bRet = sal_True;
- break;
- case style::GraphicLocation_LEFT_MIDDLE:
- case style::GraphicLocation_MIDDLE_MIDDLE:
- case style::GraphicLocation_RIGHT_MIDDLE:
- aOut.append( GetXMLToken(XML_CENTER) );
- bRet = sal_True;
- break;
- case style::GraphicLocation_LEFT_BOTTOM:
- case style::GraphicLocation_MIDDLE_BOTTOM:
- case style::GraphicLocation_RIGHT_BOTTOM:
- aOut.append( GetXMLToken(XML_BOTTOM) );
- bRet = sal_True;
- break;
- default:
- break;
- }
-
- if( bRet )
- {
- aOut.append( sal_Unicode( ' ' ) );
-
- switch( eLocation )
- {
- case style::GraphicLocation_LEFT_TOP:
- case style::GraphicLocation_LEFT_BOTTOM:
- case style::GraphicLocation_LEFT_MIDDLE:
- aOut.append( GetXMLToken(XML_LEFT) );
- break;
- case style::GraphicLocation_MIDDLE_TOP:
- case style::GraphicLocation_MIDDLE_MIDDLE:
- case style::GraphicLocation_MIDDLE_BOTTOM:
- aOut.append( GetXMLToken(XML_CENTER) );
- break;
- case style::GraphicLocation_RIGHT_MIDDLE:
- case style::GraphicLocation_RIGHT_TOP:
- case style::GraphicLocation_RIGHT_BOTTOM:
- aOut.append( GetXMLToken(XML_RIGHT) );
- break;
- default:
- break;
- }
- }
- }
-
- rStrExpValue = aOut.makeStringAndClear();
-
- return bRet;
-}
-
-void XMLBackGraphicPositionPropHdl::MergeXMLVertPos( style::GraphicLocation& ePos, style::GraphicLocation eVert ) const
-{
- switch( ePos )
- {
- case style::GraphicLocation_LEFT_TOP:
- case style::GraphicLocation_LEFT_MIDDLE:
- case style::GraphicLocation_LEFT_BOTTOM:
- ePos = style::GraphicLocation_MIDDLE_TOP==eVert ?
- style::GraphicLocation_LEFT_TOP :
- (style::GraphicLocation_MIDDLE_MIDDLE==eVert ?
- style::GraphicLocation_LEFT_MIDDLE :
- style::GraphicLocation_LEFT_BOTTOM);
- ePos = eVert;
- break;
-
- case style::GraphicLocation_MIDDLE_TOP:
- case style::GraphicLocation_MIDDLE_MIDDLE:
- case style::GraphicLocation_MIDDLE_BOTTOM:
- ePos = eVert;
- break;
-
- case style::GraphicLocation_RIGHT_TOP:
- case style::GraphicLocation_RIGHT_MIDDLE:
- case style::GraphicLocation_RIGHT_BOTTOM:
- ePos = style::GraphicLocation_MIDDLE_TOP==eVert ?
- style::GraphicLocation_RIGHT_TOP :
- (style::GraphicLocation_MIDDLE_MIDDLE==eVert ?
- style::GraphicLocation_RIGHT_MIDDLE :
- style::GraphicLocation_RIGHT_BOTTOM);
- break;
- default:
- break;
- }
-}
-
-void XMLBackGraphicPositionPropHdl::MergeXMLHoriPos( style::GraphicLocation& ePos, style::GraphicLocation eHori ) const
-{
- DBG_ASSERT( style::GraphicLocation_LEFT_MIDDLE==eHori || style::GraphicLocation_MIDDLE_MIDDLE==eHori || style::GraphicLocation_RIGHT_MIDDLE==eHori,
- "lcl_frmitems_MergeXMLHoriPos: vertical pos must be middle" );
-
- switch( ePos )
- {
- case style::GraphicLocation_LEFT_TOP:
- case style::GraphicLocation_MIDDLE_TOP:
- case style::GraphicLocation_RIGHT_TOP:
- ePos = style::GraphicLocation_LEFT_MIDDLE==eHori ?
- style::GraphicLocation_LEFT_TOP :
- (style::GraphicLocation_MIDDLE_MIDDLE==eHori ?
- style::GraphicLocation_MIDDLE_TOP :
- style::GraphicLocation_RIGHT_TOP);
- break;
-
- case style::GraphicLocation_LEFT_MIDDLE:
- case style::GraphicLocation_MIDDLE_MIDDLE:
- case style::GraphicLocation_RIGHT_MIDDLE:
- ePos = eHori;
- break;
-
- case style::GraphicLocation_LEFT_BOTTOM:
- case style::GraphicLocation_MIDDLE_BOTTOM:
- case style::GraphicLocation_RIGHT_BOTTOM:
- ePos = style::GraphicLocation_LEFT_MIDDLE==eHori ?
- style::GraphicLocation_LEFT_BOTTOM :
- (style::GraphicLocation_MIDDLE_MIDDLE==eHori ?
- style::GraphicLocation_MIDDLE_BOTTOM :
- style::GraphicLocation_RIGHT_BOTTOM);
- break;
- default:
- break;
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/backhdl.hxx b/xmloff/source/style/backhdl.hxx
deleted file mode 100644
index 602dd2105c..0000000000
--- a/xmloff/source/style/backhdl.hxx
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_BRUSHTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_BRUSHTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-#include <com/sun/star/style/GraphicLocation.hpp>
-#include <com/sun/star/style/GraphicLocation.hpp>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLBackGraphicPositionPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLBackGraphicPositionPropHdl();
-
- /// TabStops will be imported/exported as XML-Elements. So the Import/Export-work must be done at another place.
- using XMLPropertyHandler::importXML;
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-
-private:
- void MergeXMLHoriPos( ::com::sun::star::style::GraphicLocation& ePos, ::com::sun::star::style::GraphicLocation eHori ) const;
- void MergeXMLVertPos( ::com::sun::star::style::GraphicLocation& ePos, ::com::sun::star::style::GraphicLocation eVert ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_BRUSHTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/bordrhdl.cxx b/xmloff/source/style/bordrhdl.cxx
deleted file mode 100644
index 9f9f640c0c..0000000000
--- a/xmloff/source/style/bordrhdl.cxx
+++ /dev/null
@@ -1,374 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <bordrhdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/table/BorderLine2.hpp>
-
-#if DEBUG
-#include <cstdio>
-#endif
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-const sal_uInt16 API_LINE_SOLID = 0;
-const sal_uInt16 API_LINE_DOTTED = 1;
-const sal_uInt16 API_LINE_DASHED = 2;
-const sal_uInt16 API_LINE_DOUBLE = 3;
-const sal_uInt16 API_LINE_THINTHICK_SMALLGAP = 4;
-const sal_uInt16 API_LINE_THINTHICK_MEDIUMGAP = 5;
-const sal_uInt16 API_LINE_THINTHICK_LARGEGAP = 6;
-const sal_uInt16 API_LINE_THICKTHIN_SMALLGAP = 7;
-const sal_uInt16 API_LINE_THICKTHIN_MEDIUMGAP = 8;
-const sal_uInt16 API_LINE_THICKTHIN_LARGEGAP = 9;
-const sal_uInt16 API_LINE_EMBOSSED = 10;
-const sal_uInt16 API_LINE_ENGRAVED = 11;
-const sal_uInt16 API_LINE_OUTSET = 12;
-const sal_uInt16 API_LINE_INSET = 13;
-const sal_uInt16 API_LINE_NONE = USHRT_MAX;
-
-#define DEF_LINE_WIDTH_0 1
-#define DEF_LINE_WIDTH_1 35
-#define DEF_LINE_WIDTH_2 88
-
-#define SVX_XML_BORDER_WIDTH_THIN 0
-#define SVX_XML_BORDER_WIDTH_MIDDLE 1
-#define SVX_XML_BORDER_WIDTH_THICK 2
-
-SvXMLEnumMapEntry pXML_BorderStyles[] =
-{
- { XML_NONE, API_LINE_NONE },
- { XML_HIDDEN, API_LINE_NONE },
- { XML_SOLID, API_LINE_SOLID },
- { XML_DOUBLE, API_LINE_DOUBLE },
- { XML_DOTTED, API_LINE_DOTTED },
- { XML_DASHED, API_LINE_DASHED },
- { XML_GROOVE, API_LINE_ENGRAVED },
- { XML_RIDGE, API_LINE_EMBOSSED },
- { XML_INSET, API_LINE_INSET },
- { XML_OUTSET, API_LINE_OUTSET },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry pXML_NamedBorderWidths[] =
-{
- { XML_THIN, SVX_XML_BORDER_WIDTH_THIN },
- { XML_MIDDLE, SVX_XML_BORDER_WIDTH_MIDDLE },
- { XML_THICK, SVX_XML_BORDER_WIDTH_THICK },
- { XML_TOKEN_INVALID, 0 }
-};
-// mapping tables to map external xml input to intarnal box line widths
-
-
-static sal_uInt16 const aBorderWidths[] =
-{
- DEF_LINE_WIDTH_0,
- DEF_LINE_WIDTH_1,
- DEF_LINE_WIDTH_2
-};
-
-void lcl_frmitems_setXMLBorderStyle( table::BorderLine2 & rBorderLine, sal_uInt16 nStyle )
-{
- sal_Int16 eStyle = -1; // None
- if ( nStyle != API_LINE_NONE )
- eStyle = sal_Int16( nStyle );
-
- rBorderLine.LineStyle = eStyle;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementPropHdl
-//
-
-XMLBorderWidthHdl::~XMLBorderWidthHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLBorderWidthHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- SvXMLTokenEnumerator aTokenEnum( rStrImpValue );
-
- sal_Int32 nInWidth, nDistance, nOutWidth;
-
- OUString aToken;
- if( !aTokenEnum.getNextToken( aToken ) )
- return sal_False;
-
- if( !rUnitConverter.convertMeasure( nInWidth, aToken, 0, 500 ) )
- return sal_False;
-
- if( !aTokenEnum.getNextToken( aToken ) )
- return sal_False;
-
- if( !rUnitConverter.convertMeasure( nDistance, aToken, 0, 500 ) )
- return sal_False;
-
- if( !aTokenEnum.getNextToken( aToken ) )
- return sal_False;
-
- if( !rUnitConverter.convertMeasure( nOutWidth, aToken, 0, 500 ) )
- return sal_False;
-
- table::BorderLine2 aBorderLine;
- if(!(rValue >>= aBorderLine))
- aBorderLine.Color = 0;
-
- aBorderLine.InnerLineWidth = sal::static_int_cast< sal_Int16 >(nInWidth);
- aBorderLine.OuterLineWidth = sal::static_int_cast< sal_Int16 >(nOutWidth);
- aBorderLine.LineDistance = sal::static_int_cast< sal_Int16 >(nDistance);
-
- rValue <<= aBorderLine;
- return sal_True;
-}
-
-sal_Bool XMLBorderWidthHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- table::BorderLine2 aBorderLine;
- if(!(rValue >>= aBorderLine))
- return sal_False;
-
- bool bDouble = false;
- switch ( aBorderLine.LineStyle )
- {
- case API_LINE_DOUBLE:
- case API_LINE_THINTHICK_SMALLGAP:
- case API_LINE_THINTHICK_MEDIUMGAP:
- case API_LINE_THINTHICK_LARGEGAP:
- case API_LINE_THICKTHIN_SMALLGAP:
- case API_LINE_THICKTHIN_MEDIUMGAP:
- case API_LINE_THICKTHIN_LARGEGAP:
- bDouble = true;
- break;
- default:
- break;
- }
-
- if( ( aBorderLine.LineDistance == 0 && aBorderLine.InnerLineWidth == 0 ) || !bDouble )
- return sal_False;
-
- rUnitConverter.convertMeasure( aOut, aBorderLine.InnerLineWidth );
- aOut.append( sal_Unicode( ' ' ) );
- rUnitConverter.convertMeasure( aOut, aBorderLine.LineDistance );
- aOut.append( sal_Unicode( ' ' ) );
- rUnitConverter.convertMeasure( aOut, aBorderLine.OuterLineWidth );
-
- rStrExpValue = aOut.makeStringAndClear();
- return sal_True;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementHeightPropHdl
-//
-
-XMLBorderHdl::~XMLBorderHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLBorderHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUString aToken;
- SvXMLTokenEnumerator aTokens( rStrImpValue );
-
- sal_Bool bHasStyle = sal_False;
- sal_Bool bHasWidth = sal_False;
- sal_Bool bHasColor = sal_False;
-
- sal_uInt16 nStyle = USHRT_MAX;
- sal_uInt16 nWidth = 0;
- sal_uInt16 nNamedWidth = USHRT_MAX;
- Color aColor;
-
- sal_Int32 nTemp;
- while( aTokens.getNextToken( aToken ) && aToken.getLength() != 0 )
- {
- if( !bHasWidth &&
- rUnitConverter.convertEnum( nNamedWidth, aToken,
- pXML_NamedBorderWidths ) )
- {
- bHasWidth = sal_True;
- }
- else if( !bHasStyle &&
- rUnitConverter.convertEnum( nStyle, aToken,
- pXML_BorderStyles ) )
- {
- bHasStyle = sal_True;
- }
- else if( !bHasColor && rUnitConverter.convertColor( aColor, aToken ) )
- {
- bHasColor = sal_True;
- }
- else if( !bHasWidth &&
- rUnitConverter.convertMeasure( nTemp, aToken, 0,
- USHRT_MAX ) )
- {
- nWidth = (sal_uInt16)nTemp;
- bHasWidth = sal_True;
- }
- else
- {
- // missformed
- return sal_False;
- }
- }
-
- // if there is no style or a different style than none but no width,
- // then the declaration is not valid.
- if( !bHasStyle || (API_LINE_NONE != nStyle && !bHasWidth) )
- return sal_False;
-
- table::BorderLine2 aBorderLine;
- if(!(rValue >>= aBorderLine))
- {
- aBorderLine.Color = 0;
- aBorderLine.InnerLineWidth = 0;
- aBorderLine.OuterLineWidth = 0;
- aBorderLine.LineDistance = 0;
- aBorderLine.LineWidth = 0;
- }
-
- // first of all, delete an empty line
- if( (bHasStyle && API_LINE_NONE == nStyle) ||
- (bHasWidth && USHRT_MAX == nNamedWidth && 0 == nWidth) )
- {
- aBorderLine.InnerLineWidth = 0;
- aBorderLine.OuterLineWidth = 0;
- aBorderLine.LineDistance = 0;
- aBorderLine.LineWidth = 0;
- }
- else if( bHasWidth )
- {
- if( USHRT_MAX != nNamedWidth )
- {
- aBorderLine.LineWidth = aBorderWidths[nNamedWidth];
- }
- else
- {
- aBorderLine.LineWidth = nWidth;
- lcl_frmitems_setXMLBorderStyle( aBorderLine, nStyle );
- }
- }
- else
- {
- aBorderLine.LineWidth = 0;
- lcl_frmitems_setXMLBorderStyle( aBorderLine, nStyle );
- }
-
- // set color
- if( bHasColor )
- aBorderLine.Color = (sal_Int32)aColor.GetRGBColor();
-
- rValue <<= aBorderLine;
- return sal_True;
-}
-
-sal_Bool XMLBorderHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- table::BorderLine2 aBorderLine;
- if(!(rValue >>= aBorderLine))
- return sal_False;
-
- sal_Int32 nWidth = aBorderLine.LineWidth;
-
- if( nWidth == 0 )
- {
- aOut.append( GetXMLToken( XML_NONE ) );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, nWidth,
- MAP_100TH_MM, MAP_POINT );
-
- aOut.append( sal_Unicode( ' ' ) );
-
- XMLTokenEnum eStyleToken = XML_SOLID;
- switch ( aBorderLine.LineStyle )
- {
- case API_LINE_DASHED:
- eStyleToken = XML_DASHED;
- break;
- case API_LINE_DOTTED:
- eStyleToken = XML_DOTTED;
- break;
- case API_LINE_DOUBLE:
- case API_LINE_THINTHICK_SMALLGAP:
- case API_LINE_THINTHICK_MEDIUMGAP:
- case API_LINE_THINTHICK_LARGEGAP:
- case API_LINE_THICKTHIN_SMALLGAP:
- case API_LINE_THICKTHIN_MEDIUMGAP:
- case API_LINE_THICKTHIN_LARGEGAP:
- eStyleToken = XML_DOUBLE;
- break;
- case API_LINE_EMBOSSED:
- eStyleToken = XML_RIDGE;
- break;
- case API_LINE_ENGRAVED:
- eStyleToken = XML_GROOVE;
- break;
- case API_LINE_OUTSET:
- eStyleToken = XML_OUTSET;
- break;
- case API_LINE_INSET:
- eStyleToken = XML_INSET;
- break;
- case API_LINE_SOLID:
- default:
- break;
- }
- aOut.append( GetXMLToken( eStyleToken ) );
-
- aOut.append( sal_Unicode( ' ' ) );
-
- rUnitConverter.convertColor( aOut, aBorderLine.Color );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
-
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/bordrhdl.hxx b/xmloff/source/style/bordrhdl.hxx
deleted file mode 100644
index fe895e0fcc..0000000000
--- a/xmloff/source/style/bordrhdl.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_BORDERTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_BORDERTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLBorderWidthHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLBorderWidthHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLBorderHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLBorderHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_CHARLOCALETYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/breakhdl.cxx b/xmloff/source/style/breakhdl.cxx
deleted file mode 100644
index 4bd6e84f4e..0000000000
--- a/xmloff/source/style/breakhdl.cxx
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <breakhdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/style/BreakType.hpp>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry pXML_BreakTypes[] =
-{
- { XML_AUTO, 0 },
- { XML_COLUMN, 1 },
- { XML_PAGE, 2 },
- { XML_EVEN_PAGE, 2 },
- { XML_ODD_PAGE, 2 },
- { XML_TOKEN_INVALID, 0}
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFmtBreakBeforePropHdl
-//
-
-XMLFmtBreakBeforePropHdl::~XMLFmtBreakBeforePropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFmtBreakBeforePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 nEnum;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( nEnum, rStrImpValue, pXML_BreakTypes );
- if( bRet )
- {
- style::BreakType eBreak;
- switch ( nEnum )
- {
- case 0:
- eBreak = style::BreakType_NONE;
- break;
- case 1:
- eBreak = style::BreakType_COLUMN_BEFORE;
- break;
- default:
- eBreak = style::BreakType_PAGE_BEFORE;
- break;
- }
- rValue <<= eBreak;
- }
-
- return bRet;
-}
-
-sal_Bool XMLFmtBreakBeforePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- style::BreakType eBreak;
-
- if( !( rValue >>= eBreak ) )
- {
- sal_Int32 nValue = 0;
- if( !( rValue >>= nValue ) )
- return sal_False;
-
- eBreak = (style::BreakType) nValue;
- }
-
- sal_uInt16 nEnum = 0;
- switch( eBreak )
- {
- case style::BreakType_COLUMN_BEFORE:
- nEnum = 1;
- break;
- case style::BreakType_PAGE_BEFORE:
- nEnum = 2;
- break;
- case style::BreakType_NONE:
- nEnum = 0;
- break;
- default:
- return sal_False;
- }
-
- OUStringBuffer aOut;
- /* sal_Bool bOk = */ SvXMLUnitConverter::convertEnum( aOut, nEnum, pXML_BreakTypes );
- rStrExpValue = aOut.makeStringAndClear();
-
- return sal_True;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFmtBreakBeforePropHdl
-//
-
-XMLFmtBreakAfterPropHdl::~XMLFmtBreakAfterPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFmtBreakAfterPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 nEnum;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( nEnum, rStrImpValue, pXML_BreakTypes );
- if( bRet )
- {
- style::BreakType eBreak;
- switch ( nEnum )
- {
- case 0:
- eBreak = style::BreakType_NONE;
- break;
- case 1:
- eBreak = style::BreakType_COLUMN_AFTER;
- break;
- default:
- eBreak = style::BreakType_PAGE_AFTER;
- break;
- }
- rValue <<= eBreak;
- }
-
- return bRet;
-}
-
-sal_Bool XMLFmtBreakAfterPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- style::BreakType eBreak;
-
- if( !( rValue >>= eBreak ) )
- {
- sal_Int32 nValue = 0;
- if( !( rValue >>= nValue ) )
- return sal_False;
-
- eBreak = (style::BreakType) nValue;
- }
-
- sal_uInt16 nEnum = 0;
- switch( eBreak )
- {
- case style::BreakType_COLUMN_AFTER:
- nEnum = 1;
- break;
- case style::BreakType_PAGE_AFTER:
- nEnum = 2;
- break;
- case style::BreakType_NONE:
- nEnum = 0;
- break;
- default:
- return sal_False;
- }
-
- OUStringBuffer aOut;
- /* sal_Bool bOk = */ SvXMLUnitConverter::convertEnum( aOut, nEnum, pXML_BreakTypes );
- rStrExpValue = aOut.makeStringAndClear();
-
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/breakhdl.hxx b/xmloff/source/style/breakhdl.hxx
deleted file mode 100644
index 1056d665d5..0000000000
--- a/xmloff/source/style/breakhdl.hxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_BREAKTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_BREAKTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFmtBreakBeforePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFmtBreakBeforePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFmtBreakAfterPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFmtBreakAfterPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_BREAKTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/cdouthdl.cxx b/xmloff/source/style/cdouthdl.cxx
deleted file mode 100644
index 1a2ea816e6..0000000000
--- a/xmloff/source/style/cdouthdl.cxx
+++ /dev/null
@@ -1,332 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <cdouthdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <com/sun/star/awt/FontStrikeout.hpp>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::awt;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry pXML_CrossedoutType_Enum[] =
-{
- { XML_NONE, FontStrikeout::NONE },
- { XML_SINGLE, FontStrikeout::SINGLE },
- { XML_DOUBLE, FontStrikeout::DOUBLE },
- { XML_SINGLE, FontStrikeout::BOLD },
- { XML_SINGLE, FontStrikeout::SLASH },
- { XML_SINGLE, FontStrikeout::X },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry pXML_CrossedoutStyle_Enum[] =
-{
- { XML_NONE, FontStrikeout::NONE },
- { XML_SOLID, FontStrikeout::SINGLE },
- { XML_SOLID, FontStrikeout::DOUBLE },
- { XML_SOLID, FontStrikeout::BOLD },
- { XML_SOLID, FontStrikeout::SLASH },
- { XML_SOLID, FontStrikeout::X },
- { XML_DOTTED, FontStrikeout::SINGLE },
- { XML_DASH, FontStrikeout::SINGLE },
- { XML_LONG_DASH, FontStrikeout::SINGLE },
- { XML_DOT_DASH, FontStrikeout::SINGLE },
- { XML_DOT_DOT_DASH, FontStrikeout::SINGLE },
- { XML_WAVE, FontStrikeout::SINGLE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry pXML_CrossedoutWidth_Enum[] =
-{
- { XML_AUTO, FontStrikeout::NONE },
- { XML_AUTO, FontStrikeout::SINGLE },
- { XML_AUTO, FontStrikeout::DOUBLE },
- { XML_BOLD, FontStrikeout::BOLD },
- { XML_AUTO, FontStrikeout::SLASH },
- { XML_AUTO, FontStrikeout::X },
- { XML_THIN, FontStrikeout::NONE },
- { XML_MEDIUM, FontStrikeout::NONE },
- { XML_THICK, FontStrikeout::NONE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLCrossedOutTypePropHdl
-//
-
-XMLCrossedOutTypePropHdl::~XMLCrossedOutTypePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCrossedOutTypePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewStrikeout;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- eNewStrikeout, rStrImpValue, pXML_CrossedoutType_Enum );
- if( bRet )
- {
- // multi property: style and width might be set already.
- // If the old value is NONE, the new is used unchanged.
- sal_Int16 eStrikeout = sal_Int16();
- if( (rValue >>= eStrikeout) && FontStrikeout::NONE!=eStrikeout )
- {
- switch( eNewStrikeout )
- {
- case FontStrikeout::NONE:
- case FontStrikeout::SINGLE:
- // keep existing line style
- eNewStrikeout = eStrikeout;
- break;
- case FontStrikeout::DOUBLE:
- // A double line style has priority over a solid or a bold
- // line style,
- // but not about any other line style
- switch( eStrikeout )
- {
- case FontStrikeout::SINGLE:
- case FontStrikeout::BOLD:
- break;
- default:
- // If a double line style is not supported for the existing
- // value, keep the new one
- eNewStrikeout = eStrikeout;
- break;
- }
- break;
- default:
- OSL_ENSURE( bRet, "unexpected line type value" );
- break;
- }
- if( eNewStrikeout != eStrikeout )
- rValue <<= (sal_Int16)eNewStrikeout;
- }
- else
- {
- rValue <<= (sal_Int16)eNewStrikeout;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLCrossedOutTypePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
- OUStringBuffer aOut;
-
- if( (rValue >>= nValue) && FontStrikeout::DOUBLE==nValue )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, (sal_uInt16)nValue, pXML_CrossedoutType_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLCrossedOutStylePropHdl
-//
-
-XMLCrossedOutStylePropHdl::~XMLCrossedOutStylePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCrossedOutStylePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewStrikeout;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- eNewStrikeout, rStrImpValue, pXML_CrossedoutStyle_Enum );
- if( bRet )
- {
- // multi property: style and width might be set already.
- // If the old value is NONE, the new is used unchanged.
- sal_Int16 eStrikeout = sal_Int16();
- if( (rValue >>= eStrikeout) && FontStrikeout::NONE!=eStrikeout )
- {
- // one NONE a SINGLE are possible new values. For both, the
- // existing value is kept.
- }
- else
- {
- rValue <<= (sal_Int16)eNewStrikeout;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLCrossedOutStylePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
- OUStringBuffer aOut;
-
- if( rValue >>= nValue )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, (sal_uInt16)nValue, pXML_CrossedoutStyle_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLCrossedOutWidthPropHdl
-//
-
-XMLCrossedOutWidthPropHdl::~XMLCrossedOutWidthPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCrossedOutWidthPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewStrikeout;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- eNewStrikeout, rStrImpValue, pXML_CrossedoutWidth_Enum );
- if( bRet )
- {
- // multi property: style and width might be set already.
- // If the old value is NONE, the new is used unchanged.
- sal_Int16 eStrikeout = sal_Int16();
- if( (rValue >>= eStrikeout) && FontStrikeout::NONE!=eStrikeout )
- {
- switch( eNewStrikeout )
- {
- case FontStrikeout::NONE:
- // keep existing line style
- eNewStrikeout = eStrikeout;
- break;
- case FontStrikeout::BOLD:
- switch( eStrikeout )
- {
- case FontStrikeout::SINGLE:
- break;
- default:
- // If a double line style is not supported for the existing
- // value, keep the new one
- eNewStrikeout = eStrikeout;
- break;
- }
- default:
- OSL_ENSURE( bRet, "unexpected line type value" );
- break;
- }
- if( eNewStrikeout != eStrikeout )
- rValue <<= (sal_Int16)eNewStrikeout;
- }
- else
- {
- rValue <<= (sal_Int16)eNewStrikeout;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLCrossedOutWidthPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
- OUStringBuffer aOut;
-
- if( (rValue >>= nValue) && (FontStrikeout::BOLD == nValue) )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, (sal_uInt16)nValue, pXML_CrossedoutWidth_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLCrossedOutTextPropHdl
-//
-
-XMLCrossedOutTextPropHdl::~XMLCrossedOutTextPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCrossedOutTextPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if( rStrImpValue.getLength() )
- {
- sal_Int16 eStrikeout = ('/' == rStrImpValue[0]
- ? FontStrikeout::SLASH
- : FontStrikeout::X);
- rValue <<= (sal_Int16)eStrikeout;
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-sal_Bool XMLCrossedOutTextPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
-
- if( (rValue >>= nValue) &&
- (FontStrikeout::SLASH == nValue || FontStrikeout::X == nValue) )
- {
- rStrExpValue = OUString::valueOf(
- static_cast< sal_Unicode>( FontStrikeout::SLASH == nValue ? '/'
- : 'X' ) );
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/cdouthdl.hxx b/xmloff/source/style/cdouthdl.hxx
deleted file mode 100644
index 150b72d3a6..0000000000
--- a/xmloff/source/style/cdouthdl.hxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_CROSSEDOUTTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_CROSSEDOUTTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLCrossedOutTypePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCrossedOutTypePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCrossedOutStylePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCrossedOutStylePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCrossedOutWidthPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCrossedOutWidthPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCrossedOutTextPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCrossedOutTextPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_CROSSEDOUTTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/chrhghdl.cxx b/xmloff/source/style/chrhghdl.cxx
deleted file mode 100644
index 9a73301604..0000000000
--- a/xmloff/source/style/chrhghdl.cxx
+++ /dev/null
@@ -1,167 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <chrhghdl.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "xmlehelp.hxx"
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-
-// this is a copy of defines in svx/inc/escpitem.hxx
-#define DFLT_ESC_PROP 58
-#define DFLT_ESC_AUTO_SUPER 101
-#define DFLT_ESC_AUTO_SUB -101
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementPropHdl
-//
-
-XMLCharHeightHdl::~XMLCharHeightHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCharHeightHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- if( rStrImpValue.indexOf( sal_Unicode('%') ) == -1 )
- {
- double fSize;
- MapUnit eSrcUnit = SvXMLExportHelper::GetUnitFromString( rStrImpValue, MAP_POINT );
- if( SvXMLUnitConverter::convertDouble( fSize, rStrImpValue, eSrcUnit, MAP_POINT ))
- {
- rValue <<= (float)fSize;
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-sal_Bool XMLCharHeightHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut;
-
- float fSize = 0;
- if( rValue >>= fSize )
- {
- SvXMLUnitConverter::convertDouble( aOut, (double)fSize, sal_True, MAP_POINT, MAP_POINT );
- aOut.append( sal_Unicode('p'));
- aOut.append( sal_Unicode('t'));
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementHeightPropHdl
-//
-
-XMLCharHeightPropHdl::~XMLCharHeightPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCharHeightPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- if( rStrImpValue.indexOf( sal_Unicode('%') ) != -1 )
- {
- sal_Int32 nPrc = 100;
- if( SvXMLUnitConverter::convertPercent( nPrc, rStrImpValue ) )
- {
- rValue <<= (sal_Int16)nPrc;
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-sal_Bool XMLCharHeightPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut( rStrExpValue );
-
- sal_Int16 nValue = sal_Int16();
- if( rValue >>= nValue )
- {
- SvXMLUnitConverter::convertPercent( aOut, nValue );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementPropHdl
-//
-
-XMLCharHeightDiffHdl::~XMLCharHeightDiffHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCharHeightDiffHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Int32 nRel = 0;
-
- if( SvXMLUnitConverter::convertMeasure( nRel, rStrImpValue, MAP_POINT ) )
- {
- rValue <<= (float)nRel;
- return sal_True;
- }
-
- return sal_False;
-}
-
-sal_Bool XMLCharHeightDiffHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut;
-
- float nRel = 0;
- if( (rValue >>= nRel) && (nRel != 0) )
- {
- SvXMLUnitConverter::convertMeasure( aOut, (sal_Int32)nRel, MAP_POINT, MAP_POINT );
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return rStrExpValue.getLength() != 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/chrhghdl.hxx b/xmloff/source/style/chrhghdl.hxx
deleted file mode 100644
index dd23d88b9d..0000000000
--- a/xmloff/source/style/chrhghdl.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_CHARHEIGHTTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_CHARHEIGHTTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLCharHeightHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCharHeightHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCharHeightPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCharHeightPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCharHeightDiffHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCharHeightDiffHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_CHARHEIGHTTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/chrlohdl.cxx b/xmloff/source/style/chrlohdl.cxx
deleted file mode 100644
index c053631907..0000000000
--- a/xmloff/source/style/chrlohdl.cxx
+++ /dev/null
@@ -1,147 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <chrlohdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/lang/Locale.hpp>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-// this is a copy of defines in svx/inc/escpitem.hxx
-#define DFLT_ESC_PROP 58
-#define DFLT_ESC_AUTO_SUPER 101
-#define DFLT_ESC_AUTO_SUB -101
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementPropHdl
-//
-
-XMLCharLanguageHdl::~XMLCharLanguageHdl()
-{
- // nothing to do
-}
-
-bool XMLCharLanguageHdl::equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const
-{
- sal_Bool bRet = sal_False;
- lang::Locale aLocale1, aLocale2;
-
- if( ( r1 >>= aLocale1 ) && ( r2 >>= aLocale2 ) )
- bRet = ( aLocale1.Language == aLocale2.Language );
-
- return bRet;
-}
-
-sal_Bool XMLCharLanguageHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- lang::Locale aLocale;
-
- rValue >>= aLocale;
-
- if( !IsXMLToken(rStrImpValue, XML_NONE) )
- aLocale.Language = rStrImpValue;
-
- rValue <<= aLocale;
- return sal_True;
-}
-
-sal_Bool XMLCharLanguageHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- lang::Locale aLocale;
- if(!(rValue >>= aLocale))
- return sal_False;
-
- rStrExpValue = aLocale.Language;
-
- if( !rStrExpValue.getLength() )
- rStrExpValue = GetXMLToken( XML_NONE );
-
- return sal_True;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementHeightPropHdl
-//
-
-XMLCharCountryHdl::~XMLCharCountryHdl()
-{
- // nothing to do
-}
-
-bool XMLCharCountryHdl::equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const
-{
- sal_Bool bRet = sal_False;
- lang::Locale aLocale1, aLocale2;
-
- if( ( r1 >>= aLocale1 ) && ( r2 >>= aLocale2 ) )
- bRet = ( aLocale1.Country == aLocale2.Country );
-
- return bRet;
-}
-
-sal_Bool XMLCharCountryHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- lang::Locale aLocale;
-
- rValue >>= aLocale;
-
- if( !IsXMLToken( rStrImpValue, XML_NONE ) )
- aLocale.Country = rStrImpValue;
-
- rValue <<= aLocale;
- return sal_True;
-}
-
-sal_Bool XMLCharCountryHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- lang::Locale aLocale;
- if(!(rValue >>= aLocale))
- return sal_False;
-
- rStrExpValue = aLocale.Country;
-
- if( !rStrExpValue.getLength() )
- rStrExpValue = GetXMLToken( XML_NONE );
-
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/chrlohdl.hxx b/xmloff/source/style/chrlohdl.hxx
deleted file mode 100644
index 0845fe8cd5..0000000000
--- a/xmloff/source/style/chrlohdl.hxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_CHARLOCALETYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_CHARLOCALETYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLCharLanguageHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCharLanguageHdl();
-
- virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCharCountryHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCharCountryHdl();
-
- virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_CHARLOCALETYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/csmaphdl.cxx b/xmloff/source/style/csmaphdl.cxx
deleted file mode 100644
index 5dd160b2b2..0000000000
--- a/xmloff/source/style/csmaphdl.cxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <csmaphdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/style/CaseMap.hpp>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-static SvXMLEnumMapEntry pXML_Casemap_Enum[] =
-{
- { XML_NONE, style::CaseMap::NONE },
- { XML_CASEMAP_LOWERCASE, style::CaseMap::LOWERCASE },
- { XML_CASEMAP_UPPERCASE, style::CaseMap::UPPERCASE },
- { XML_CASEMAP_CAPITALIZE, style::CaseMap::TITLE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLPosturePropHdl
-//
-
-XMLCaseMapPropHdl::~XMLCaseMapPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCaseMapPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 nVal;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- nVal, rStrImpValue, pXML_Casemap_Enum );
- if( ( bRet ) )
- rValue <<= nVal;
-
- return bRet;
-}
-
-sal_Bool XMLCaseMapPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_uInt16 nValue = sal_uInt16();
- OUStringBuffer aOut;
-
- if( rValue >>= nValue )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, nValue, pXML_Casemap_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLCaseMapVariantHdl
-//
-
-XMLCaseMapVariantHdl::~XMLCaseMapVariantHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLCaseMapVariantHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if( IsXMLToken( rStrImpValue, XML_CASEMAP_SMALL_CAPS ) )
- {
- rValue <<= (sal_Int16)style::CaseMap::SMALLCAPS;
- bRet = sal_True;
- }
- else if( IsXMLToken( rStrImpValue, XML_CASEMAP_NORMAL ) )
- {
- rValue <<= (sal_Int16)style::CaseMap::NONE;
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-sal_Bool XMLCaseMapVariantHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 nValue = sal_uInt16();
- OUStringBuffer aOut;
-
- if( rValue >>= nValue )
- {
- switch( nValue )
- {
- case style::CaseMap::NONE:
- aOut.append( GetXMLToken(XML_CASEMAP_NORMAL) );
- break;
- case style::CaseMap::SMALLCAPS:
- aOut.append( GetXMLToken(XML_CASEMAP_SMALL_CAPS) );
- break;
- }
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/csmaphdl.hxx b/xmloff/source/style/csmaphdl.hxx
deleted file mode 100644
index d6b8c69d70..0000000000
--- a/xmloff/source/style/csmaphdl.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_CASEMAPTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_CASEMAPTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLCaseMapPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCaseMapPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLCaseMapVariantHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCaseMapVariantHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_CASEMAPTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/durationhdl.cxx b/xmloff/source/style/durationhdl.cxx
deleted file mode 100644
index 9921aed5a8..0000000000
--- a/xmloff/source/style/durationhdl.cxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "durationhdl.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/util/DateTime.hpp>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/xmluconv.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::util;
-
-// ---------------------------------------------------------------------------
-
-
-sal_Bool XMLDurationMS16PropHdl_Impl::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- DateTime aTime;
- if( !SvXMLUnitConverter::convertTime( aTime, rStrImpValue ) )
- return false;
-
- const sal_Int16 nMS = ( ( aTime.Hours * 60 + aTime.Minutes ) * 60 + aTime.Seconds ) * 100 + aTime.HundredthSeconds;
- rValue <<= nMS;
-
- return sal_True;
-}
-
-sal_Bool XMLDurationMS16PropHdl_Impl::exportXML(
- OUString& rStrExpValue,
- const Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Int16 nMS = sal_Int16();
-
- if(rValue >>= nMS)
- {
- OUStringBuffer aOut;
- DateTime aTime( nMS, 0, 0, 0, 0, 0, 0 );
- SvXMLUnitConverter::convertTime( aOut, aTime );
- rStrExpValue = aOut.makeStringAndClear();
- return sal_True;
- }
-
- return sal_False;
-}
-
-XMLDurationMS16PropHdl_Impl::~XMLDurationMS16PropHdl_Impl()
-{
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/durationhdl.hxx b/xmloff/source/style/durationhdl.hxx
deleted file mode 100644
index 0cd0ec3285..0000000000
--- a/xmloff/source/style/durationhdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_DURATIONS_HXX
-#define _XMLOFF_PROPERTYHANDLER_DURATIONS_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for a sal_int16 duration in ms:
-*/
-class XMLDurationMS16PropHdl_Impl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLDurationMS16PropHdl_Impl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_FMTSPLITTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/escphdl.cxx b/xmloff/source/style/escphdl.cxx
deleted file mode 100644
index b22ac44878..0000000000
--- a/xmloff/source/style/escphdl.cxx
+++ /dev/null
@@ -1,175 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <escphdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-// this is a copy of defines in svx/inc/escpitem.hxx
-#define DFLT_ESC_PROP 58
-#define DFLT_ESC_AUTO_SUPER 101
-#define DFLT_ESC_AUTO_SUB -101
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementPropHdl
-//
-
-XMLEscapementPropHdl::~XMLEscapementPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLEscapementPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Int16 nVal;
-
- SvXMLTokenEnumerator aTokens( rStrImpValue );
-
- OUString aToken;
- if( ! aTokens.getNextToken( aToken ) )
- return sal_False;
-
- if( IsXMLToken( aToken, XML_ESCAPEMENT_SUB ) )
- {
- nVal = DFLT_ESC_AUTO_SUB;
- }
- else if( IsXMLToken( aToken, XML_ESCAPEMENT_SUPER ) )
- {
- nVal = DFLT_ESC_AUTO_SUPER;
- }
- else
- {
- sal_Int32 nNewEsc;
- if( !SvXMLUnitConverter::convertPercent( nNewEsc, aToken ) )
- return sal_False;
-
- nVal = (sal_Int16) nNewEsc;
- }
-
- rValue <<= nVal;
- return sal_True;
-}
-
-sal_Bool XMLEscapementPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Int32 nValue = 0;
- OUStringBuffer aOut;
-
- if( rValue >>= nValue )
- {
- if( nValue == DFLT_ESC_AUTO_SUPER )
- {
- aOut.append( GetXMLToken(XML_ESCAPEMENT_SUPER) );
- }
- else if( nValue == DFLT_ESC_AUTO_SUB )
- {
- aOut.append( GetXMLToken(XML_ESCAPEMENT_SUB) );
- }
- else
- {
- SvXMLUnitConverter::convertPercent( aOut, nValue );
- }
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return sal_True;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementHeightPropHdl
-//
-
-XMLEscapementHeightPropHdl::~XMLEscapementHeightPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLEscapementHeightPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- if( IsXMLToken( rStrImpValue, XML_CASEMAP_SMALL_CAPS ) )
- return sal_False;
-
- SvXMLTokenEnumerator aTokens( rStrImpValue );
-
- OUString aToken;
- if( ! aTokens.getNextToken( aToken ) )
- return sal_False;
-
- sal_Int8 nProp;
- if( aTokens.getNextToken( aToken ) )
- {
- sal_Int32 nNewProp;
- if( !SvXMLUnitConverter::convertPercent( nNewProp, aToken ) )
- return sal_False;
- nProp = (sal_Int8)nNewProp;
- }
- else
- {
- sal_Int32 nEscapementPosition=0;
- if( SvXMLUnitConverter::convertPercent( nEscapementPosition, aToken ) && nEscapementPosition==0 )
- nProp = 100; //if escapement position is zero and no escapement height is given the default height should be 100percent and not something smaller (#i91800#)
- else
- nProp = (sal_Int8) DFLT_ESC_PROP;
- }
-
- rValue <<= nProp;
- return sal_True;
-}
-
-sal_Bool XMLEscapementHeightPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- OUStringBuffer aOut( rStrExpValue );
-
- sal_Int32 nValue = 0;
- if( rValue >>= nValue )
- {
- if( rStrExpValue.getLength() )
- aOut.append( sal_Unicode(' '));
-
- SvXMLUnitConverter::convertPercent( aOut, nValue );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/escphdl.hxx b/xmloff/source/style/escphdl.hxx
deleted file mode 100644
index dd889f8fbd..0000000000
--- a/xmloff/source/style/escphdl.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_ESCAPETYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_ESCAPETYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLEscapementPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLEscapementPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLEscapementHeightPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLEscapementHeightPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_ESCAPETYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/fonthdl.cxx b/xmloff/source/style/fonthdl.cxx
deleted file mode 100644
index 88bd9178d1..0000000000
--- a/xmloff/source/style/fonthdl.cxx
+++ /dev/null
@@ -1,322 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <fonthdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <tools/fontenum.hxx>
-
-#include <tools/string.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-const SvXMLEnumMapEntry* lcl_getFontFamilyGenericMapping()
-{
- static SvXMLEnumMapEntry const aFontFamilyGenericMapping[] =
- {
- { XML_DECORATIVE, FAMILY_DECORATIVE },
-
- { XML_MODERN, FAMILY_MODERN },
- { XML_ROMAN, FAMILY_ROMAN },
- { XML_SCRIPT, FAMILY_SCRIPT },
- { XML_SWISS, FAMILY_SWISS },
- { XML_SYSTEM, FAMILY_SYSTEM },
- { XML_TOKEN_INVALID, 0 }
- };
- return aFontFamilyGenericMapping;
-}
-
-static SvXMLEnumMapEntry const aFontPitchMapping[] =
-{
- { XML_FIXED, PITCH_FIXED },
- { XML_VARIABLE, PITCH_VARIABLE },
- { XML_TOKEN_INVALID, 0 }
-};
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFontFamilyNamePropHdl
-//
-
-XMLFontFamilyNamePropHdl::~XMLFontFamilyNamePropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFontFamilyNamePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- String sValue;
- sal_Int32 nPos = 0;
-
- do
- {
- sal_Int32 nFirst = nPos;
- nPos = SvXMLUnitConverter::indexOfComma( rStrImpValue, nPos );
- sal_Int32 nLast = (-1 == nPos ? rStrImpValue.getLength() : nPos);
- if( nLast > 0 )
- nLast--;
-
- // skip trailing blanks
- while( sal_Unicode(' ') == rStrImpValue[nLast] && nLast > nFirst )
- nLast--;
-
- // skip leading blanks
- while( sal_Unicode(' ') == rStrImpValue[nFirst] && nFirst <= nLast )
- nFirst++;
-
- // remove quotes
- sal_Unicode c = rStrImpValue[nFirst];
- if( nFirst < nLast && (sal_Unicode('\'') == c || sal_Unicode('\"') == c) && rStrImpValue[nLast] == c )
- {
- nFirst++;
- nLast--;
- }
-
- if( nFirst <= nLast )
- {
- if( sValue.Len() != 0 )
- sValue += sal_Unicode(';');
-
- OUString sTemp = rStrImpValue.copy( nFirst, nLast-nFirst+1 );
- sValue += sTemp.getStr();
- }
-
- if( -1 != nPos )
- nPos++;
- }
- while( -1 != nPos );
-
- if( sValue.Len() )
- {
- rValue <<= OUString(sValue.GetBuffer());
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-sal_Bool XMLFontFamilyNamePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- OUString aStrFamilyName;
-
- if( rValue >>= aStrFamilyName )
- {
- OUStringBuffer sValue( aStrFamilyName.getLength() + 2L );
- sal_Int32 nPos = 0;
- do
- {
- sal_Int32 nFirst = nPos;
- nPos = aStrFamilyName.indexOf( sal_Unicode(';'), nPos );
- sal_Int32 nLast = (-1 == nPos ? aStrFamilyName.getLength() : nPos);
-
- // Set position to the character behind the ';', so we won't
- // forget this.
- if( -1L != nPos )
- nPos++;
-
- // If the property value was empty, we stop now.
- // If there is a ';' at the first position, the empty name
- // at the start will be removed.
- if( 0L == nLast )
- continue;
-
- // nFirst and nLast now denote the first and last character of
- // one font name.
- nLast--;
-
- // skip trailing blanks
- while( sal_Unicode(' ') == aStrFamilyName[nLast] && nLast > nFirst )
- nLast--;
-
- // skip leading blanks
- while( sal_Unicode(' ') == aStrFamilyName[nFirst] && nFirst <= nLast )
- nFirst++;
-
- if( nFirst <= nLast )
- {
- if( sValue.getLength() != 0L )
- {
- sValue.append( sal_Unicode( ',' ) );
- sValue.append( sal_Unicode( ' ' ));
- }
- sal_Int32 nLen = nLast-nFirst+1;
- OUString sFamily( aStrFamilyName.copy( nFirst, nLen ) );
- sal_Bool bQuote = sal_False;
- for( sal_Int32 i=0; i < nLen; i++ )
- {
- sal_Unicode c = sFamily[i];
- if( sal_Unicode(' ') == c || sal_Unicode(',') == c )
- {
- bQuote = sal_True;
- break;
- }
- }
- if( bQuote )
- sValue.append( sal_Unicode('\'') );
- sValue.append( sFamily );
- if( bQuote )
- sValue.append( sal_Unicode('\'') );
- }
- }
- while( -1L != nPos );
-
- rStrExpValue = sValue.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFontFamilyPropHdl
-//
-
-XMLFontFamilyPropHdl::~XMLFontFamilyPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFontFamilyPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewFamily;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( eNewFamily, rStrImpValue, lcl_getFontFamilyGenericMapping() );
- if( bRet )
- rValue <<= (sal_Int16)eNewFamily;
-
- return bRet;
-}
-
-sal_Bool XMLFontFamilyPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut;
-
- sal_Int16 nFamily = sal_Int16();
- if( rValue >>= nFamily )
- {
- FontFamily eFamily = (FontFamily)nFamily;
- if( eFamily != FAMILY_DONTKNOW )
- bRet = SvXMLUnitConverter::convertEnum( aOut, eFamily, lcl_getFontFamilyGenericMapping() );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFontEncodingPropHdl
-//
-
-XMLFontEncodingPropHdl::~XMLFontEncodingPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFontEncodingPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_True;
-
- if( IsXMLToken( rStrImpValue, XML_X_SYMBOL ) )
- rValue <<= (sal_Int16) RTL_TEXTENCODING_SYMBOL;
-
- return bRet;
-}
-
-sal_Bool XMLFontEncodingPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut;
- sal_Int16 nSet = sal_Int16();
-
- if( rValue >>= nSet )
- {
- if( (rtl_TextEncoding)nSet == RTL_TEXTENCODING_SYMBOL )
- {
- aOut.append( GetXMLToken(XML_X_SYMBOL) );
- rStrExpValue = aOut.makeStringAndClear();
- bRet = sal_True;
- }
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFontPitchPropHdl
-//
-
-XMLFontPitchPropHdl::~XMLFontPitchPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFontPitchPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewPitch;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( eNewPitch, rStrImpValue, aFontPitchMapping );
- if( bRet )
- rValue <<= (sal_Int16)eNewPitch;
-
- return bRet;
-}
-
-sal_Bool XMLFontPitchPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nPitch = sal_Int16();
- OUStringBuffer aOut;
-
- FontPitch ePitch = PITCH_DONTKNOW;
- if( rValue >>= nPitch )
- ePitch = (FontPitch)nPitch;
-
- if( PITCH_DONTKNOW != ePitch )
- {
- bRet = SvXMLUnitConverter::convertEnum( aOut, ePitch, aFontPitchMapping, XML_FIXED );
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/fonthdl.hxx b/xmloff/source/style/fonthdl.hxx
deleted file mode 100644
index f4747f41c0..0000000000
--- a/xmloff/source/style/fonthdl.hxx
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef XMLOFF_PROPERTYHANDLER_FONTTYPES_HXX
-#define XMLOFF_PROPERTYHANDLER_FONTTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFontFamilyNamePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFontFamilyNamePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFontFamilyPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFontFamilyPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFontEncodingPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFontEncodingPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFontPitchPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFontPitchPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-
-#endif // XMLOFF_PROPERTYHANDLER_FONTTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/impastp1.cxx b/xmloff/source/style/impastp1.cxx
deleted file mode 100644
index 786b0027be..0000000000
--- a/xmloff/source/style/impastp1.cxx
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include "impastpl.hxx"
-
-using ::rtl::OUString;
-
-//#############################################################################
-//
-// Class XMLFamilyData_Impl
-//
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// ctor/dtor class XMLFamilyData_Impl
-//
-
-XMLFamilyData_Impl::XMLFamilyData_Impl(
- sal_Int32 nFamily,
- const ::rtl::OUString& rStrName,
- const UniReference < SvXMLExportPropertyMapper > &rMapper,
- const OUString& rStrPrefix,
- sal_Bool bAsFam )
- : pCache( 0 ), mnFamily( nFamily ), maStrFamilyName( rStrName), mxMapper( rMapper ),
- mnCount( 0 ), mnName( 0 ), maStrPrefix( rStrPrefix ), bAsFamily( bAsFam )
-
-{
- mpParentList = new SvXMLAutoStylePoolParentsP_Impl( 5, 5 );
- mpNameList = new SvXMLAutoStylePoolNamesP_Impl( 5, 5 );
-}
-
-XMLFamilyData_Impl::~XMLFamilyData_Impl()
-{
- if( mpParentList ) delete mpParentList;
- if( mpNameList ) delete mpNameList;
- DBG_ASSERT( !pCache || !pCache->size(), "auto style pool cache is not empty!" );
- if( pCache )
- {
- for ( size_t i = 0, n = pCache->size(); i < n; ++i )
- delete (*pCache)[ i ];
- pCache->clear();
- delete pCache;
- }
-}
-
-void XMLFamilyData_Impl::ClearEntries()
-{
- if( mpParentList )
- delete mpParentList;
- mpParentList = new SvXMLAutoStylePoolParentsP_Impl( 5, 5 );
- DBG_ASSERT( !pCache || !pCache->size(), "auto style pool cache is not empty!" );
- if( pCache )
- {
- for ( size_t i = 0, n = pCache->size(); i < n; ++i )
- delete (*pCache)[ i ];
- pCache->clear();
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// friendfunction of class XMLFamilyData_Impl for sorting listelements
-//
-
-int XMLFamilyDataSort_Impl( const XMLFamilyData_Impl& r1, const XMLFamilyData_Impl& r2 )
-{
- int nRet = 0;
-
- if( r1.mnFamily != r2.mnFamily )
- nRet = ( r1.mnFamily > r2.mnFamily ? 1 : -1 );
-
- return nRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Implementation of sorted list of XMLFamilyData_Impl - elements
-//
-
-IMPL_CONTAINER_SORT( XMLFamilyDataList_Impl, XMLFamilyData_Impl, XMLFamilyDataSort_Impl )
-
-//#############################################################################
-//
-// Sorted list of OUString - elements
-//
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Sort-function for OUString-list
-//
-
-int SvXMLAutoStylePoolNamesPCmp_Impl( const OUString& r1,
- const OUString& r2 )
-{
- return (int)r1.compareTo( r2 );
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Implementation of sorted OUString-list
-//
-
-IMPL_CONTAINER_SORT( SvXMLAutoStylePoolNamesP_Impl,
- OUString,
- SvXMLAutoStylePoolNamesPCmp_Impl )
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/impastp2.cxx b/xmloff/source/style/impastp2.cxx
deleted file mode 100644
index dbeb870246..0000000000
--- a/xmloff/source/style/impastp2.cxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <rtl/ustrbuf.hxx>
-#include "impastpl.hxx"
-
-using namespace std;
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-//#############################################################################
-//
-// Class SvXMLAutoStylePoolProperties_Impl
-//
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// ctor class SvXMLAutoStylePoolProperties_Impl
-//
-
-SvXMLAutoStylePoolPropertiesP_Impl::SvXMLAutoStylePoolPropertiesP_Impl( XMLFamilyData_Impl* pFamilyData, const vector< XMLPropertyState >& rProperties )
-: maProperties( rProperties ),
- mnPos ( pFamilyData->mnCount )
-{
- // create a name that hasn't been used before. The created name has not
- // to be added to the array, because it will never tried again
- OUStringBuffer sBuffer( 7 );
- do
- {
- pFamilyData->mnName++;
- sBuffer.append( pFamilyData->maStrPrefix );
- sBuffer.append( OUString::valueOf( (sal_Int32)pFamilyData->mnName ) );
- msName = sBuffer.makeStringAndClear();
- }
- while( pFamilyData->mpNameList->Seek_Entry( &msName, 0 ) );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/impastp3.cxx b/xmloff/source/style/impastp3.cxx
deleted file mode 100644
index 0c51db505b..0000000000
--- a/xmloff/source/style/impastp3.cxx
+++ /dev/null
@@ -1,194 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "impastpl.hxx"
-#include <xmloff/xmlprmap.hxx>
-
-using namespace std;
-
-using ::rtl::OUString;
-
-//#############################################################################
-//
-// Class SvXMLAutoStylePoolParent_Impl
-//
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// dtor class SvXMLAutoStylePoolParent_Impl
-//
-
-SvXMLAutoStylePoolParentP_Impl::~SvXMLAutoStylePoolParentP_Impl()
-{
- for( size_t i = maPropertiesList.size(); i > 0; )
- delete maPropertiesList[ --i ];
- maPropertiesList.clear();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Adds a array of XMLPropertyState ( vector< XMLPropertyState > ) to list
-// if not added, yet.
-//
-
-sal_Bool SvXMLAutoStylePoolParentP_Impl::Add( XMLFamilyData_Impl* pFamilyData, const vector< XMLPropertyState >& rProperties, OUString& rName, bool bDontSeek )
-{
- sal_Bool bAdded = sal_False;
- SvXMLAutoStylePoolPropertiesP_Impl *pProperties = 0;
- size_t i = 0;
- sal_Int32 nProperties = rProperties.size();
- size_t nCount = maPropertiesList.size();
-
- for( i = 0; i < nCount; i++ )
- {
- SvXMLAutoStylePoolPropertiesP_Impl *pIS = maPropertiesList[ i ];
- if( nProperties > (sal_Int32)pIS->GetProperties().size() )
- {
- continue;
- }
- else if( nProperties < (sal_Int32)pIS->GetProperties().size() )
- {
- break;
- }
- else if( !bDontSeek && pFamilyData->mxMapper->Equals( pIS->GetProperties(), rProperties ) )
- {
- pProperties = pIS;
- break;
- }
- }
-
- if( !pProperties )
- {
- pProperties = new SvXMLAutoStylePoolPropertiesP_Impl( pFamilyData, rProperties );
- SvXMLAutoStylePoolPropertiesPList_Impl::iterator it = maPropertiesList.begin();
- ::std::advance( it, i );
- maPropertiesList.insert( it, pProperties );
- bAdded = sal_True;
- }
-
- rName = pProperties->GetName();
-
- return bAdded;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Adds a array of XMLPropertyState ( vector< XMLPropertyState > ) with a given name.
-// If the name exists already, nothing is done. If a style with a different name and
-// the same properties exists, a new one is added (like with bDontSeek).
-//
-
-sal_Bool SvXMLAutoStylePoolParentP_Impl::AddNamed( XMLFamilyData_Impl* pFamilyData, const vector< XMLPropertyState >& rProperties, const OUString& rName )
-{
- sal_Bool bAdded = sal_False;
- size_t i = 0;
- sal_Int32 nProperties = rProperties.size();
- size_t nCount = maPropertiesList.size();
-
- for( i = 0; i < nCount; i++ )
- {
- SvXMLAutoStylePoolPropertiesP_Impl *pIS = maPropertiesList[ i ];
- if( nProperties > (sal_Int32)pIS->GetProperties().size() )
- {
- continue;
- }
- else if( nProperties < (sal_Int32)pIS->GetProperties().size() )
- {
- break;
- }
- }
-
- if( !pFamilyData->mpNameList->Seek_Entry( &rName, 0 ) )
- {
- SvXMLAutoStylePoolPropertiesP_Impl* pProperties =
- new SvXMLAutoStylePoolPropertiesP_Impl( pFamilyData, rProperties );
- // ignore the generated name
- pProperties->SetName( rName );
- SvXMLAutoStylePoolPropertiesPList_Impl::iterator it = maPropertiesList.begin();
- ::std::advance( it, i );
- maPropertiesList.insert( it, pProperties );
- bAdded = sal_True;
- }
-
- return bAdded;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Search for a array of XMLPropertyState ( vector< XMLPropertyState > ) in list
-//
-
-OUString SvXMLAutoStylePoolParentP_Impl::Find( const XMLFamilyData_Impl* pFamilyData, const vector< XMLPropertyState >& rProperties ) const
-{
- OUString sName;
- vector< XMLPropertyState>::size_type nItems = rProperties.size();
- size_t nCount = maPropertiesList.size();
- for( size_t i = 0; i < nCount; i++ )
- {
- SvXMLAutoStylePoolPropertiesP_Impl *pIS = maPropertiesList[ i ];
- if( nItems > pIS->GetProperties().size() )
- {
- continue;
- }
- else if( nItems < pIS->GetProperties().size() )
- {
- break;
- }
- else if( pFamilyData->mxMapper->Equals( pIS->GetProperties(), rProperties ) )
- {
- sName = pIS->GetName();
- break;
- }
- }
-
- return sName;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Sort-function for sorted list of SvXMLAutoStylePoolParent_Impl-elements
-//
-
-int SvXMLAutoStylePoolParentPCmp_Impl( const SvXMLAutoStylePoolParentP_Impl& r1,
- const SvXMLAutoStylePoolParentP_Impl& r2)
-{
- return (int)r1.GetParent().compareTo( r2.GetParent() );
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Implementation of sorted list of SvXMLAutoStylePoolParent_Impl-elements
-//
-
-IMPL_CONTAINER_SORT( SvXMLAutoStylePoolParentsP_Impl,
- SvXMLAutoStylePoolParentP_Impl,
- SvXMLAutoStylePoolParentPCmp_Impl )
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/impastp4.cxx b/xmloff/source/style/impastp4.cxx
deleted file mode 100644
index 63ce762b96..0000000000
--- a/xmloff/source/style/impastp4.cxx
+++ /dev/null
@@ -1,523 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <xmloff/xmlaustp.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/attrlist.hxx>
-#include "impastpl.hxx"
-#include <xmloff/xmlexppr.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/families.hxx>
-#include <xmloff/PageMasterStyleMap.hxx>
-
-using namespace ::std;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-//#############################################################################
-//
-// Class SvXMLAutoStylePool_Impl
-//
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// ctor/dtor class SvXMLAutoStylePool_Impl
-//
-
-SvXMLAutoStylePoolP_Impl::SvXMLAutoStylePoolP_Impl( SvXMLExport& rExp)
- : rExport( rExp ),
- maFamilyList( 5, 5 )
-{
-}
-
-SvXMLAutoStylePoolP_Impl::~SvXMLAutoStylePoolP_Impl()
-{
- for (;;) {
- XMLFamilyData_Impl* pData = maFamilyList.Remove( sal_uLong(0) );
- if (pData == NULL) {
- break;
- }
- delete pData;
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Adds stylefamily-informations to sorted list
-//
-
-void SvXMLAutoStylePoolP_Impl::AddFamily(
- sal_Int32 nFamily,
- const OUString& rStrName,
- const UniReference < SvXMLExportPropertyMapper > & rMapper,
- const OUString& rStrPrefix,
- sal_Bool bAsFamily )
-{
- // store family in a list if not already stored
- sal_uLong nPos;
-
- sal_uInt16 nExportFlags = GetExport().getExportFlags();
- sal_Bool bStylesOnly = (nExportFlags & EXPORT_STYLES) != 0 && (nExportFlags & EXPORT_CONTENT) == 0;
-
- OUString aPrefix( rStrPrefix );
- if( bStylesOnly )
- {
- aPrefix = OUString( 'M' );
- aPrefix += rStrPrefix;
- }
-
- XMLFamilyData_Impl *pFamily = new XMLFamilyData_Impl( nFamily, rStrName, rMapper, aPrefix, bAsFamily );
- if( !maFamilyList.Seek_Entry( pFamily, &nPos ) )
- maFamilyList.Insert( pFamily );
- else
- delete pFamily;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Adds a name to list
-//
-
-void SvXMLAutoStylePoolP_Impl::RegisterName( sal_Int32 nFamily, const OUString& rName )
-{
- SvXMLAutoStylePoolNamesP_Impl *pNames = 0;
-
- sal_uLong nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
- pNames = maFamilyList.GetObject( nPos )->mpNameList;
-
- DBG_ASSERT( pNames,
- "SvXMLAutoStylePool_Impl::RegisterName: unknown family" );
- if( pNames )
- {
- OUString *pName = new OUString( rName );
- if( !pNames->Insert( pName ) )
- delete pName;
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Retrieve the list of registered names
-//
-
-void SvXMLAutoStylePoolP_Impl::GetRegisteredNames(
- uno::Sequence<sal_Int32>& rFamilies,
- uno::Sequence<OUString>& rNames )
-{
- // collect registered names + families
- vector<sal_Int32> aFamilies;
- vector<OUString> aNames;
-
- // iterate over families
- sal_uInt32 nCount = maFamilyList.Count();
- for( sal_uInt32 i = 0; i < nCount; i++ )
- {
- XMLFamilyData_Impl* pFamily = maFamilyList.GetObject( i );
-
- // iterate over names
- SvXMLAutoStylePoolNamesP_Impl* pNames = pFamily->mpNameList;
- sal_uInt32 nNames = ( pNames != NULL ) ? pNames->Count() : 0;
- for( sal_uInt32 j = 0; j < nNames; j++ )
- {
- aFamilies.push_back( pFamily->mnFamily );
- aNames.push_back( *pNames->GetObject( j ) );
- }
- }
-
- // copy the families + names into the sequence types
- DBG_ASSERT( aFamilies.size() == aNames.size(), "families != names" );
-
- rFamilies.realloc( aFamilies.size() );
- std::copy( aFamilies.begin(), aFamilies.end(), rFamilies.getArray() );
-
- rNames.realloc( aNames.size() );
- std::copy( aNames.begin(), aNames.end(), rNames.getArray() );
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Adds a array of XMLPropertyState ( vector< XMLPropertyState > ) to list
-// if not added, yet.
-//
-
-sal_Bool SvXMLAutoStylePoolP_Impl::Add(OUString& rName, sal_Int32 nFamily,
- const OUString& rParent,
- const ::std::vector< XMLPropertyState >& rProperties,
- sal_Bool bCache,
- bool bDontSeek )
-{
- sal_Bool bRet(sal_False);
- sal_uLong nPos;
-
- XMLFamilyData_Impl *pFamily = 0;
- XMLFamilyData_Impl aTemporary( nFamily );
- if( maFamilyList.Seek_Entry( &aTemporary, &nPos ) )
- {
- pFamily = maFamilyList.GetObject( nPos );
- }
-
- DBG_ASSERT( pFamily, "SvXMLAutoStylePool_Impl::Add: unknown family" );
- if( pFamily )
- {
- SvXMLAutoStylePoolParentP_Impl aTmp( rParent );
- SvXMLAutoStylePoolParentP_Impl *pParent = 0;
-
- SvXMLAutoStylePoolParentsP_Impl *pParents = pFamily->mpParentList;
- if( pParents->Seek_Entry( &aTmp, &nPos ) )
- {
- pParent = pParents->GetObject( nPos );
- }
- else
- {
- pParent = new SvXMLAutoStylePoolParentP_Impl( rParent );
- pParents->Insert( pParent );
- }
-
- if( pParent->Add( pFamily, rProperties, rName, bDontSeek ) )
- {
- pFamily->mnCount++;
- bRet = sal_True;
- }
-
- if( bCache )
- {
- if( !pFamily->pCache )
- pFamily->pCache = new SvXMLAutoStylePoolCache_Impl();
- if( pFamily->pCache->size() < MAX_CACHE_SIZE )
- pFamily->pCache->push_back( new OUString( rName ) );
- }
- }
-
- return bRet;
-}
-
-sal_Bool SvXMLAutoStylePoolP_Impl::AddNamed(const OUString& rName, sal_Int32 nFamily,
- const OUString& rParent, const ::std::vector< XMLPropertyState >& rProperties )
-{
- // get family and parent the same way as in Add()
- sal_Bool bRet(sal_False);
- sal_uLong nPos;
-
- XMLFamilyData_Impl *pFamily = 0;
- XMLFamilyData_Impl aTemporary( nFamily );
- if( maFamilyList.Seek_Entry( &aTemporary, &nPos ) )
- {
- pFamily = maFamilyList.GetObject( nPos );
- }
-
- DBG_ASSERT( pFamily, "SvXMLAutoStylePool_Impl::Add: unknown family" );
- if( pFamily )
- {
- SvXMLAutoStylePoolParentP_Impl aTmp( rParent );
- SvXMLAutoStylePoolParentP_Impl *pParent = 0;
-
- SvXMLAutoStylePoolParentsP_Impl *pParents = pFamily->mpParentList;
- if( pParents->Seek_Entry( &aTmp, &nPos ) )
- {
- pParent = pParents->GetObject( nPos );
- }
- else
- {
- pParent = new SvXMLAutoStylePoolParentP_Impl( rParent );
- pParents->Insert( pParent );
- }
-
- if( pParent->AddNamed( pFamily, rProperties, rName ) )
- {
- pFamily->mnCount++;
- bRet = sal_True;
- }
- }
-
- return bRet;
-}
-
-OUString SvXMLAutoStylePoolP_Impl::AddToCache( sal_Int32 nFamily,
- const OUString& rParent )
-{
- sal_uLong nPos;
-
- XMLFamilyData_Impl *pFamily = 0;
- XMLFamilyData_Impl aTmp( nFamily );
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
- {
- pFamily = maFamilyList.GetObject( nPos );
- }
-
- DBG_ASSERT( pFamily, "SvXMLAutoStylePool_Impl::Add: unknown family" );
- if( pFamily )
- {
- if( !pFamily->pCache )
- pFamily->pCache = new SvXMLAutoStylePoolCache_Impl();
- if( pFamily->pCache->size() < MAX_CACHE_SIZE )
- pFamily->pCache->push_back( new OUString( rParent ) );
- }
-
- return rParent;
-}
-///////////////////////////////////////////////////////////////////////////////
-//
-// Search for a array of XMLPropertyState ( vector< XMLPropertyState > ) in list
-//
-
-OUString SvXMLAutoStylePoolP_Impl::Find( sal_Int32 nFamily,
- const OUString& rParent,
- const vector< XMLPropertyState >& rProperties ) const
-{
- OUString sName;
-
- sal_uLong nPos;
- XMLFamilyData_Impl aTemporary( nFamily );
- XMLFamilyData_Impl *pFamily = 0;
- if( maFamilyList.Seek_Entry( &aTemporary, &nPos ) )
- {
- pFamily = maFamilyList.GetObject( nPos );
- }
-
- DBG_ASSERT( pFamily, "SvXMLAutoStylePool_Impl::Find: unknown family" );
-
- if( pFamily )
- {
- SvXMLAutoStylePoolParentP_Impl aTmp( rParent );
-
- const SvXMLAutoStylePoolParentsP_Impl* pParents =
- pFamily->mpParentList;
- if( pParents->Seek_Entry( &aTmp, &nPos ) )
- sName = pParents->GetObject( nPos )->Find( pFamily, rProperties );
- }
-
- return sName;
-}
-
-OUString SvXMLAutoStylePoolP_Impl::FindAndRemoveCached( sal_Int32 nFamily ) const
-{
- OUString sName;
-
- sal_uLong nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- XMLFamilyData_Impl *pFamily = 0;
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
- {
- pFamily = maFamilyList.GetObject( nPos );
- }
-
- DBG_ASSERT( pFamily, "SvXMLAutoStylePool_Impl::Find: unknown family" );
-
- if( pFamily )
- {
- DBG_ASSERT( pFamily->pCache, "family doesn't have a cache" );
-
- // The cache may be empty already. This happens if it was filled
- // completly.
- if( pFamily->pCache && !pFamily->pCache->empty() )
- {
- OUString *pName = (*pFamily->pCache)[ 0 ];
- pFamily->pCache->erase( pFamily->pCache->begin() );
- sName = *pName;
- delete pName;
- }
- }
-
- return sName;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// export
-//
-
-void SvXMLAutoStylePoolP_Impl::exportXML(
- sal_Int32 nFamily,
- const uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > &,
- const SvXMLUnitConverter&,
- const SvXMLNamespaceMap&,
- const SvXMLAutoStylePoolP *pAntiImpl) const
-{
- sal_uInt32 nCount = 0;
-
- // Get list of parents for current family (nFamily)
- sal_uLong nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- XMLFamilyData_Impl *pFamily = 0;
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
- {
- pFamily = maFamilyList.GetObject( nPos );
- nCount = pFamily->mnCount;
- }
-
- DBG_ASSERT( pFamily,
- "SvXMLAutoStylePool_Impl::exportXML: unknown family" );
- if( pFamily && nCount > 0 )
- {
- /////////////////////////////////////////////////////////////////////////////////////
- // create, initialize and fill helper-structure (SvXMLAutoStylePoolProperties_Impl)
- // wich contains a parent-name and a SvXMLAutoStylePoolProperties_Impl
- //
- const SvXMLAutoStylePoolParentsP_Impl *pParents =
- pFamily->mpParentList;
-
- SvXMLAutoStylePoolPExport_Impl* aExpStyles =
- new SvXMLAutoStylePoolPExport_Impl[nCount];
-
- sal_uInt32 i;
- for( i=0; i < nCount; i++ )
- {
- aExpStyles[i].mpParent = 0;
- aExpStyles[i].mpProperties = 0;
- }
-
- sal_uInt32 nParents = pParents->Count();
- for( i=0; i < nParents; i++ )
- {
- const SvXMLAutoStylePoolParentP_Impl* pParent =
- pParents->GetObject( i );
- size_t nProperties = pParent->GetPropertiesList().size();
- for( size_t j = 0; j < nProperties; j++ )
- {
- const SvXMLAutoStylePoolPropertiesP_Impl* pProperties =
- pParent->GetPropertiesList()[ j ];
- nPos = pProperties->GetPos();
- DBG_ASSERT( nPos < nCount,
- "SvXMLAutoStylePool_Impl::exportXML: wrong position" );
- if( nPos < nCount )
- {
- DBG_ASSERT( !aExpStyles[nPos].mpProperties,
- "SvXMLAutoStylePool_Impl::exportXML: double position" );
- aExpStyles[nPos].mpProperties = pProperties;
- aExpStyles[nPos].mpParent = &pParent->GetParent();
- }
- }
- }
-
- /////////////////////////////////////////////////////////////////////////////////////
- //
- // create string to export for each XML-style. That means for each property-list
- //
- OUString aStrFamilyName = pFamily->maStrFamilyName;
-
- for( i=0; i<nCount; i++ )
- {
- DBG_ASSERT( aExpStyles[i].mpProperties,
- "SvXMLAutoStylePool_Impl::exportXML: empty position" );
-
- if( aExpStyles[i].mpProperties )
- {
- GetExport().AddAttribute(
- XML_NAMESPACE_STYLE, XML_NAME,
- aExpStyles[i].mpProperties->GetName() );
-
- if( pFamily->bAsFamily )
- {
- GetExport().AddAttribute(
- XML_NAMESPACE_STYLE, XML_FAMILY, aStrFamilyName );
- }
-
- if( aExpStyles[i].mpParent->getLength() )
- {
- GetExport().AddAttribute(
- XML_NAMESPACE_STYLE, XML_PARENT_STYLE_NAME,
- GetExport().EncodeStyleName(
- *aExpStyles[i].mpParent ) );
- }
-
- OUString sName;
- if( pFamily->bAsFamily )
- sName = GetXMLToken(XML_STYLE);
- else
- sName = pFamily->maStrFamilyName;
-
- pAntiImpl->exportStyleAttributes(
- GetExport().GetAttrList(),
- nFamily,
- aExpStyles[i].mpProperties->GetProperties(),
- *pFamily->mxMapper.get()
- , GetExport().GetMM100UnitConverter(),
- GetExport().GetNamespaceMap()
- );
-
- SvXMLElementExport aElem( GetExport(),
- XML_NAMESPACE_STYLE, sName,
- sal_True, sal_True );
-
- sal_Int32 nStart(-1);
- sal_Int32 nEnd(-1);
- if (nFamily == XML_STYLE_FAMILY_PAGE_MASTER)
- {
- nStart = 0;
- sal_Int32 nIndex = 0;
- UniReference< XMLPropertySetMapper > aPropMapper =
- pFamily->mxMapper->getPropertySetMapper();
- sal_Int16 nContextID;
- while(nIndex < aPropMapper->GetEntryCount() && nEnd == -1)
- {
- nContextID = aPropMapper->GetEntryContextId( nIndex );
- if (nContextID && ((nContextID & CTF_PM_FLAGMASK) != XML_PM_CTF_START))
- nEnd = nIndex;
- nIndex++;
- }
- if (nEnd == -1)
- nEnd = nIndex;
- }
-
- pFamily->mxMapper->exportXML(
- GetExport(),
- aExpStyles[i].mpProperties->GetProperties(),
- nStart, nEnd, XML_EXPORT_FLAG_IGN_WS );
-
- pAntiImpl->exportStyleContent(
- GetExport().GetDocHandler(),
- nFamily,
- aExpStyles[i].mpProperties->GetProperties(),
- *pFamily->mxMapper.get(),
- GetExport().GetMM100UnitConverter(),
- GetExport().GetNamespaceMap()
- );
- }
- }
-
- delete[] aExpStyles;
- }
-}
-
-void SvXMLAutoStylePoolP_Impl::ClearEntries()
-{
- for(sal_uInt32 a = 0L; a < maFamilyList.Count(); a++)
- maFamilyList[a]->ClearEntries();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/impastpl.hxx b/xmloff/source/style/impastpl.hxx
deleted file mode 100644
index da8cb8b5ac..0000000000
--- a/xmloff/source/style/impastpl.hxx
+++ /dev/null
@@ -1,227 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_XMLASTPL_IMPL_HXX
-#define _XMLOFF_XMLASTPL_IMPL_HXX
-
-#include <sal/types.h>
-#include <svl/cntnrsrt.hxx>
-#include <rtl/ustring.hxx>
-#include <vector>
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/xml/sax/XAttributeList.hpp>
-#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
-#include <xmloff/maptype.hxx>
-#include <xmloff/xmlexppr.hxx>
-#include <vector>
-
-class SvXMLAutoStylePoolP;
-class SvXMLAutoStylePoolParentsP_Impl;
-class SvXMLAutoStylePoolNamesP_Impl;
-class SvXMLAttributeList;
-class SvXMLExportPropertyMapper;
-class SvXMLExport;
-
-#define MAX_CACHE_SIZE 65536
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Implementationclass for stylefamily-information
-//
-
-typedef ::rtl::OUString* OUStringPtr;
-typedef ::std::vector< OUStringPtr > SvXMLAutoStylePoolCache_Impl;
-
-class XMLFamilyData_Impl
-{
-public:
- SvXMLAutoStylePoolCache_Impl *pCache;
- sal_uInt32 mnFamily;
- ::rtl::OUString maStrFamilyName;
- UniReference < SvXMLExportPropertyMapper > mxMapper;
-
- SvXMLAutoStylePoolParentsP_Impl* mpParentList;
- SvXMLAutoStylePoolNamesP_Impl* mpNameList;
- sal_uInt32 mnCount;
- sal_uInt32 mnName;
- ::rtl::OUString maStrPrefix;
- sal_Bool bAsFamily;
-
-public:
- XMLFamilyData_Impl( sal_Int32 nFamily, const ::rtl::OUString& rStrName,
- const UniReference < SvXMLExportPropertyMapper > & rMapper,
- const ::rtl::OUString& rStrPrefix, sal_Bool bAsFamily = sal_True );
-
- XMLFamilyData_Impl( sal_Int32 nFamily ) :
- pCache( 0 ),
- mnFamily( nFamily ), mpParentList( NULL ),
- mpNameList( NULL ), mnCount( 0 ), mnName( 0 )
-
- {}
- ~XMLFamilyData_Impl();
-
- friend int XMLFamilyDataSort_Impl( const XMLFamilyData_Impl& r1, const XMLFamilyData_Impl& r2 );
-
- void ClearEntries();
-};
-
-DECLARE_CONTAINER_SORT( XMLFamilyDataList_Impl, XMLFamilyData_Impl )
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//
-//
-
-DECLARE_CONTAINER_SORT_DEL( SvXMLAutoStylePoolNamesP_Impl,
- ::rtl::OUString )
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Properties of a pool
-//
-
-class SvXMLAutoStylePoolPropertiesP_Impl
-{
- ::rtl::OUString msName;
- ::std::vector< XMLPropertyState > maProperties;
- sal_uInt32 mnPos;
-
-public:
-
- SvXMLAutoStylePoolPropertiesP_Impl( XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties );
-
- ~SvXMLAutoStylePoolPropertiesP_Impl()
- {
- }
-
- const ::rtl::OUString& GetName() const { return msName; }
- const ::std::vector< XMLPropertyState >& GetProperties() const { return maProperties; }
- sal_uInt32 GetPos() const { return mnPos; }
-
- void SetName( const ::rtl::OUString& rNew ) { msName = rNew; }
-};
-
-typedef SvXMLAutoStylePoolPropertiesP_Impl* SvXMLAutoStylePoolPropertiesPPtr;
-typedef ::std::vector< SvXMLAutoStylePoolPropertiesPPtr > SvXMLAutoStylePoolPropertiesPList_Impl;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Parents of AutoStylePool's
-//
-
-class SvXMLAutoStylePoolParentP_Impl
-{
- ::rtl::OUString msParent;
- SvXMLAutoStylePoolPropertiesPList_Impl maPropertiesList;
-
-public:
-
- SvXMLAutoStylePoolParentP_Impl( const ::rtl::OUString & rParent ) :
- msParent( rParent )
- {
- }
-
- ~SvXMLAutoStylePoolParentP_Impl();
-
- sal_Bool Add( XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties, ::rtl::OUString& rName, bool bDontSeek = false );
-
- sal_Bool AddNamed( XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties, const ::rtl::OUString& rName );
-
- ::rtl::OUString Find( const XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties ) const;
-
- const ::rtl::OUString& GetParent() const { return msParent; }
-
- const SvXMLAutoStylePoolPropertiesPList_Impl& GetPropertiesList() const
- {
- return maPropertiesList;
- }
-};
-
-DECLARE_CONTAINER_SORT_DEL( SvXMLAutoStylePoolParentsP_Impl,
- SvXMLAutoStylePoolParentP_Impl )
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Implementationclass of SvXMLAutoStylePool
-//
-
-class SvXMLAutoStylePoolP_Impl
-{
- SvXMLExport& rExport;
-
- XMLFamilyDataList_Impl maFamilyList;
-
-public:
-
- SvXMLAutoStylePoolP_Impl( SvXMLExport& rExport );
- ~SvXMLAutoStylePoolP_Impl();
-
- SvXMLExport& GetExport() const { return rExport; }
-
- void AddFamily( sal_Int32 nFamily, const ::rtl::OUString& rStrName,
- const UniReference < SvXMLExportPropertyMapper > & rMapper,
- const ::rtl::OUString& rStrPrefix, sal_Bool bAsFamily = sal_True );
- void RegisterName( sal_Int32 nFamily, const ::rtl::OUString& rName );
- void GetRegisteredNames(
- com::sun::star::uno::Sequence<sal_Int32>& aFamilies,
- com::sun::star::uno::Sequence<rtl::OUString>& aNames );
-
- sal_Bool Add( ::rtl::OUString& rName, sal_Int32 nFamily,
- const ::rtl::OUString& rParent,
- const ::std::vector< XMLPropertyState >& rProperties,
- sal_Bool bCache = sal_False,
- bool bDontSeek = false );
- sal_Bool AddNamed( const ::rtl::OUString& rName, sal_Int32 nFamily,
- const ::rtl::OUString& rParent,
- const ::std::vector< XMLPropertyState >& rProperties );
-
- ::rtl::OUString AddToCache( sal_Int32 nFamily,
- const ::rtl::OUString& rParent );
- ::rtl::OUString Find( sal_Int32 nFamily, const ::rtl::OUString& rParent,
- const ::std::vector< XMLPropertyState >& rProperties ) const;
-
- ::rtl::OUString FindAndRemoveCached( sal_Int32 nFamily ) const;
-
- void exportXML( sal_Int32 nFamily,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > & rHandler,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- const SvXMLAutoStylePoolP *pAntiImpl) const;
-
- void ClearEntries();
-};
-
-struct SvXMLAutoStylePoolPExport_Impl
-{
- const ::rtl::OUString *mpParent;
- const SvXMLAutoStylePoolPropertiesP_Impl *mpProperties;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/kernihdl.cxx b/xmloff/source/style/kernihdl.cxx
deleted file mode 100644
index f6d56cfd6b..0000000000
--- a/xmloff/source/style/kernihdl.cxx
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "kernihdl.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-
-// --
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::xmloff::token;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLKerningPropHdl
-//
-
-XMLKerningPropHdl::~XMLKerningPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLKerningPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_True;
- sal_Int32 nKerning = 0;
-
- if( ! IsXMLToken( rStrImpValue, XML_KERNING_NORMAL ) )
- {
- bRet = rUnitConverter.convertMeasure( nKerning, rStrImpValue );
- }
-
- rValue <<= (sal_Int16)nKerning;
-
- return bRet;
-}
-
-sal_Bool XMLKerningPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
-
- if( rValue >>= nValue )
- {
- OUStringBuffer aOut;
-
- if( nValue == 0 )
- aOut.append( GetXMLToken(XML_KERNING_NORMAL) );
- else
- rUnitConverter.convertMeasure( aOut, nValue );
-
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/kernihdl.hxx b/xmloff/source/style/kernihdl.hxx
deleted file mode 100644
index 0fcb0344c2..0000000000
--- a/xmloff/source/style/kernihdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_KERNINGTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_KERNINGTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLKerningPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLKerningPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_KERNINGTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/lspachdl.cxx b/xmloff/source/style/lspachdl.cxx
deleted file mode 100644
index 26315c7537..0000000000
--- a/xmloff/source/style/lspachdl.cxx
+++ /dev/null
@@ -1,198 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <lspachdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/style/LineSpacing.hpp>
-#include <com/sun/star/style/LineSpacingMode.hpp>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using ::xmloff::token::IsXMLToken;
-using ::xmloff::token::XML_CASEMAP_NORMAL;
-
-// this is a copy of defines in svx/inc/escpitem.hxx
-#define DFLT_ESC_PROP 58
-#define DFLT_ESC_AUTO_SUPER 101
-#define DFLT_ESC_AUTO_SUB -101
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLEscapementPropHdl
-//
-
-XMLLineHeightHdl::~XMLLineHeightHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLLineHeightHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- style::LineSpacing aLSp;
- sal_Int32 nTemp = 0;
-
- if( -1 != rStrImpValue.indexOf( sal_Unicode( '%' ) ) )
- {
- aLSp.Mode = style::LineSpacingMode::PROP;
- if(!rUnitConverter.convertPercent( nTemp, rStrImpValue ))
- return sal_False;
- aLSp.Height = sal::static_int_cast< sal_Int16 >(nTemp);
- }
- else if( IsXMLToken( rStrImpValue, XML_CASEMAP_NORMAL) )
- {
- aLSp.Mode = style::LineSpacingMode::PROP;
- aLSp.Height = 100;
- }
- else
- {
- aLSp.Mode = style::LineSpacingMode::FIX;
- if(!rUnitConverter.convertMeasure( nTemp, rStrImpValue, 0x0000, 0xffff ))
- return sal_False;
- aLSp.Height = sal::static_int_cast< sal_Int16 >(nTemp);
- }
-
- rValue <<= aLSp;
- return sal_True;
-}
-
-sal_Bool XMLLineHeightHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- style::LineSpacing aLSp;
- if(!(rValue >>= aLSp))
- return sal_False;
-
- if( style::LineSpacingMode::PROP != aLSp.Mode && style::LineSpacingMode::FIX != aLSp.Mode )
- return sal_False;
-
- if( style::LineSpacingMode::PROP == aLSp.Mode )
- {
- rUnitConverter.convertPercent( aOut, aLSp.Height );
- }
- else
- {
- rUnitConverter.convertMeasure( aOut, aLSp.Height );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLLineHeightAtLeastHdl
-//
-
-XMLLineHeightAtLeastHdl::~XMLLineHeightAtLeastHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLLineHeightAtLeastHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- style::LineSpacing aLSp;
-
- sal_Int32 nTemp;
- aLSp.Mode = style::LineSpacingMode::MINIMUM;
- if(!rUnitConverter.convertMeasure( nTemp, rStrImpValue, 0x0000, 0xffff ))
- return sal_False;
- aLSp.Height = sal::static_int_cast< sal_Int16 >(nTemp);
-
- rValue <<= aLSp;
- return sal_True;
-}
-
-sal_Bool XMLLineHeightAtLeastHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- style::LineSpacing aLSp;
- if(!(rValue >>= aLSp))
- return sal_False;
-
- if( style::LineSpacingMode::MINIMUM != aLSp.Mode )
- return sal_False;
-
- rUnitConverter.convertMeasure( aOut, aLSp.Height );
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLLineSpacingHdl
-//
-
-XMLLineSpacingHdl::~XMLLineSpacingHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLLineSpacingHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- style::LineSpacing aLSp;
- sal_Int32 nTemp;
-
- aLSp.Mode = style::LineSpacingMode::LEADING;
- if(!rUnitConverter.convertMeasure( nTemp, rStrImpValue, 0x0000, 0xffff ))
- return sal_False;
- aLSp.Height = sal::static_int_cast< sal_Int16 >(nTemp);
-
- rValue <<= aLSp;
- return sal_True;
-}
-
-sal_Bool XMLLineSpacingHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- OUStringBuffer aOut;
-
- style::LineSpacing aLSp;
- if(!(rValue >>= aLSp))
- return sal_False;
-
- if( style::LineSpacingMode::LEADING != aLSp.Mode )
- return sal_False;
-
- rUnitConverter.convertMeasure( aOut, aLSp.Height );
-
- rStrExpValue = aOut.makeStringAndClear();
- return rStrExpValue.getLength() != 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/lspachdl.hxx b/xmloff/source/style/lspachdl.hxx
deleted file mode 100644
index bd7f3b2213..0000000000
--- a/xmloff/source/style/lspachdl.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_LINESPACETYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_LINESPACETYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLLineHeightHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLLineHeightHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLLineHeightAtLeastHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLLineHeightAtLeastHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLLineSpacingHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLLineSpacingHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_CHARHEIGHTTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/numehelp.cxx b/xmloff/source/style/numehelp.cxx
deleted file mode 100644
index ad9e856448..0000000000
--- a/xmloff/source/style/numehelp.cxx
+++ /dev/null
@@ -1,561 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include "xmloff/numehelp.hxx"
-
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <com/sun/star/uno/Reference.h>
-#include <rtl/ustring.hxx>
-#include <svl/zforlist.hxx>
-#include <com/sun/star/util/NumberFormat.hpp>
-#include <rtl/math.hxx>
-#include <tools/debug.hxx>
-#include <rtl/ustrbuf.hxx>
-
-using namespace com::sun::star;
-using namespace xmloff::token;
-
-#define XML_TYPE "Type"
-#define XML_CURRENCYSYMBOL "CurrencySymbol"
-#define XML_CURRENCYABBREVIATION "CurrencyAbbreviation"
-#define XML_STANDARDFORMAT "StandardFormat"
-
-XMLNumberFormatAttributesExportHelper::XMLNumberFormatAttributesExportHelper(
- ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xTempNumberFormatsSupplier)
- : xNumberFormats(xTempNumberFormatsSupplier.is() ? xTempNumberFormatsSupplier->getNumberFormats() : ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats > ()),
- pExport(NULL),
- sStandardFormat(RTL_CONSTASCII_USTRINGPARAM(XML_STANDARDFORMAT)),
- sType(RTL_CONSTASCII_USTRINGPARAM(XML_TYPE)),
- msCurrencySymbol(RTL_CONSTASCII_USTRINGPARAM(XML_CURRENCYSYMBOL)),
- msCurrencyAbbreviation(RTL_CONSTASCII_USTRINGPARAM(XML_CURRENCYABBREVIATION)),
- aNumberFormats()
-{
-}
-
-XMLNumberFormatAttributesExportHelper::XMLNumberFormatAttributesExportHelper(
- ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xTempNumberFormatsSupplier,
- SvXMLExport& rTempExport )
-: xNumberFormats(xTempNumberFormatsSupplier.is() ? xTempNumberFormatsSupplier->getNumberFormats() : ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats > ()),
- pExport(&rTempExport),
- sStandardFormat(RTL_CONSTASCII_USTRINGPARAM(XML_STANDARDFORMAT)),
- sType(RTL_CONSTASCII_USTRINGPARAM(XML_TYPE)),
- sAttrValueType(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_VALUE_TYPE))),
- sAttrValue(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_VALUE))),
- sAttrDateValue(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_DATE_VALUE))),
- sAttrTimeValue(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_TIME_VALUE))),
- sAttrBooleanValue(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_BOOLEAN_VALUE))),
- sAttrStringValue(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_STRING_VALUE))),
- sAttrCurrency(rTempExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_CURRENCY))),
- msCurrencySymbol(RTL_CONSTASCII_USTRINGPARAM(XML_CURRENCYSYMBOL)),
- msCurrencyAbbreviation(RTL_CONSTASCII_USTRINGPARAM(XML_CURRENCYABBREVIATION)),
- aNumberFormats()
-{
-}
-
-XMLNumberFormatAttributesExportHelper::~XMLNumberFormatAttributesExportHelper()
-{
-}
-
-sal_Int16 XMLNumberFormatAttributesExportHelper::GetCellType(const sal_Int32 nNumberFormat, rtl::OUString& sCurrency, sal_Bool& bIsStandard)
-{
- XMLNumberFormat aFormat(sEmpty, nNumberFormat, 0);
- XMLNumberFormatSet::iterator aItr(aNumberFormats.find(aFormat));
- XMLNumberFormatSet::iterator aEndItr(aNumberFormats.end());
- if (aItr != aEndItr)
- {
- bIsStandard = aItr->bIsStandard;
- sCurrency = aItr->sCurrency;
- return aItr->nType;
- }
- else
- {
- aFormat.nType = GetCellType(nNumberFormat, bIsStandard);
- aFormat.bIsStandard = bIsStandard;
- if ((aFormat.nType & ~util::NumberFormat::DEFINED) == util::NumberFormat::CURRENCY)
- if (GetCurrencySymbol(nNumberFormat, aFormat.sCurrency))
- sCurrency = aFormat.sCurrency;
- aNumberFormats.insert(aFormat);
- return aFormat.nType;
- }
-}
-
-void XMLNumberFormatAttributesExportHelper::WriteAttributes(SvXMLExport& rXMLExport,
- const sal_Int16 nTypeKey,
- const double& rValue,
- const rtl::OUString& rCurrency,
- sal_Bool bExportValue)
-{
- sal_Bool bWasSetTypeAttribute = sal_False;
- switch(nTypeKey & ~util::NumberFormat::DEFINED)
- {
- case 0:
- case util::NumberFormat::NUMBER:
- case util::NumberFormat::SCIENTIFIC:
- case util::NumberFormat::FRACTION:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_FLOAT);
- bWasSetTypeAttribute = sal_True;
- }
- } // No Break
- case util::NumberFormat::PERCENT:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_PERCENTAGE);
- bWasSetTypeAttribute = sal_True;
- }
- } // No Break
- case util::NumberFormat::CURRENCY:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_CURRENCY);
- if (rCurrency.getLength() > 0)
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_CURRENCY, rCurrency);
- bWasSetTypeAttribute = sal_True;
- }
-
- if (bExportValue)
- {
- rtl::OUString sValue( ::rtl::math::doubleToUString( rValue,
- rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', sal_True));
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE, sValue);
- }
- }
- break;
- case util::NumberFormat::DATE:
- case util::NumberFormat::DATETIME:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_DATE);
- bWasSetTypeAttribute = sal_True;
- }
- if (bExportValue)
- {
- if ( rXMLExport.SetNullDateOnUnitConverter() )
- {
- rtl::OUStringBuffer sBuffer;
- rXMLExport.GetMM100UnitConverter().convertDateTime(sBuffer, rValue);
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DATE_VALUE, sBuffer.makeStringAndClear());
- }
- }
- }
- break;
- case util::NumberFormat::TIME:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TIME);
- bWasSetTypeAttribute = sal_True;
- }
- if (bExportValue)
- {
- rtl::OUStringBuffer sBuffer;
- rXMLExport.GetMM100UnitConverter().convertTime(sBuffer, rValue);
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_TIME_VALUE, sBuffer.makeStringAndClear());
- }
- }
- break;
- case util::NumberFormat::LOGICAL:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_BOOLEAN);
- bWasSetTypeAttribute = sal_True;
- }
- if (bExportValue)
- {
- double fTempValue = rValue;
- if (::rtl::math::approxEqual( fTempValue, 1.0 ))
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE, XML_TRUE);
- }
- else
- {
- if (::rtl::math::approxEqual( rValue, 0.0 ))
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE, XML_FALSE);
- }
- else
- {
- rtl::OUString sValue( ::rtl::math::doubleToUString(
- fTempValue,
- rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.',
- sal_True));
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE, sValue);
- }
- }
- }
- }
- break;
- case util::NumberFormat::TEXT:
- {
- if (!bWasSetTypeAttribute)
- {
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_FLOAT);
- bWasSetTypeAttribute = sal_True;
- if (bExportValue)
- {
- rtl::OUString sValue( ::rtl::math::doubleToUString( rValue,
- rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', sal_True));
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE, sValue);
- }
- }
- }
- break;
- }
-}
-
-sal_Bool XMLNumberFormatAttributesExportHelper::GetCurrencySymbol(const sal_Int32 nNumberFormat, rtl::OUString& sCurrencySymbol,
- uno::Reference <util::XNumberFormatsSupplier>& xNumberFormatsSupplier)
-{
- if (xNumberFormatsSupplier.is())
- {
- uno::Reference <util::XNumberFormats> xNumberFormats(xNumberFormatsSupplier->getNumberFormats());
- if (xNumberFormats.is())
- {
- try
- {
- uno::Reference <beans::XPropertySet> xNumberPropertySet(xNumberFormats->getByKey(nNumberFormat));
- if ( xNumberPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_CURRENCYSYMBOL))) >>= sCurrencySymbol)
- {
- rtl::OUString sCurrencyAbbreviation;
- if ( xNumberPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_CURRENCYABBREVIATION))) >>= sCurrencyAbbreviation)
- {
- if ( sCurrencyAbbreviation.getLength() != 0 )
- sCurrencySymbol = sCurrencyAbbreviation;
- else
- {
- if ( sCurrencySymbol.getLength() == 1 && sCurrencySymbol.toChar() == NfCurrencyEntry::GetEuroSymbol() )
- sCurrencySymbol = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EUR"));
- }
- }
- return sal_True;
- }
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL("Numberformat not found");
- }
- }
- }
- return sal_False;
-}
-
-
-sal_Int16 XMLNumberFormatAttributesExportHelper::GetCellType(const sal_Int32 nNumberFormat, sal_Bool& bIsStandard,
- uno::Reference <util::XNumberFormatsSupplier>& xNumberFormatsSupplier)
-{
- if (xNumberFormatsSupplier.is())
- {
- uno::Reference <util::XNumberFormats> xNumberFormats(xNumberFormatsSupplier->getNumberFormats());
- if (xNumberFormats.is())
- {
- try
- {
- uno::Reference <beans::XPropertySet> xNumberPropertySet(xNumberFormats->getByKey(nNumberFormat));
- xNumberPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_STANDARDFORMAT))) >>= bIsStandard;
- sal_Int16 nNumberType = sal_Int16();
- if ( xNumberPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_TYPE))) >>= nNumberType )
- {
- return nNumberType;
- }
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL("Numberformat not found");
- }
- }
- }
- return 0;
-}
-
-void XMLNumberFormatAttributesExportHelper::SetNumberFormatAttributes(SvXMLExport& rXMLExport,
- const sal_Int32 nNumberFormat, const double& rValue, sal_Bool bExportValue)
-{
- sal_Bool bIsStandard;
- sal_Int16 nTypeKey = GetCellType(nNumberFormat, bIsStandard, rXMLExport.GetNumberFormatsSupplier());
- rtl::OUString sCurrency;
- if ((nTypeKey & ~util::NumberFormat::DEFINED) == util::NumberFormat::CURRENCY)
- GetCurrencySymbol(nNumberFormat, sCurrency, rXMLExport.GetNumberFormatsSupplier());
- WriteAttributes(rXMLExport, nTypeKey, rValue, sCurrency, bExportValue);
-}
-
-void XMLNumberFormatAttributesExportHelper::SetNumberFormatAttributes(SvXMLExport& rXMLExport,
- const rtl::OUString& rValue, const rtl::OUString& rCharacters,
- sal_Bool bExportValue, sal_Bool bExportTypeAttribute)
-{
- if (bExportTypeAttribute)
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_STRING);
- if (bExportValue && rValue.getLength() && (rValue != rCharacters))
- rXMLExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_STRING_VALUE, rValue);
-}
-
-sal_Bool XMLNumberFormatAttributesExportHelper::GetCurrencySymbol(const sal_Int32 nNumberFormat, rtl::OUString& rCurrencySymbol)
-{
- if (!xNumberFormats.is() && pExport && pExport->GetNumberFormatsSupplier().is())
- xNumberFormats.set(pExport->GetNumberFormatsSupplier()->getNumberFormats());
-
- if (xNumberFormats.is())
- {
- try
- {
- uno::Reference <beans::XPropertySet> xNumberPropertySet(xNumberFormats->getByKey(nNumberFormat));
- if ( xNumberPropertySet->getPropertyValue(msCurrencySymbol) >>= rCurrencySymbol)
- {
- rtl::OUString sCurrencyAbbreviation;
- if ( xNumberPropertySet->getPropertyValue(msCurrencyAbbreviation) >>= sCurrencyAbbreviation)
- {
- if ( sCurrencyAbbreviation.getLength() != 0 )
- rCurrencySymbol = sCurrencyAbbreviation;
- else
- {
- if ( rCurrencySymbol.getLength() == 1 && rCurrencySymbol.toChar() == NfCurrencyEntry::GetEuroSymbol() )
- rCurrencySymbol = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EUR"));
- }
- }
- return sal_True;
- }
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL("Numberformat not found");
- }
- }
- return sal_False;
-}
-
-sal_Int16 XMLNumberFormatAttributesExportHelper::GetCellType(const sal_Int32 nNumberFormat, sal_Bool& bIsStandard)
-{
- if (!xNumberFormats.is() && pExport && pExport->GetNumberFormatsSupplier().is())
- xNumberFormats.set(pExport->GetNumberFormatsSupplier()->getNumberFormats());
-
- if (xNumberFormats.is())
- {
- try
- {
- uno::Reference <beans::XPropertySet> xNumberPropertySet(xNumberFormats->getByKey(nNumberFormat));
- if (xNumberPropertySet.is())
- {
- xNumberPropertySet->getPropertyValue(sStandardFormat) >>= bIsStandard;
- sal_Int16 nNumberType = sal_Int16();
- if ( xNumberPropertySet->getPropertyValue(sType) >>= nNumberType )
- {
- return nNumberType;
- }
- }
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL("Numberformat not found");
- }
- }
- return 0;
-}
-
-void XMLNumberFormatAttributesExportHelper::WriteAttributes(
- const sal_Int16 nTypeKey,
- const double& rValue,
- const rtl::OUString& rCurrency,
- sal_Bool bExportValue)
-{
- if (!pExport)
- return;
-
- sal_Bool bWasSetTypeAttribute = sal_False;
- switch(nTypeKey & ~util::NumberFormat::DEFINED)
- {
- case 0:
- case util::NumberFormat::NUMBER:
- case util::NumberFormat::SCIENTIFIC:
- case util::NumberFormat::FRACTION:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_FLOAT);
- bWasSetTypeAttribute = sal_True;
- }
- } // No Break
- case util::NumberFormat::PERCENT:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_PERCENTAGE);
- bWasSetTypeAttribute = sal_True;
- }
- } // No Break
- case util::NumberFormat::CURRENCY:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_CURRENCY);
- if (rCurrency.getLength() > 0)
- pExport->AddAttribute(sAttrCurrency, rCurrency);
- bWasSetTypeAttribute = sal_True;
- }
-
- if (bExportValue)
- {
- rtl::OUString sValue( ::rtl::math::doubleToUString( rValue,
- rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', sal_True));
- pExport->AddAttribute(sAttrValue, sValue);
- }
- }
- break;
- case util::NumberFormat::DATE:
- case util::NumberFormat::DATETIME:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_DATE);
- bWasSetTypeAttribute = sal_True;
- }
- if (bExportValue)
- {
- if ( pExport->SetNullDateOnUnitConverter() )
- {
- rtl::OUStringBuffer sBuffer;
- pExport->GetMM100UnitConverter().convertDateTime(sBuffer, rValue);
- pExport->AddAttribute(sAttrDateValue, sBuffer.makeStringAndClear());
- }
- }
- }
- break;
- case util::NumberFormat::TIME:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_TIME);
- bWasSetTypeAttribute = sal_True;
- }
- if (bExportValue)
- {
- rtl::OUStringBuffer sBuffer;
- pExport->GetMM100UnitConverter().convertTime(sBuffer, rValue);
- pExport->AddAttribute(sAttrTimeValue, sBuffer.makeStringAndClear());
- }
- }
- break;
- case util::NumberFormat::LOGICAL:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_BOOLEAN);
- bWasSetTypeAttribute = sal_True;
- }
- if (bExportValue)
- {
- double fTempValue = rValue;
- if (::rtl::math::approxEqual( fTempValue, 1.0 ))
- {
- pExport->AddAttribute(sAttrBooleanValue, XML_TRUE);
- }
- else
- {
- if (::rtl::math::approxEqual( rValue, 0.0 ))
- {
- pExport->AddAttribute(sAttrBooleanValue, XML_FALSE);
- }
- else
- {
- rtl::OUString sValue( ::rtl::math::doubleToUString(
- fTempValue,
- rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.',
- sal_True));
- pExport->AddAttribute(sAttrBooleanValue, sValue);
- }
- }
- }
- }
- break;
- case util::NumberFormat::TEXT:
- {
- if (!bWasSetTypeAttribute)
- {
- pExport->AddAttribute(sAttrValueType, XML_FLOAT);
- bWasSetTypeAttribute = sal_True;
- if (bExportValue)
- {
- rtl::OUString sValue( ::rtl::math::doubleToUString( rValue,
- rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', sal_True));
- pExport->AddAttribute(sAttrValue, sValue);
- }
- }
- }
- break;
- }
-}
-
-void XMLNumberFormatAttributesExportHelper::SetNumberFormatAttributes(
- const sal_Int32 nNumberFormat, const double& rValue, sal_Bool bExportValue)
-{
- if (pExport)
- {
- sal_Bool bIsStandard;
- rtl::OUString sCurrency;
- sal_Int16 nTypeKey = GetCellType(nNumberFormat, sCurrency, bIsStandard);
- WriteAttributes(nTypeKey, rValue, sCurrency, bExportValue);
- }
- else {
- OSL_FAIL("no SvXMLExport given");
- }
-}
-
-void XMLNumberFormatAttributesExportHelper::SetNumberFormatAttributes(
- const rtl::OUString& rValue, const rtl::OUString& rCharacters,
- sal_Bool bExportValue, sal_Bool bExportTypeAttribute)
-{
- if (pExport)
- {
- if (bExportTypeAttribute)
- pExport->AddAttribute(sAttrValueType, XML_STRING);
- if (bExportValue && rValue.getLength() && (rValue != rCharacters))
- pExport->AddAttribute(sAttrStringValue, rValue);
- }
- else {
- OSL_FAIL("no SvXMLExport given");
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/opaquhdl.cxx b/xmloff/source/style/opaquhdl.cxx
deleted file mode 100644
index 037867990d..0000000000
--- a/xmloff/source/style/opaquhdl.cxx
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "opaquhdl.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-
-// --
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::xmloff::token;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLOpaquePropHdl
-//
-
-XMLOpaquePropHdl::~XMLOpaquePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLOpaquePropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_True;
-
- sal_Bool bValue = IsXMLToken( rStrImpValue, XML_OPAQUE_FOREGROUND );
- rValue <<= sal_Bool(bValue);
- bRet = sal_True;
-
- return bRet;
-}
-
-sal_Bool XMLOpaquePropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Bool bValue = sal_Bool();
-
- if (rValue >>= bValue)
- {
- if( bValue )
- rStrExpValue = GetXMLToken( XML_OPAQUE_FOREGROUND );
- else
- rStrExpValue = GetXMLToken( XML_OPAQUE_BACKGROUND );
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/opaquhdl.hxx b/xmloff/source/style/opaquhdl.hxx
deleted file mode 100644
index e1646f9ddb..0000000000
--- a/xmloff/source/style/opaquhdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_OPAQUETYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_OPAQUETYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLOpaquePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLOpaquePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_OPAQUETYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/postuhdl.cxx b/xmloff/source/style/postuhdl.cxx
deleted file mode 100644
index 07c4c978de..0000000000
--- a/xmloff/source/style/postuhdl.cxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <postuhdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/awt/FontSlant.hpp>
-#include <tools/fontenum.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry const aPostureGenericMapping[] =
-{
- { XML_POSTURE_NORMAL, ITALIC_NONE },
- { XML_POSTURE_ITALIC, ITALIC_NORMAL },
- { XML_POSTURE_OBLIQUE, ITALIC_OBLIQUE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLPosturePropHdl
-//
-
-XMLPosturePropHdl::~XMLPosturePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLPosturePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 ePosture;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( ePosture, rStrImpValue, aPostureGenericMapping );
- if( bRet )
- rValue <<= (awt::FontSlant)ePosture;
-
- return bRet;
-}
-
-sal_Bool XMLPosturePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- awt::FontSlant eSlant;
-
- if( !( rValue >>= eSlant ) )
- {
- sal_Int32 nValue = 0;
-
- if( !( rValue >>= nValue ) )
- return sal_False;
-
- eSlant = (awt::FontSlant)nValue;
- }
-
- OUStringBuffer aOut;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum( aOut, (sal_Int32)eSlant, aPostureGenericMapping );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/postuhdl.hxx b/xmloff/source/style/postuhdl.hxx
deleted file mode 100644
index e05d89e6c6..0000000000
--- a/xmloff/source/style/postuhdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_POSTURETYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_POSTURETYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLPosturePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLPosturePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_POSTURETYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/prhdlfac.cxx b/xmloff/source/style/prhdlfac.cxx
deleted file mode 100644
index edc1143d25..0000000000
--- a/xmloff/source/style/prhdlfac.cxx
+++ /dev/null
@@ -1,453 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <com/sun/star/drawing/ColorMode.hpp>
-#include <com/sun/star/text/HorizontalAdjust.hpp>
-#include <com/sun/star/text/WritingMode2.hpp>
-
-#include <tools/debug.hxx>
-
-#include <xmloff/prhdlfac.hxx>
-#include <xmloff/xmltypes.hxx>
-#include <xmloff/xmltoken.hxx>
-#include "xmlbahdl.hxx"
-#include <xmloff/NamedBoolPropertyHdl.hxx>
-#include <xmloff/XMLConstantsPropertyHandler.hxx>
-#include "cdouthdl.hxx"
-#include "csmaphdl.hxx"
-#include "fonthdl.hxx"
-#include "kernihdl.hxx"
-#include <postuhdl.hxx>
-#include "shadwhdl.hxx"
-#include "shdwdhdl.hxx"
-#include "undlihdl.hxx"
-#include "weighhdl.hxx"
-#include "breakhdl.hxx"
-#include <adjushdl.hxx>
-#include <escphdl.hxx>
-#include <chrhghdl.hxx>
-#include <chrlohdl.hxx>
-#include <lspachdl.hxx>
-#include <bordrhdl.hxx>
-#include <tabsthdl.hxx>
-#include <xmloff/EnumPropertyHdl.hxx>
-#include "AttributeContainerHandler.hxx"
-#include "durationhdl.hxx"
-#include "XMLRectangleMembersHandler.hxx"
-#include "DrawAspectHdl.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry aXML_ColorMode_EnumMap[] =
-{
- { XML_GREYSCALE, drawing::ColorMode_GREYS },
- { XML_MONO, drawing::ColorMode_MONO },
- { XML_WATERMARK, drawing::ColorMode_WATERMARK },
- { XML_STANDARD, drawing::ColorMode_STANDARD },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry const aXML_HorizontalAdjust_Enum[] =
-{
- { XML_LEFT, text::HorizontalAdjust_LEFT },
- { XML_CENTER, text::HorizontalAdjust_CENTER },
- { XML_RIGHT, text::HorizontalAdjust_RIGHT },
- { XML_TOKEN_INVALID, 0 }
-};
-
-// aXML_WritingDirection_Enum is used with and without 'page'
-// attribute, so you'll find uses of aXML_WritingDirection_Enum
-// directly, as well as &(aXML_WritingDirection_Enum[1])
-SvXMLEnumMapEntry const aXML_WritingDirection_Enum[] =
-{
- // aXML_WritingDirection_Enum
- { XML_PAGE, text::WritingMode2::PAGE },
-
- // &(aXML_WritingDirection_Enum[1])
- { XML_LR_TB, text::WritingMode2::LR_TB },
- { XML_RL_TB, text::WritingMode2::RL_TB },
- { XML_TB_RL, text::WritingMode2::TB_RL },
- { XML_TB_LR, text::WritingMode2::TB_LR },
-
- // alternative names of the above, as accepted by XSL
- { XML_LR, text::WritingMode2::LR_TB },
- { XML_RL, text::WritingMode2::RL_TB },
- { XML_TB, text::WritingMode2::TB_RL },
-
- { XML_TOKEN_INVALID, 0 }
-};
-
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Dtor
-//
-XMLPropertyHandlerFactory::~XMLPropertyHandlerFactory()
-{
- for( CacheMap::iterator pPos = maHandlerCache.begin(); pPos != maHandlerCache.end(); ++pPos )
- delete pPos->second;
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Interface
-//
-const XMLPropertyHandler* XMLPropertyHandlerFactory::GetPropertyHandler( sal_Int32 nType ) const
-{
- DBG_ASSERT( (nType & ~((sal_uInt32)MID_FLAG_MASK)) == 0,
- "GetPropertyHandler called with flags in type" );
- return GetBasicHandler( nType );
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Helper-methods to create and cache PropertyHandler
-//
-XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nType ) const
-{
- XMLPropertyHandler* pRet = NULL;
-
- if( maHandlerCache.find( nType ) != maHandlerCache.end() )
- pRet = maHandlerCache.find( nType )->second;
-
- return pRet;
-}
-
-void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const
-{
- // Don't be wondered about the following construct. The sense is to be able to provide a const-
- // method as class-interface.
- ((XMLPropertyHandlerFactory*)this)->maHandlerCache[ nType ] = (XMLPropertyHandler*)pHdl;
-}
-
-const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const
-{
- const XMLPropertyHandler* pPropHdl = GetHdlCache( nType );
-
- if( !pPropHdl )
- {
- pPropHdl = CreatePropertyHandler( nType );
-
- if( pPropHdl )
- PutHdlCache( nType, pPropHdl );
- }
-
- return pPropHdl;
-}
-
-const XMLPropertyHandler* XMLPropertyHandlerFactory::CreatePropertyHandler( sal_Int32 nType )
-{
- XMLPropertyHandler* pPropHdl = NULL;
-
- switch( nType )
- {
- case XML_TYPE_BOOL :
- pPropHdl = new XMLBoolPropHdl;
- break;
- case XML_TYPE_MEASURE :
- pPropHdl = new XMLMeasurePropHdl( 4 );
- break;
- case XML_TYPE_MEASURE8 :
- pPropHdl = new XMLMeasurePropHdl( 1 );
- break;
- case XML_TYPE_MEASURE16:
- pPropHdl = new XMLMeasurePropHdl( 2 );
- break;
- case XML_TYPE_PERCENT :
- pPropHdl = new XMLPercentPropHdl( 4 );
- break;
- case XML_TYPE_PERCENT8 :
- pPropHdl = new XMLPercentPropHdl( 1 );
- break;
- case XML_TYPE_PERCENT16 :
- pPropHdl = new XMLPercentPropHdl( 2 );
- break;
- case XML_TYPE_DOUBLE_PERCENT :
- pPropHdl = new XMLDoublePercentPropHdl();
- break;
- case XML_TYPE_NEG_PERCENT :
- pPropHdl = new XMLNegPercentPropHdl( 4 );
- break;
- case XML_TYPE_NEG_PERCENT8 :
- pPropHdl = new XMLNegPercentPropHdl( 1 );
- break;
- case XML_TYPE_NEG_PERCENT16 :
- pPropHdl = new XMLNegPercentPropHdl( 2 );
- break;
- case XML_TYPE_MEASURE_PX :
- pPropHdl = new XMLMeasurePxPropHdl( 4 );
- break;
- case XML_TYPE_STRING :
- pPropHdl = new XMLStringPropHdl;
- break;
- case XML_TYPE_COLOR :
- pPropHdl = new XMLColorPropHdl;
- break;
- case XML_TYPE_NUMBER :
- pPropHdl = new XMLNumberPropHdl( 4 );
- break;
- case XML_TYPE_NUMBER8 :
- pPropHdl = new XMLNumberPropHdl( 1 );
- break;
- case XML_TYPE_NUMBER16:
- pPropHdl = new XMLNumberPropHdl( 2 );
- break;
- case XML_TYPE_NUMBER_NONE :
- pPropHdl = new XMLNumberNonePropHdl;
- break;
- case XML_TYPE_NUMBER8_NONE :
- pPropHdl = new XMLNumberNonePropHdl( 1 );
- break;
- case XML_TYPE_NUMBER16_NONE :
- pPropHdl = new XMLNumberNonePropHdl( 2 );
- break;
- case XML_TYPE_DOUBLE :
- pPropHdl = new XMLDoublePropHdl;
- break;
- case XML_TYPE_NBOOL :
- pPropHdl = new XMLNBoolPropHdl;
- break;
- case XML_TYPE_COLORTRANSPARENT :
- pPropHdl = new XMLColorTransparentPropHdl;
- break;
- case XML_TYPE_ISTRANSPARENT :
- pPropHdl = new XMLIsTransparentPropHdl;
- break;
- case XML_TYPE_COLORAUTO :
- pPropHdl = new XMLColorAutoPropHdl;
- break;
- case XML_TYPE_ISAUTOCOLOR :
- pPropHdl = new XMLIsAutoColorPropHdl;
- break;
- case XML_TYPE_BUILDIN_CMP_ONLY :
- pPropHdl = new XMLCompareOnlyPropHdl;
- break;
-
- case XML_TYPE_RECTANGLE_LEFT :
- case XML_TYPE_RECTANGLE_TOP :
- case XML_TYPE_RECTANGLE_WIDTH :
- case XML_TYPE_RECTANGLE_HEIGHT :
- pPropHdl = new XMLRectangleMembersHdl( nType );
- break;
-
- case XML_TYPE_TEXT_CROSSEDOUT_TYPE:
- pPropHdl = new XMLCrossedOutTypePropHdl ;
- break;
- case XML_TYPE_TEXT_CROSSEDOUT_STYLE:
- pPropHdl = new XMLCrossedOutStylePropHdl ;
- break;
- case XML_TYPE_TEXT_CROSSEDOUT_WIDTH:
- pPropHdl = new XMLCrossedOutWidthPropHdl ;
- break;
- case XML_TYPE_TEXT_CROSSEDOUT_TEXT:
- pPropHdl = new XMLCrossedOutTextPropHdl ;
- break;
- case XML_TYPE_TEXT_BOOLCROSSEDOUT:
- pPropHdl = new XMLNamedBoolPropertyHdl(
- GetXMLToken(XML_SOLID),
- GetXMLToken(XML_NONE) );
- break;
- case XML_TYPE_TEXT_ESCAPEMENT:
- pPropHdl = new XMLEscapementPropHdl;
- break;
- case XML_TYPE_TEXT_ESCAPEMENT_HEIGHT:
- pPropHdl = new XMLEscapementHeightPropHdl;
- break;
- case XML_TYPE_TEXT_CASEMAP:
- pPropHdl = new XMLCaseMapPropHdl;
- break;
- case XML_TYPE_TEXT_CASEMAP_VAR:
- pPropHdl = new XMLCaseMapVariantHdl;
- break;
- case XML_TYPE_TEXT_FONTFAMILYNAME:
- pPropHdl = new XMLFontFamilyNamePropHdl;
- break;
- case XML_TYPE_TEXT_FONTFAMILY:
- pPropHdl = new XMLFontFamilyPropHdl;
- break;
- case XML_TYPE_TEXT_FONTENCODING:
- pPropHdl = new XMLFontEncodingPropHdl;
- break;
- case XML_TYPE_TEXT_FONTPITCH:
- pPropHdl = new XMLFontPitchPropHdl;
- break;
- case XML_TYPE_TEXT_KERNING:
- pPropHdl = new XMLKerningPropHdl;
- break;
- case XML_TYPE_TEXT_POSTURE:
- pPropHdl = new XMLPosturePropHdl;
- break;
- case XML_TYPE_TEXT_SHADOWED:
- pPropHdl = new XMLShadowedPropHdl;
- break;
- case XML_TYPE_TEXT_UNDERLINE_TYPE:
- pPropHdl = new XMLUnderlineTypePropHdl;
- break;
- case XML_TYPE_TEXT_UNDERLINE_STYLE:
- pPropHdl = new XMLUnderlineStylePropHdl;
- break;
- case XML_TYPE_TEXT_UNDERLINE_WIDTH:
- pPropHdl = new XMLUnderlineWidthPropHdl;
- break;
- case XML_TYPE_TEXT_UNDERLINE_COLOR:
- pPropHdl = new XMLColorTransparentPropHdl( XML_FONT_COLOR );
- break;
- case XML_TYPE_TEXT_UNDERLINE_HASCOLOR:
- pPropHdl = new XMLIsTransparentPropHdl( XML_FONT_COLOR,
- sal_False );
- break;
- case XML_TYPE_TEXT_OVERLINE_TYPE:
- pPropHdl = new XMLUnderlineTypePropHdl;
- break;
- case XML_TYPE_TEXT_OVERLINE_STYLE:
- pPropHdl = new XMLUnderlineStylePropHdl;
- break;
- case XML_TYPE_TEXT_OVERLINE_WIDTH:
- pPropHdl = new XMLUnderlineWidthPropHdl;
- break;
- case XML_TYPE_TEXT_OVERLINE_COLOR:
- pPropHdl = new XMLColorTransparentPropHdl( XML_FONT_COLOR );
- break;
- case XML_TYPE_TEXT_OVERLINE_HASCOLOR:
- pPropHdl = new XMLIsTransparentPropHdl( XML_FONT_COLOR,
- sal_False );
- break;
- case XML_TYPE_TEXT_WEIGHT:
- pPropHdl = new XMLFontWeightPropHdl;
- break;
- case XML_TYPE_TEXT_SPLIT:
- pPropHdl = new XMLNamedBoolPropertyHdl(
- GetXMLToken(XML_AUTO),
- GetXMLToken(XML_ALWAYS) );
- break;
- case XML_TYPE_TEXT_BREAKBEFORE:
- pPropHdl = new XMLFmtBreakBeforePropHdl;
- break;
- case XML_TYPE_TEXT_BREAKAFTER:
- pPropHdl = new XMLFmtBreakAfterPropHdl;
- break;
- case XML_TYPE_TEXT_SHADOW:
- pPropHdl = new XMLShadowPropHdl;
- break;
- case XML_TYPE_TEXT_ADJUST:
- pPropHdl = new XMLParaAdjustPropHdl;
- break;
- case XML_TYPE_TEXT_ADJUSTLAST:
- pPropHdl = new XMLLastLineAdjustPropHdl;
- break;
- case XML_TYPE_CHAR_HEIGHT:
- pPropHdl = new XMLCharHeightHdl;
- break;
- case XML_TYPE_CHAR_HEIGHT_PROP:
- pPropHdl = new XMLCharHeightPropHdl;
- break;
- case XML_TYPE_CHAR_HEIGHT_DIFF:
- pPropHdl = new XMLCharHeightDiffHdl;
- break;
- case XML_TYPE_CHAR_LANGUAGE:
- pPropHdl = new XMLCharLanguageHdl;
- break;
- case XML_TYPE_CHAR_COUNTRY:
- pPropHdl = new XMLCharCountryHdl;
- break;
- case XML_TYPE_LINE_SPACE_FIXED:
- pPropHdl = new XMLLineHeightHdl;
- break;
- case XML_TYPE_LINE_SPACE_MINIMUM:
- pPropHdl = new XMLLineHeightAtLeastHdl;
- break;
- case XML_TYPE_LINE_SPACE_DISTANCE:
- pPropHdl = new XMLLineSpacingHdl;
- break;
- case XML_TYPE_BORDER_WIDTH:
- pPropHdl = new XMLBorderWidthHdl;
- break;
- case XML_TYPE_BORDER:
- pPropHdl = new XMLBorderHdl;
- break;
- case XML_TYPE_TEXT_TABSTOP:
- pPropHdl = new XMLTabStopPropHdl;
- break;
- case XML_TYPE_ATTRIBUTE_CONTAINER:
- pPropHdl = new XMLAttributeContainerHandler;
- break;
- case XML_TYPE_COLOR_MODE:
- pPropHdl = new XMLEnumPropertyHdl( aXML_ColorMode_EnumMap,
- ::getCppuType((const drawing::ColorMode*)0) );
- break;
- case XML_TYPE_DURATION16_MS:
- pPropHdl = new XMLDurationMS16PropHdl_Impl;
- break;
- case XML_TYPE_TEXT_HORIZONTAL_ADJUST:
- pPropHdl = new XMLEnumPropertyHdl(
- aXML_HorizontalAdjust_Enum,
- ::getCppuType((const text::HorizontalAdjust*)0) );
- break;
- case XML_TYPE_TEXT_DRAW_ASPECT:
- pPropHdl = new DrawAspectHdl;
- break;
- case XML_TYPE_TEXT_WRITING_MODE:
- pPropHdl = new XMLConstantsPropertyHandler(
- &(aXML_WritingDirection_Enum[1]),
- XML_LR_TB);
- break;
- case XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT:
- pPropHdl = new XMLConstantsPropertyHandler(
- aXML_WritingDirection_Enum,
- XML_PAGE);
- break;
- case XML_TYPE_TEXT_HIDDEN_AS_DISPLAY:
- pPropHdl = new XMLNamedBoolPropertyHdl(
- GetXMLToken(XML_NONE),
- GetXMLToken(XML_TRUE) );
- break;
- case XML_TYPE_STYLENAME :
- pPropHdl = new XMLStyleNamePropHdl;
- break;
- case XML_TYPE_NUMBER_NO_ZERO:
- pPropHdl = new XMLNumberWithoutZeroPropHdl( 4 );
- break;
- case XML_TYPE_NUMBER8_NO_ZERO:
- pPropHdl = new XMLNumberWithoutZeroPropHdl( 1 );
- break;
- case XML_TYPE_NUMBER16_NO_ZERO:
- pPropHdl = new XMLNumberWithoutZeroPropHdl( 2 );
- break;
- case XML_TYPE_NUMBER16_AUTO:
- pPropHdl = new XMLNumberWithAutoInsteadZeroPropHdl();
- break;
- }
-
- return pPropHdl;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/prstylei.cxx b/xmloff/source/style/prstylei.cxx
deleted file mode 100644
index cf274a0d48..0000000000
--- a/xmloff/source/style/prstylei.cxx
+++ /dev/null
@@ -1,420 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <tools/debug.hxx>
-#include <set>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlprcon.hxx>
-#include <com/sun/star/style/XStyle.hpp>
-#include <com/sun/star/style/XAutoStyleFamily.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
-#include <com/sun/star/beans/XMultiPropertyStates.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <xmloff/xmlimp.hxx>
-
-#include <xmloff/prstylei.hxx>
-#include <xmloff/attrlist.hxx>
-#include "xmloff/xmlerror.hxx"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::xml::sax;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::xmloff::token;
-
-
-void XMLPropStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
- const OUString& rLocalName,
- const OUString& rValue )
-{
- if( XML_NAMESPACE_STYLE == nPrefixKey && IsXMLToken( rLocalName, XML_FAMILY ) )
- {
- DBG_ASSERT( GetFamily() == ((SvXMLStylesContext *)&mxStyles)->GetFamily( rValue ), "unexpected style family" );
- }
- else
- {
- SvXMLStyleContext::SetAttribute( nPrefixKey, rLocalName, rValue );
- }
-}
-
-TYPEINIT1( XMLPropStyleContext, SvXMLStyleContext );
-
-XMLPropStyleContext::XMLPropStyleContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const OUString& rLName,
- const Reference< XAttributeList > & xAttrList,
- SvXMLStylesContext& rStyles, sal_uInt16 nFamily,
- sal_Bool bDefault )
-: SvXMLStyleContext( rImport, nPrfx, rLName, xAttrList, nFamily, bDefault )
-, msIsPhysical( RTL_CONSTASCII_USTRINGPARAM( "IsPhysical" ) )
-, msFollowStyle( RTL_CONSTASCII_USTRINGPARAM( "FollowStyle" ) )
-, mxStyles( &rStyles )
-{
-}
-
-XMLPropStyleContext::~XMLPropStyleContext()
-{
-}
-
-SvXMLImportContext *XMLPropStyleContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
-
- sal_uInt32 nFamily = 0;
- if( XML_NAMESPACE_STYLE == nPrefix )
- {
- if( IsXMLToken( rLocalName, XML_GRAPHIC_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_GRAPHIC;
- else if( IsXMLToken( rLocalName, XML_DRAWING_PAGE_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_DRAWING_PAGE;
- else if( IsXMLToken( rLocalName, XML_TEXT_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_TEXT;
- else if( IsXMLToken( rLocalName, XML_PARAGRAPH_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_PARAGRAPH;
- else if( IsXMLToken( rLocalName, XML_RUBY_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_RUBY;
- else if( IsXMLToken( rLocalName, XML_SECTION_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_SECTION;
- else if( IsXMLToken( rLocalName, XML_TABLE_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_TABLE;
- else if( IsXMLToken( rLocalName, XML_TABLE_COLUMN_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_TABLE_COLUMN;
- else if( IsXMLToken( rLocalName, XML_TABLE_ROW_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_TABLE_ROW;
- else if( IsXMLToken( rLocalName, XML_TABLE_CELL_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_TABLE_CELL;
- else if( IsXMLToken( rLocalName, XML_CHART_PROPERTIES ) )
- nFamily = XML_TYPE_PROP_CHART;
- }
- if( nFamily )
- {
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- ((SvXMLStylesContext *)&mxStyles)->GetImportPropertyMapper(
- GetFamily() );
- if( xImpPrMap.is() )
- pContext = new SvXMLPropertySetContext( GetImport(), nPrefix,
- rLocalName, xAttrList,
- nFamily,
- maProperties,
- xImpPrMap );
- }
-
- if( !pContext )
- pContext = SvXMLStyleContext::CreateChildContext( nPrefix, rLocalName,
- xAttrList );
-
- return pContext;
-}
-
-void XMLPropStyleContext::FillPropertySet(
- const Reference< XPropertySet > & rPropSet )
-{
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- ((SvXMLStylesContext *)&mxStyles)->GetImportPropertyMapper(
- GetFamily() );
- DBG_ASSERT( xImpPrMap.is(), "There is the import prop mapper" );
- if( xImpPrMap.is() )
- xImpPrMap->FillPropertySet( maProperties, rPropSet );
-}
-
-void XMLPropStyleContext::SetDefaults()
-{
-}
-
-Reference < XStyle > XMLPropStyleContext::Create()
-{
- Reference < XStyle > xNewStyle;
-
- OUString sServiceName(
- ((SvXMLStylesContext *)&mxStyles)->GetServiceName( GetFamily() ) );
- if( sServiceName.getLength() )
- {
- Reference< XMultiServiceFactory > xFactory( GetImport().GetModel(),
- UNO_QUERY );
- if( xFactory.is() )
- {
- Reference < XInterface > xIfc =
- xFactory->createInstance( sServiceName );
- if( xIfc.is() )
- xNewStyle = Reference < XStyle >( xIfc, UNO_QUERY );
- }
- }
-
- return xNewStyle;
-}
-
-typedef ::std::set < OUString, ::comphelper::UStringLess > PropertyNameSet;
-
-void XMLPropStyleContext::CreateAndInsert( sal_Bool bOverwrite )
-{
- if( ((SvXMLStylesContext *)&mxStyles)->IsAutomaticStyle()
- && ( GetFamily() == XML_STYLE_FAMILY_TEXT_TEXT || GetFamily() == XML_STYLE_FAMILY_TEXT_PARAGRAPH ) )
- {
- Reference < XAutoStyleFamily > xAutoFamily =
- ((SvXMLStylesContext *)&mxStyles)->GetAutoStyles( GetFamily() );
- if( !xAutoFamily.is() )
- return;
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- ((SvXMLStylesContext *)&mxStyles)->GetImportPropertyMapper( GetFamily() );
- DBG_ASSERT( xImpPrMap.is(), "There is no import prop mapper" );
- if( xImpPrMap.is() )
- {
- Sequence< PropertyValue > aValues;
- xImpPrMap->FillPropertySequence( maProperties, aValues );
-
- sal_Int32 nLen = aValues.getLength();
- if( nLen )
- {
- if( GetFamily() == XML_STYLE_FAMILY_TEXT_PARAGRAPH )
- {
- aValues.realloc( nLen + 2 );
- PropertyValue *pProps = aValues.getArray() + nLen;
- pProps->Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaStyleName"));
- OUString sParent( GetParentName() );
- if( sParent.getLength() )
- sParent = GetImport().GetStyleDisplayName( GetFamily(), sParent );
- else
- sParent = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Standard"));
- pProps->Value <<= sParent;
- ++pProps;
- pProps->Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaConditionalStyleName"));
- pProps->Value <<= sParent;
- }
-
- Reference < XAutoStyle > xAutoStyle = xAutoFamily->insertStyle( aValues );
- if( xAutoStyle.is() )
- {
- Sequence< OUString > aPropNames(1);
- aPropNames[0] = GetFamily() == XML_STYLE_FAMILY_TEXT_PARAGRAPH ?
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaAutoStyleName")) :
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharAutoStyleName"));
- Sequence< Any > aAny = xAutoStyle->getPropertyValues( aPropNames );
- if( aAny.hasElements() )
- {
- OUString aName;
- aAny[0] >>= aName;
- SetAutoName( aName );
- }
- }
- }
- }
- }
- else
- {
- const OUString& rName = GetDisplayName();
- if( 0 == rName.getLength() || IsDefaultStyle() )
- return;
-
- Reference < XNameContainer > xFamilies =
- ((SvXMLStylesContext *)&mxStyles)->GetStylesContainer( GetFamily() );
- if( !xFamilies.is() )
- return;
-
- sal_Bool bNew = sal_False;
- if( xFamilies->hasByName( rName ) )
- {
- Any aAny = xFamilies->getByName( rName );
- aAny >>= mxStyle;
- }
- else
- {
- mxStyle = Create();
- if( !mxStyle.is() )
- return;
-
- Any aAny;
- aAny <<= mxStyle;
- xFamilies->insertByName( rName, aAny );
- bNew = sal_True;
- }
-
- Reference < XPropertySet > xPropSet( mxStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo =
- xPropSet->getPropertySetInfo();
- if( !bNew && xPropSetInfo->hasPropertyByName( msIsPhysical ) )
- {
- Any aAny = xPropSet->getPropertyValue( msIsPhysical );
- bNew = !*(sal_Bool *)aAny.getValue();
- }
- SetNew( bNew );
- if( rName != GetName() )
- GetImport().AddStyleDisplayName( GetFamily(), GetName(), rName );
-
- if( bOverwrite || bNew )
- {
- Reference< XPropertyState > xPropState( xPropSet, uno::UNO_QUERY );
-
- UniReference < XMLPropertySetMapper > xPrMap;
- UniReference < SvXMLImportPropertyMapper > xImpPrMap =
- ((SvXMLStylesContext *)&mxStyles)->GetImportPropertyMapper(
- GetFamily() );
- DBG_ASSERT( xImpPrMap.is(), "There is the import prop mapper" );
- if( xImpPrMap.is() )
- xPrMap = xImpPrMap->getPropertySetMapper();
- if( xPrMap.is() )
- {
- Reference < XMultiPropertyStates > xMultiStates( xPropSet,
- UNO_QUERY );
- if( xMultiStates.is() )
- {
- xMultiStates->setAllPropertiesToDefault();
- }
- else
- {
- PropertyNameSet aNameSet;
- sal_Int32 nCount = xPrMap->GetEntryCount();
- sal_Int32 i;
- for( i = 0; i < nCount; i++ )
- {
- const OUString& rPrName = xPrMap->GetEntryAPIName( i );
- if( xPropSetInfo->hasPropertyByName( rPrName ) )
- aNameSet.insert( rPrName );
- }
-
- nCount = aNameSet.size();
- Sequence < OUString > aNames( nCount );
- OUString *pNames = aNames.getArray();
- PropertyNameSet::iterator aIter = aNameSet.begin();
- while( aIter != aNameSet.end() )
- *pNames++ = *aIter++;
-
- Sequence < PropertyState > aStates(
- xPropState->getPropertyStates( aNames ) );
- const PropertyState *pStates = aStates.getConstArray();
- pNames = aNames.getArray();
-
- for( i = 0; i < nCount; i++ )
- {
- if( PropertyState_DIRECT_VALUE == *pStates++ )
- xPropState->setPropertyToDefault( pNames[i] );
- }
- }
- }
-
- if (mxStyle.is())
- mxStyle->setParentStyle(OUString());
-
- FillPropertySet( xPropSet );
- }
- else
- {
- SetValid( sal_False );
- }
- }
-}
-
-void XMLPropStyleContext::Finish( sal_Bool bOverwrite )
-{
- if( mxStyle.is() && (IsNew() || bOverwrite) )
- {
- // The families cintaner must exist
- Reference < XNameContainer > xFamilies =
- ((SvXMLStylesContext *)&mxStyles)->GetStylesContainer( GetFamily() );
- DBG_ASSERT( xFamilies.is(), "Families lost" );
- if( !xFamilies.is() )
- return;
-
- // connect parent
- OUString sParent( GetParentName() );
- if( sParent.getLength() )
- sParent = GetImport().GetStyleDisplayName( GetFamily(), sParent );
- if( sParent.getLength() && !xFamilies->hasByName( sParent ) )
- sParent = OUString();
-
- if( sParent != mxStyle->getParentStyle() )
- {
- // this may except if setting the parent style forms a
- // circle in the style depencies; especially if the parent
- // style is the same as the current style
- try
- {
- mxStyle->setParentStyle( sParent );
- }
- catch(const uno::Exception& e)
- {
- // according to the API definition, I would expect a
- // container::NoSuchElementException. But it throws an
- // uno::RuntimeException instead. I catch
- // uno::Exception in order to process both of them.
-
- // We can't set the parent style. For a proper
- // Error-Message, we should pass in the name of the
- // style, as well as the desired parent style.
- Sequence<OUString> aSequence(2);
-
- // getName() throws no non-Runtime exception:
- aSequence[0] = mxStyle->getName();
- aSequence[1] = sParent;
-
- GetImport().SetError(
- XMLERROR_FLAG_ERROR | XMLERROR_PARENT_STYLE_NOT_ALLOWED,
- aSequence, e.Message, NULL );
- }
- }
-
- // connect follow
- OUString sFollow( GetFollow() );
- if( sFollow.getLength() )
- sFollow = GetImport().GetStyleDisplayName( GetFamily(), sFollow );
- if( !sFollow.getLength() || !xFamilies->hasByName( sFollow ) )
- sFollow = mxStyle->getName();
-
- Reference < XPropertySet > xPropSet( mxStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo =
- xPropSet->getPropertySetInfo();
- if( xPropSetInfo->hasPropertyByName( msFollowStyle ) )
- {
- Any aAny = xPropSet->getPropertyValue( msFollowStyle );
- OUString sCurrFollow;
- aAny >>= sCurrFollow;
- if( sCurrFollow != sFollow )
- {
- aAny <<= sFollow;
- xPropSet->setPropertyValue( msFollowStyle, aAny );
- }
- }
- }
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/shadwhdl.cxx b/xmloff/source/style/shadwhdl.cxx
deleted file mode 100644
index c753e76d5d..0000000000
--- a/xmloff/source/style/shadwhdl.cxx
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "shadwhdl.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-
-// --
-#include <com/sun/star/table/ShadowFormat.hpp>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmltoken.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLMeasurePropHdl
-//
-
-XMLShadowPropHdl::~XMLShadowPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLShadowPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- table::ShadowFormat aShadow;
- aShadow.Location = table::ShadowLocation_BOTTOM_RIGHT;
-
- sal_Bool bColorFound = sal_False;
- sal_Bool bOffsetFound = sal_False;
- SvXMLTokenEnumerator aTokenEnum( rStrImpValue );
- Color aColor( 128,128, 128 );
- OUString aToken;
-
- while( aTokenEnum.getNextToken( aToken ) )
- {
- if( IsXMLToken( aToken, XML_NONE ) )
- {
- aShadow.Location = table::ShadowLocation_NONE;
- bRet = sal_True;
- break;
- }
- else if( !bColorFound && aToken.compareToAscii( "#", 1 ) == 0 )
- {
- bRet = rUnitConverter.convertColor( aColor, aToken );
- if( !bRet )
- return sal_False;
-
- bColorFound = sal_True;
- }
- else if( !bOffsetFound )
- {
- sal_Int32 nX = 0, nY = 0;
-
- bRet = rUnitConverter.convertMeasure( nX, aToken );
- if( bRet && aTokenEnum.getNextToken( aToken ) )
- bRet = rUnitConverter.convertMeasure( nY, aToken );
-
- if( bRet )
- {
- if( nX < 0 )
- {
- if( nY < 0 )
- aShadow.Location = table::ShadowLocation_TOP_LEFT;
- else
- aShadow.Location = table::ShadowLocation_BOTTOM_LEFT;
- }
- else
- {
- if( nY < 0 )
- aShadow.Location = table::ShadowLocation_TOP_RIGHT;
- else
- aShadow.Location = table::ShadowLocation_BOTTOM_RIGHT;
- }
-
- if( nX < 0 ) nX *= -1;
- if( nY < 0 ) nY *= -1;
-
- aShadow.ShadowWidth = sal::static_int_cast< sal_Int16 >(
- (nX + nY) >> 1);
- }
- }
- }
-
- if( bRet && ( bColorFound || bOffsetFound ) )
- {
- aShadow.IsTransparent = aColor.GetTransparency() > 0;
- aShadow.Color = aColor.GetColor();
- bRet = sal_True;
- }
-
- rValue <<= aShadow;
-
- return bRet;
-}
-
-sal_Bool XMLShadowPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut;
- table::ShadowFormat aShadow;
-
- if( rValue >>= aShadow )
- {
- sal_Int32 nX = 1, nY = 1;
-
- switch( aShadow.Location )
- {
- case table::ShadowLocation_TOP_LEFT:
- nX = -1;
- nY = -1;
- break;
- case table::ShadowLocation_TOP_RIGHT:
- nY = -1;
- break;
- case table::ShadowLocation_BOTTOM_LEFT:
- nX = -1;
- break;
- case table::ShadowLocation_BOTTOM_RIGHT:
- break;
- case table::ShadowLocation_NONE:
- default:
- rStrExpValue = GetXMLToken(XML_NONE);
- return sal_True;
- }
-
- nX *= aShadow.ShadowWidth;
- nY *= aShadow.ShadowWidth;
-
- rUnitConverter.convertColor( aOut, aShadow.Color );
-
- aOut.append( sal_Unicode(' ') );
- rUnitConverter.convertMeasure( aOut, nX );
- aOut.append( sal_Unicode(' ') );
- rUnitConverter.convertMeasure( aOut, nY );
-
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/shadwhdl.hxx b/xmloff/source/style/shadwhdl.hxx
deleted file mode 100644
index f5e9667ca8..0000000000
--- a/xmloff/source/style/shadwhdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_SHADOWTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_SHADOWTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLShadowPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLShadowPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_BASICTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/shdwdhdl.cxx b/xmloff/source/style/shdwdhdl.cxx
deleted file mode 100644
index fd3761ead9..0000000000
--- a/xmloff/source/style/shdwdhdl.cxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include "shdwdhdl.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <rtl/ustrbuf.hxx>
-
-// --
-#include <xmloff/xmltoken.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::xmloff::token;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFmtSplitPropHdl
-//
-
-XMLShadowedPropHdl::~XMLShadowedPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLShadowedPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Bool bValue = ! IsXMLToken( rStrImpValue, XML_NONE );
- rValue <<= sal_Bool(bValue);
- bRet = sal_True;
-
- return bRet;
-}
-
-sal_Bool XMLShadowedPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Bool bValue = sal_Bool();
-
- if (rValue >>= bValue)
- {
- if( bValue )
- {
- rStrExpValue = OUString( RTL_CONSTASCII_USTRINGPARAM( "1pt 1pt" ) );
- }
- else
- {
- rStrExpValue = GetXMLToken( XML_NONE );
- }
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/shdwdhdl.hxx b/xmloff/source/style/shdwdhdl.hxx
deleted file mode 100644
index b5d3f8ce61..0000000000
--- a/xmloff/source/style/shdwdhdl.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_SHADOWEDTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_SHADOWEDTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLShadowedPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLShadowedPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_SHADOWEDTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/styleexp.cxx b/xmloff/source/style/styleexp.cxx
deleted file mode 100644
index 7563bbc705..0000000000
--- a/xmloff/source/style/styleexp.cxx
+++ /dev/null
@@ -1,526 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#ifndef _SVSTDARR_STRINGSSORTDTOR_DECL
-#define _SVSTDARR_STRINGSSORTDTOR
-#include <svl/svstdarr.hxx>
-#endif
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/xmlprmap.hxx>
-#include <xmloff/xmlexppr.hxx>
-#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
-#include <com/sun/star/style/XStyle.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
-#include <com/sun/star/document/XEventsSupplier.hpp>
-#include <com/sun/star/text/XChapterNumberingSupplier.hpp>
-#include <xmloff/xmlaustp.hxx>
-#include <xmloff/styleexp.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/XMLEventExport.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::text;
-using namespace ::xmloff::token;
-
-using ::com::sun::star::document::XEventsSupplier;
-
-XMLStyleExport::XMLStyleExport(
- SvXMLExport& rExp,
- const ::rtl::OUString& rPoolStyleName,
- SvXMLAutoStylePoolP *pAutoStyleP ) :
- rExport( rExp ),
- sIsPhysical( RTL_CONSTASCII_USTRINGPARAM( "IsPhysical" ) ),
- sIsAutoUpdate( RTL_CONSTASCII_USTRINGPARAM( "IsAutoUpdate" ) ),
- sFollowStyle( RTL_CONSTASCII_USTRINGPARAM( "FollowStyle" ) ),
- sNumberingStyleName( RTL_CONSTASCII_USTRINGPARAM( "NumberingStyleName" ) ),
- sOutlineLevel( RTL_CONSTASCII_USTRINGPARAM( "OutlineLevel" ) ),
- sPoolStyleName( rPoolStyleName ),
- pAutoStylePool( pAutoStyleP )
-{
-}
-
-XMLStyleExport::~XMLStyleExport()
-{
-}
-
-void XMLStyleExport::exportStyleAttributes( const Reference< XStyle >& )
-{
-}
-
-void XMLStyleExport::exportStyleContent( const Reference< XStyle >& )
-{
-}
-
-sal_Bool XMLStyleExport::exportStyle(
- const Reference< XStyle >& rStyle,
- const OUString& rXMLFamily,
- const UniReference < SvXMLExportPropertyMapper >& rPropMapper,
- const Reference< XNameAccess >& xStyles,
- const OUString* pPrefix )
-{
- Reference< XPropertySet > xPropSet( rStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo =
- xPropSet->getPropertySetInfo();
- Any aAny;
-
- // Don't export styles that aren't existing really. This may be the
- // case for StarOffice Writer's pool styles.
- if( xPropSetInfo->hasPropertyByName( sIsPhysical ) )
- {
- aAny = xPropSet->getPropertyValue( sIsPhysical );
- if( !*(sal_Bool *)aAny.getValue() )
- return sal_False;
- }
-
- // <style:style ...>
- GetExport().CheckAttrList();
-
- // style:name="..."
- OUString sName;
-
- if(pPrefix)
- sName = *pPrefix;
- sName += rStyle->getName();
-
- sal_Bool bEncoded = sal_False;
- const OUString sEncodedStyleName(GetExport().EncodeStyleName( sName, &bEncoded ));
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NAME, sEncodedStyleName );
-
- if( bEncoded )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_DISPLAY_NAME,
- sName);
-
- // style:family="..."
- if( rXMLFamily.getLength() > 0 )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_FAMILY, rXMLFamily);
-
- // style:parent-style-name="..."
- OUString sParentString(rStyle->getParentStyle());
- OUString sParent;
-
- if(sParentString.getLength())
- {
- if(pPrefix)
- sParent = *pPrefix;
- sParent += sParentString;
- }
- else
- sParent = sPoolStyleName;
-
- if( sParent.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_PARENT_STYLE_NAME,
- GetExport().EncodeStyleName( sParent ) );
-
- // style:next-style-name="..." (paragraph styles only)
- if( xPropSetInfo->hasPropertyByName( sFollowStyle ) )
- {
- aAny = xPropSet->getPropertyValue( sFollowStyle );
- OUString sNextName;
- aAny >>= sNextName;
- if( sName != sNextName )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NEXT_STYLE_NAME,
- GetExport().EncodeStyleName( sNextName ) );
- }
- }
-
- // style:auto-update="..." (SW only)
- if( xPropSetInfo->hasPropertyByName( sIsAutoUpdate ) )
- {
- aAny = xPropSet->getPropertyValue( sIsAutoUpdate );
- if( *(sal_Bool *)aAny.getValue() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_AUTO_UPDATE,
- XML_TRUE );
- }
-
- // style:default-outline-level"..."
- sal_Int32 nOutlineLevel = 0;
- if( xPropSetInfo->hasPropertyByName( sOutlineLevel ) )
- {
- Reference< XPropertyState > xPropState( xPropSet, uno::UNO_QUERY );
- if( PropertyState_DIRECT_VALUE == xPropState->getPropertyState( sOutlineLevel ) )
- {
- aAny = xPropSet->getPropertyValue( sOutlineLevel );
- aAny >>= nOutlineLevel;
- if( nOutlineLevel > 0 )
- {
- OUStringBuffer sTmp;
- sTmp.append( static_cast<sal_Int32>(nOutlineLevel));
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_DEFAULT_OUTLINE_LEVEL,
- sTmp.makeStringAndClear() );
- }
- else
- {
- /* Empty value for style:default-outline-level does exist
- since ODF 1.2. Thus, suppress its export for former versions. (#i104889#)
- */
- if ( ( GetExport().getExportFlags() & EXPORT_OASIS ) != 0 &&
- GetExport().getDefaultVersion() >= SvtSaveOptions::ODFVER_012 )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_DEFAULT_OUTLINE_LEVEL,
- OUString( RTL_CONSTASCII_USTRINGPARAM( "" )));
- }
- }
- }
- }
-
- // style:list-style-name="..." (SW paragarph styles only)
- if( xPropSetInfo->hasPropertyByName( sNumberingStyleName ) )
- {
- Reference< XPropertyState > xPropState( xPropSet, uno::UNO_QUERY );
- if( PropertyState_DIRECT_VALUE ==
- xPropState->getPropertyState( sNumberingStyleName ) )
- {
- aAny = xPropSet->getPropertyValue( sNumberingStyleName );
- if( aAny.hasValue() )
- {
- OUString sListName;
- aAny >>= sListName;
-
- /* An direct set empty list style has to be written. Otherwise,
- this information is lost and causes an error, if the parent
- style has a list style set. (#i69523#)
- */
- if ( !sListName.getLength() )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_LIST_STYLE_NAME,
- sListName /* empty string */);
- }
- else
- {
- // Written OpenDocument file format doesn't fit to the created text document (#i69627#)
- bool bSuppressListStyle( false );
- {
- if ( !GetExport().writeOutlineStyleAsNormalListStyle() )
- {
- Reference< XChapterNumberingSupplier > xCNSupplier
- (GetExport().GetModel(), UNO_QUERY);
-
- OUString sOutlineName;
- if (xCNSupplier.is())
- {
- Reference< XIndexReplace > xNumRule
- ( xCNSupplier->getChapterNumberingRules() );
- DBG_ASSERT( xNumRule.is(), "no chapter numbering rules" );
-
- if (xNumRule.is())
- {
- Reference< XPropertySet > xNumRulePropSet
- (xNumRule, UNO_QUERY);
- xNumRulePropSet->getPropertyValue(
- OUString(RTL_CONSTASCII_USTRINGPARAM("Name")) )
- >>= sOutlineName;
- bSuppressListStyle = ( sListName == sOutlineName );
- }
- }
- }
- }
-
- if ( sListName.getLength() && !bSuppressListStyle )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_LIST_STYLE_NAME,
- GetExport().EncodeStyleName( sListName ) );
- }
- }
- }
- }
- else if( nOutlineLevel > 0 )
- {
-
- bool bNoInheritedListStyle( true );
-
- /////////////////////////////////////////////////
- Reference<XStyle> xStyle( xPropState, UNO_QUERY );
- while ( xStyle.is() )
- {
- OUString aParentStyle( xStyle->getParentStyle() );
- if ( aParentStyle.getLength() == 0 ||
- !xStyles->hasByName( aParentStyle ) )
- {
- break;
- }
- else
- {
- xPropState = Reference< XPropertyState >( xStyles->getByName( aParentStyle ), UNO_QUERY );
- if ( !xPropState.is() )
- {
- break;
- }
- if ( xPropState->getPropertyState( sNumberingStyleName ) == PropertyState_DIRECT_VALUE )
- {
- bNoInheritedListStyle = false;
- break;
- }
- else
- {
- xStyle = Reference<XStyle>( xPropState, UNO_QUERY );
- }
- }
- }
- /////////////////////////////////////////////////
- if ( bNoInheritedListStyle )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_LIST_STYLE_NAME,
- OUString( RTL_CONSTASCII_USTRINGPARAM( "" )));
- }
- }
-
- // style:pool-id="..." is not required any longer since we use
- // english style names only
- exportStyleAttributes( rStyle );
-
- // TODO: style:help-file-name="..." and style:help-id="..." can neither
- // be modified by UI nor by API and that for, have not to be exported
- // currently.
-
- {
- // <style:style>
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE, XML_STYLE,
- sal_True, sal_True );
-
- rPropMapper->SetStyleName( sName );
-
- // <style:properties>
- ::std::vector< XMLPropertyState > xPropStates =
- rPropMapper->Filter( xPropSet );
- rPropMapper->exportXML( GetExport(), xPropStates,
- XML_EXPORT_FLAG_IGN_WS );
-
- rPropMapper->SetStyleName( OUString() );
-
- exportStyleContent( rStyle );
-
- // <script:events>, if they are supported by this style
- Reference<XEventsSupplier> xEventsSupp(rStyle, UNO_QUERY);
- GetExport().GetEventExport().Export(xEventsSupp);
- }
- return sal_True;
-}
-
-sal_Bool XMLStyleExport::exportDefaultStyle(
- const Reference< XPropertySet >& xPropSet,
- const OUString& rXMLFamily,
- const UniReference < SvXMLExportPropertyMapper >& rPropMapper )
-{
- Reference< XPropertySetInfo > xPropSetInfo =
- xPropSet->getPropertySetInfo();
-
- Any aAny;
-
- // <style:default-style ...>
- GetExport().CheckAttrList();
-
- {
- // style:family="..."
- if( rXMLFamily.getLength() > 0 )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_FAMILY,
- rXMLFamily );
- // <style:style>
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
- XML_DEFAULT_STYLE,
- sal_True, sal_True );
- // <style:properties>
- ::std::vector< XMLPropertyState > xPropStates =
- rPropMapper->FilterDefaults( xPropSet );
- rPropMapper->exportXML( GetExport(), xPropStates,
- XML_EXPORT_FLAG_IGN_WS );
- }
- return sal_True;
-}
-
-void XMLStyleExport::exportStyleFamily(
- const sal_Char *pFamily,
- const OUString& rXMLFamily,
- const UniReference < SvXMLExportPropertyMapper >& rPropMapper,
- sal_Bool bUsed, sal_uInt16 nFamily, const OUString* pPrefix)
-{
- const OUString sFamily(OUString::createFromAscii(pFamily ));
- exportStyleFamily( sFamily, rXMLFamily, rPropMapper, bUsed, nFamily,
- pPrefix);
-}
-
-void XMLStyleExport::exportStyleFamily(
- const OUString& rFamily, const OUString& rXMLFamily,
- const UniReference < SvXMLExportPropertyMapper >& rPropMapper,
- sal_Bool bUsed, sal_uInt16 nFamily, const OUString* pPrefix)
-{
- DBG_ASSERT( GetExport().GetModel().is(), "There is the model?" );
- Reference< XStyleFamiliesSupplier > xFamiliesSupp( GetExport().GetModel(), UNO_QUERY );
- if( !xFamiliesSupp.is() )
- return; // family not available in current model
-
- Reference< XNameAccess > xStyleCont;
-
- Reference< XNameAccess > xFamilies( xFamiliesSupp->getStyleFamilies() );
- if( xFamilies->hasByName( rFamily ) )
- xFamilies->getByName( rFamily ) >>= xStyleCont;
-
- if( !xStyleCont.is() )
- return;
-
- Reference< XNameAccess > xStyles( xStyleCont, UNO_QUERY );
- // If next styles are supported and used styles should be exported only,
- // the next style may be unused but has to be exported, too. In this case
- // the names of all exported styles are remembered.
- SvStringsSortDtor *pExportedStyles = 0;
- sal_Bool bFirstStyle = sal_True;
-
- const uno::Sequence< ::rtl::OUString> aSeq = xStyles->getElementNames();
- const ::rtl::OUString* pIter = aSeq.getConstArray();
- const ::rtl::OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
- {
- Reference< XStyle > xStyle;
- try
- {
- xStyles->getByName( *pIter ) >>= xStyle;
- }
- catch(const lang::IndexOutOfBoundsException&)
- {
- // due to bugs in prior versions it is possible that
- // a binary file is missing some critical styles.
- // The only possible way to deal with this is to
- // not export them here and remain silent.
- continue;
- }
-
- DBG_ASSERT( xStyle.is(), "Style not found for export!" );
- if( xStyle.is() )
- {
- if( !bUsed || xStyle->isInUse() )
- {
- sal_Bool bExported = exportStyle( xStyle, rXMLFamily, rPropMapper,
- xStyles,pPrefix );
- if( bUsed && bFirstStyle && bExported )
- {
- // If this is the first style, find out wether next styles
- // are supported.
- Reference< XPropertySet > xPropSet( xStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo =
- xPropSet->getPropertySetInfo();
-
- if( xPropSetInfo->hasPropertyByName( sFollowStyle ) )
- pExportedStyles = new SvStringsSortDtor;
- bFirstStyle = sal_False;
- }
-
- if( pExportedStyles && bExported )
- {
- // If next styles are supported, remember this style's name.
- String *pTmp = new String( xStyle->getName() );
- if( !pExportedStyles->Insert( pTmp ) )
- delete pTmp;
- }
- }
-
- // if an auto style pool is given, remember this style's name as a
- // style name that must not be used by automatic styles.
- if( pAutoStylePool )
- pAutoStylePool->RegisterName( nFamily, xStyle->getName() );
- }
- }
-
- if( pExportedStyles )
- {
- // if next styles are supported, export all next styles that are
- // unused and that for, haven't been exported in the first loop.
- pIter = aSeq.getConstArray();
- for(;pIter != pEnd;++pIter)
- {
- Reference< XStyle > xStyle;
- xStyles->getByName( *pIter ) >>= xStyle;
-
- DBG_ASSERT( xStyle.is(), "Style not found for export!" );
- if( xStyle.is() )
- {
- Reference< XPropertySet > xPropSet( xStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo( xPropSet->getPropertySetInfo() );
-
- // styles that aren't existing realy are ignored.
- if( xPropSetInfo->hasPropertyByName( sIsPhysical ) )
- {
- Any aAny( xPropSet->getPropertyValue( sIsPhysical ) );
- if( !*(sal_Bool *)aAny.getValue() )
- continue;
- }
-
- if( !xStyle->isInUse() )
- continue;
-
- if( !xPropSetInfo->hasPropertyByName( sFollowStyle ) )
- {
- DBG_ASSERT( 0==sFollowStyle.getLength(),
- "no follow style???" );
- continue;
- }
-
- OUString sNextName;
- xPropSet->getPropertyValue( sFollowStyle ) >>= sNextName;
- String sTmp( sNextName );
- // if the next style hasn't been exported by now, export it now
- // and remember its name.
- if( xStyle->getName() != sNextName &&
- !pExportedStyles->Seek_Entry( &sTmp ) )
- {
- xStyleCont->getByName( sNextName ) >>= xStyle;
- DBG_ASSERT( xStyle.is(), "Style not found for export!" );
-
- if( xStyle.is() && exportStyle( xStyle, rXMLFamily, rPropMapper, xStyles,pPrefix ) )
- pExportedStyles->Insert( new String( sTmp ) );
- }
- }
- }
- }
-
- delete pExportedStyles;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/tabsthdl.cxx b/xmloff/source/style/tabsthdl.cxx
deleted file mode 100644
index d5fd586064..0000000000
--- a/xmloff/source/style/tabsthdl.cxx
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tabsthdl.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/style/TabStop.hpp>
-
-using namespace ::com::sun::star;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFontFamilyNamePropHdl
-//
-
-XMLTabStopPropHdl::~XMLTabStopPropHdl()
-{
- // Nothing to do
-}
-
-bool XMLTabStopPropHdl::equals( const uno::Any& r1, const uno::Any& r2 ) const
-{
- sal_Bool bEqual = sal_False;
-
- uno::Sequence< style::TabStop> aSeq1;
- if( r1 >>= aSeq1 )
- {
- uno::Sequence< style::TabStop> aSeq2;
- if( r2 >>= aSeq2 )
- {
- if( aSeq1.getLength() == aSeq2.getLength() )
- {
- bEqual = sal_True;
- if( aSeq1.getLength() > 0 )
- {
- const style::TabStop* pTabs1 = aSeq1.getConstArray();
- const style::TabStop* pTabs2 = aSeq2.getConstArray();
-
- int i=0;
-
- do
- {
- bEqual = ( pTabs1[i].Position == pTabs2[i].Position &&
- pTabs1[i].Alignment == pTabs2[i].Alignment &&
- pTabs1[i].DecimalChar == pTabs2[i].DecimalChar &&
- pTabs1[i].FillChar == pTabs2[i].FillChar );
- i++;
-
- } while( bEqual && i < aSeq1.getLength() );
- }
- }
- }
- }
-
- return bEqual;
-}
-
-sal_Bool XMLTabStopPropHdl::importXML( const ::rtl::OUString&, ::com::sun::star::uno::Any&, const SvXMLUnitConverter& ) const
-{
- return sal_False;
-}
-
-sal_Bool XMLTabStopPropHdl::exportXML( ::rtl::OUString&, const ::com::sun::star::uno::Any&, const SvXMLUnitConverter& ) const
-{
- return sal_False;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/tabsthdl.hxx b/xmloff/source/style/tabsthdl.hxx
deleted file mode 100644
index 6ad74823ff..0000000000
--- a/xmloff/source/style/tabsthdl.hxx
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_TABSTOPTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_TABSTOPTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLTabStopPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLTabStopPropHdl();
-
- virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
-
- /// TabStops will be imported/exported as XML-Elements. So the Import/Export-work must be done at another place.
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_TABSTOPTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/undlihdl.cxx b/xmloff/source/style/undlihdl.cxx
deleted file mode 100644
index 322dedcb58..0000000000
--- a/xmloff/source/style/undlihdl.cxx
+++ /dev/null
@@ -1,383 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <undlihdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <rtl/ustrbuf.hxx>
-
-
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/awt/FontUnderline.hpp>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::awt;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry const pXML_UnderlineType_Enum[] =
-{
- { XML_NONE, FontUnderline::NONE },
- { XML_SINGLE, FontUnderline::SINGLE },
- { XML_DOUBLE, FontUnderline::DOUBLE },
- { XML_SINGLE, FontUnderline::DOTTED },
- { XML_SINGLE, FontUnderline::DASH },
- { XML_SINGLE, FontUnderline::LONGDASH },
- { XML_SINGLE, FontUnderline::DASHDOT },
- { XML_SINGLE, FontUnderline::DASHDOTDOT },
- { XML_SINGLE, FontUnderline::WAVE },
- { XML_SINGLE, FontUnderline::BOLD },
- { XML_SINGLE, FontUnderline::BOLDDOTTED },
- { XML_SINGLE, FontUnderline::BOLDDASH },
- { XML_SINGLE, FontUnderline::BOLDLONGDASH },
- { XML_SINGLE, FontUnderline::BOLDDASHDOT },
- { XML_SINGLE, FontUnderline::BOLDDASHDOTDOT },
- { XML_SINGLE, FontUnderline::BOLDWAVE },
- { XML_DOUBLE, FontUnderline::DOUBLEWAVE },
- { XML_SINGLE, FontUnderline::SMALLWAVE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry const pXML_UnderlineStyle_Enum[] =
-{
- { XML_NONE, FontUnderline::NONE },
- { XML_SOLID, FontUnderline::SINGLE },
- { XML_SOLID, FontUnderline::DOUBLE },
- { XML_DOTTED, FontUnderline::DOTTED },
- { XML_DASH, FontUnderline::DASH },
- { XML_LONG_DASH, FontUnderline::LONGDASH },
- { XML_DOT_DASH, FontUnderline::DASHDOT },
- { XML_DOT_DOT_DASH, FontUnderline::DASHDOTDOT },
- { XML_WAVE, FontUnderline::WAVE },
- { XML_SOLID, FontUnderline::BOLD },
- { XML_DOTTED, FontUnderline::BOLDDOTTED },
- { XML_DASH, FontUnderline::BOLDDASH },
- { XML_LONG_DASH, FontUnderline::BOLDLONGDASH },
- { XML_DOT_DASH, FontUnderline::BOLDDASHDOT },
- { XML_DOT_DOT_DASH, FontUnderline::BOLDDASHDOTDOT },
- { XML_WAVE, FontUnderline::BOLDWAVE },
- { XML_WAVE, FontUnderline::DOUBLEWAVE },
- { XML_SMALL_WAVE, FontUnderline::SMALLWAVE },
- { XML_TOKEN_INVALID, 0 }
-};
-
-SvXMLEnumMapEntry const pXML_UnderlineWidth_Enum[] =
-{
- { XML_AUTO, FontUnderline::NONE },
- { XML_AUTO, FontUnderline::SINGLE },
- { XML_AUTO, FontUnderline::DOUBLE },
- { XML_AUTO, FontUnderline::DOTTED },
- { XML_AUTO, FontUnderline::DASH },
- { XML_AUTO, FontUnderline::LONGDASH },
- { XML_AUTO, FontUnderline::DASHDOT },
- { XML_AUTO, FontUnderline::DASHDOTDOT },
- { XML_AUTO, FontUnderline::WAVE },
- { XML_BOLD, FontUnderline::BOLD },
- { XML_BOLD, FontUnderline::BOLDDOTTED },
- { XML_BOLD, FontUnderline::BOLDDASH },
- { XML_BOLD, FontUnderline::BOLDLONGDASH },
- { XML_BOLD, FontUnderline::BOLDDASHDOT },
- { XML_BOLD, FontUnderline::BOLDDASHDOTDOT },
- { XML_BOLD, FontUnderline::BOLDWAVE },
- { XML_AUTO, FontUnderline::DOUBLEWAVE },
- { XML_THIN, FontUnderline::NONE },
- { XML_MEDIUM, FontUnderline::NONE },
- { XML_THICK, FontUnderline::BOLD},
- { XML_TOKEN_INVALID, 0 }
-};
-
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLUnderlineTypePropHdl
-//
-
-XMLUnderlineTypePropHdl::~XMLUnderlineTypePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLUnderlineTypePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewUnderline;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- eNewUnderline, rStrImpValue, pXML_UnderlineType_Enum );
- if( bRet )
- {
- // multi property: style and width might be set already.
- // If the old value is NONE, the new is used unchanged.
- sal_Int16 eUnderline = sal_Int16();
- if( (rValue >>= eUnderline) && FontUnderline::NONE!=eUnderline )
- {
- switch( eNewUnderline )
- {
- case FontUnderline::NONE:
- case FontUnderline::SINGLE:
- // keep existing line style
- eNewUnderline = eUnderline;
- break;
- case FontUnderline::DOUBLE:
- // A double line style has priority over a bold line style,
- // but not over the line style itself.
- switch( eUnderline )
- {
- case FontUnderline::SINGLE:
- case FontUnderline::BOLD:
- break;
- case FontUnderline::WAVE:
- case FontUnderline::BOLDWAVE:
- eNewUnderline = FontUnderline::DOUBLEWAVE;
- break;
- default:
- // If a double line style is not supported for the existing
- // value, keep the new one
- eNewUnderline = eUnderline;
- break;
- }
- break;
- default:
- OSL_ENSURE( bRet, "unexpected line type value" );
- break;
- }
- if( eNewUnderline != eUnderline )
- rValue <<= (sal_Int16)eNewUnderline;
- }
- else
- {
- rValue <<= (sal_Int16)eNewUnderline;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLUnderlineTypePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
- OUStringBuffer aOut;
-
- if( (rValue >>= nValue) &&
- (FontUnderline::DOUBLE == nValue ||
- FontUnderline::DOUBLEWAVE == nValue) )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, (sal_uInt16)nValue, pXML_UnderlineType_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLUnderlineStylePropHdl
-//
-
-XMLUnderlineStylePropHdl::~XMLUnderlineStylePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLUnderlineStylePropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewUnderline;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- eNewUnderline, rStrImpValue, pXML_UnderlineStyle_Enum );
- if( bRet )
- {
- // multi property: style and width might be set already.
- // If the old value is NONE, the new is used unchanged.
- sal_Int16 eUnderline = sal_Int16();
- if( (rValue >>= eUnderline) && FontUnderline::NONE!=eUnderline )
- {
- switch( eNewUnderline )
- {
- case FontUnderline::NONE:
- case FontUnderline::SINGLE:
- // keep double or bold line style
- eNewUnderline = eUnderline;
- case FontUnderline::DOTTED:
- // The line style has priority over a double type.
- if( FontUnderline::BOLD == eUnderline )
- eNewUnderline = FontUnderline::BOLDDOTTED;
- break;
- case FontUnderline::DASH:
- if( FontUnderline::BOLD == eUnderline )
- eNewUnderline = FontUnderline::BOLDDASH;
- break;
- case FontUnderline::LONGDASH:
- if( FontUnderline::BOLD == eUnderline )
- eNewUnderline = FontUnderline::BOLDLONGDASH;
- break;
- case FontUnderline::DASHDOT:
- if( FontUnderline::BOLD == eUnderline )
- eNewUnderline = FontUnderline::BOLDDASHDOT;
- break;
- case FontUnderline::DASHDOTDOT:
- if( FontUnderline::BOLD == eUnderline )
- eNewUnderline = FontUnderline::BOLDDASHDOTDOT;
- break;
- case FontUnderline::WAVE:
- if( FontUnderline::BOLD == eUnderline )
- eNewUnderline = FontUnderline::BOLDWAVE;
- break;
- case FontUnderline::SMALLWAVE:
- // SMALLWAVE is not used
- default:
- OSL_ENSURE( bRet, "unexpected line style value" );
- break;
- }
- if( eNewUnderline != eUnderline )
- rValue <<= (sal_Int16)eNewUnderline;
- }
- else
- {
- rValue <<= (sal_Int16)eNewUnderline;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLUnderlineStylePropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
- OUStringBuffer aOut;
-
- if( rValue >>= nValue )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, (sal_uInt16)nValue, pXML_UnderlineStyle_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLUnderlineWidthPropHdl
-//
-
-XMLUnderlineWidthPropHdl::~XMLUnderlineWidthPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLUnderlineWidthPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_uInt16 eNewUnderline;
- sal_Bool bRet = SvXMLUnitConverter::convertEnum(
- eNewUnderline, rStrImpValue, pXML_UnderlineWidth_Enum );
- if( bRet )
- {
- // multi property: style and width might be set already.
- // If the old value is NONE, the new is used unchanged.
- sal_Int16 eUnderline = sal_Int16();
- if( (rValue >>= eUnderline) && FontUnderline::NONE!=eUnderline )
- {
- switch( eNewUnderline )
- {
- case FontUnderline::NONE:
- // keep existing line style
- eNewUnderline = eUnderline;
- break;
- case FontUnderline::BOLD:
- // A double line style has priority over a bold line style,
- // but not over the line style itself.
- switch( eUnderline )
- {
- case FontUnderline::SINGLE:
- break;
- case FontUnderline::DOTTED:
- eNewUnderline = FontUnderline::BOLDDOTTED;
- break;
- case FontUnderline::DASH:
- eNewUnderline = FontUnderline::BOLDDASH;
- break;
- case FontUnderline::LONGDASH:
- eNewUnderline = FontUnderline::BOLDLONGDASH;
- break;
- case FontUnderline::DASHDOT:
- eNewUnderline = FontUnderline::BOLDDASHDOT;
- break;
- case FontUnderline::DASHDOTDOT:
- eNewUnderline = FontUnderline::BOLDDASHDOTDOT;
- break;
- case FontUnderline::WAVE:
- eNewUnderline = FontUnderline::BOLDWAVE;
- break;
- default:
- // a doube line style overwrites a bold one
- eNewUnderline = eUnderline;
- break;
- }
- break;
- default:
- OSL_ENSURE( bRet, "unexpected line width value" );
- break;
- }
- if( eNewUnderline != eUnderline )
- rValue <<= (sal_Int16)eNewUnderline;
- }
- else
- {
- rValue <<= (sal_Int16)eNewUnderline;
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLUnderlineWidthPropHdl::exportXML( OUString& rStrExpValue, const uno::Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int16 nValue = sal_Int16();
- OUStringBuffer aOut;
-
- if( (rValue >>= nValue) && (FontUnderline::NONE != nValue) )
- {
- bRet = SvXMLUnitConverter::convertEnum(
- aOut, (sal_uInt16)nValue, pXML_UnderlineWidth_Enum );
- if( bRet )
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/undlihdl.hxx b/xmloff/source/style/undlihdl.hxx
deleted file mode 100644
index fd25053f4a..0000000000
--- a/xmloff/source/style/undlihdl.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_UNDERLINETYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_UNDERLINETYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLUnderlineTypePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLUnderlineTypePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLUnderlineStylePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLUnderlineStylePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-class XMLUnderlineWidthPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLUnderlineWidthPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_UNDERLINETYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/uniref.cxx b/xmloff/source/style/uniref.cxx
deleted file mode 100644
index 8129c25f76..0000000000
--- a/xmloff/source/style/uniref.cxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/uniref.hxx>
-
-UniRefBase::~UniRefBase()
-{
-}
-
-void UniRefBase::release()
-{
- if( !osl_decrementInterlockedCount( &m_refCount ) )
- delete this;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/weighhdl.cxx b/xmloff/source/style/weighhdl.cxx
deleted file mode 100644
index 1aedc3a9ab..0000000000
--- a/xmloff/source/style/weighhdl.cxx
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <weighhdl.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <tools/fontenum.hxx>
-#include <tools/solar.h>
-
-#ifndef _INC_LIMITS
-#include <limits.h>
-#endif
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/awt/FontWeight.hpp>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::xmloff::token;
-
-struct FontWeightMapper
-{
- float fWeight;
- sal_uInt16 nValue;
-};
-
-FontWeightMapper const aFontWeightMap[] =
-{
- { ::com::sun::star::awt::FontWeight::DONTKNOW, 0 },
- { ::com::sun::star::awt::FontWeight::THIN, 100 },
- { ::com::sun::star::awt::FontWeight::ULTRALIGHT, 150 },
- { ::com::sun::star::awt::FontWeight::LIGHT, 250 },
- { ::com::sun::star::awt::FontWeight::SEMILIGHT, 350 },
- { ::com::sun::star::awt::FontWeight::NORMAL, 400 },
- { ::com::sun::star::awt::FontWeight::NORMAL, 450 },
- { ::com::sun::star::awt::FontWeight::SEMIBOLD, 600 },
- { ::com::sun::star::awt::FontWeight::BOLD, 700 },
- { ::com::sun::star::awt::FontWeight::ULTRABOLD, 800 },
- { ::com::sun::star::awt::FontWeight::BLACK, 900 },
- { ::com::sun::star::awt::FontWeight::DONTKNOW, 1000 }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLFmtBreakBeforePropHdl
-//
-
-XMLFontWeightPropHdl::~XMLFontWeightPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLFontWeightPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_uInt16 nWeight = 0;
-
- if( IsXMLToken( rStrImpValue, XML_WEIGHT_NORMAL ) )
- {
- nWeight = 400;
- bRet = sal_True;
- }
- else if( IsXMLToken( rStrImpValue, XML_WEIGHT_BOLD ) )
- {
- nWeight = 700;
- bRet = sal_True;
- }
- else
- {
- sal_Int32 nTemp;
- bRet = SvXMLUnitConverter::convertNumber( nTemp, rStrImpValue, 100, 900 );
- if( bRet )
- nWeight = sal::static_int_cast< sal_uInt16 >(nTemp);
- }
-
- if( bRet )
- {
- bRet = sal_False;
- static int nCount = sizeof(aFontWeightMap)/sizeof(FontWeightMapper);
- for( int i=0; i<nCount; i++ )
- {
- if( (nWeight >= aFontWeightMap[i].nValue) && (nWeight <= aFontWeightMap[i+1].nValue) )
- {
- sal_uInt16 nDiff1 = nWeight - aFontWeightMap[i].nValue;
- sal_uInt16 nDiff2 = aFontWeightMap[i+1].nValue - nWeight;
-
- if( nDiff1 < nDiff2 )
- rValue <<= aFontWeightMap[i].fWeight;
- else
- rValue <<= aFontWeightMap[i+1].fWeight;
-
- bRet = sal_True;
- break;
- }
- }
- }
-
- return bRet;
-}
-
-sal_Bool XMLFontWeightPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- float fValue = float();
- if( !( rValue >>= fValue ) )
- {
- sal_Int32 nValue = 0;
- if( rValue >>= nValue )
- {
- fValue = (float)nValue;
- bRet = sal_True;
- }
- }
- else
- bRet = sal_True;
-
- if( bRet )
- {
- sal_uInt16 nWeight = 0;
- static int nCount = sizeof(aFontWeightMap)/sizeof(FontWeightMapper);
- for( int i=0; i<nCount; i++ )
- {
- if( fValue <= aFontWeightMap[i].fWeight )
- {
- nWeight = aFontWeightMap[i].nValue;
- break;
- }
- }
-
- OUStringBuffer aOut;
-
- if( 400 == nWeight )
- aOut.append( GetXMLToken(XML_WEIGHT_NORMAL) );
- else if( 700 == nWeight )
- aOut.append( GetXMLToken(XML_WEIGHT_BOLD) );
- else
- SvXMLUnitConverter::convertNumber( aOut, (sal_Int32)nWeight );
-
- rStrExpValue = aOut.makeStringAndClear();
- }
-
- return bRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/weighhdl.hxx b/xmloff/source/style/weighhdl.hxx
deleted file mode 100644
index d63270f747..0000000000
--- a/xmloff/source/style/weighhdl.hxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_FONTWEIGHTTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_FONTWEIGHTTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-
-/**
- PropertyHandler for the XML-data-type:
-*/
-class XMLFontWeightPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLFontWeightPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-
-#endif // _XMLOFF_PROPERTYHANDLER_FONTWEIGHTTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlaustp.cxx b/xmloff/source/style/xmlaustp.cxx
deleted file mode 100644
index f23fa4f6f5..0000000000
--- a/xmloff/source/style/xmlaustp.cxx
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-
-#include <com/sun/star/container/XIndexReplace.hpp>
-#include <tools/debug.hxx>
-#include "impastpl.hxx"
-#include <xmloff/xmlaustp.hxx>
-#include <xmloff/families.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-#include "xmloff/XMLTextListAutoStylePool.hxx"
-
-#include <xmloff/PageMasterStyleMap.hxx>
-#include "PageMasterExportPropMapper.hxx"
-#include "XMLBackgroundImageExport.hxx"
-
-
-using namespace ::std;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-
-namespace
-{
- static void lcl_exportDataStyle( SvXMLExport& _rExport, const UniReference< XMLPropertySetMapper >& _rxMapper,
- const XMLPropertyState& _rProperty )
- {
- DBG_ASSERT( _rxMapper.is(), "xmloff::lcl_exportDataStyle: invalid property mapper!" );
- // obtain the data style name
- ::rtl::OUString sDataStyleName;
- _rProperty.maValue >>= sDataStyleName;
- DBG_ASSERT( sDataStyleName.getLength(), "xmloff::lcl_exportDataStyle: invalid property value for the data style name!" );
-
- // add the attribute
- _rExport.AddAttribute(
- _rxMapper->GetEntryNameSpace( _rProperty.mnIndex ),
- _rxMapper->GetEntryXMLName( _rProperty.mnIndex ),
- sDataStyleName );
- }
-}
-
-void SvXMLAutoStylePoolP::exportStyleAttributes(
- SvXMLAttributeList&,
- sal_Int32 nFamily,
- const vector< XMLPropertyState >& rProperties,
- const SvXMLExportPropertyMapper& rPropExp,
- const SvXMLUnitConverter&,
- const SvXMLNamespaceMap&
- ) const
-{
- if ( XML_STYLE_FAMILY_CONTROL_ID == nFamily )
- { // it's a control-related style
- UniReference< XMLPropertySetMapper > aPropertyMapper = rPropExp.getPropertySetMapper();
-
- for ( vector< XMLPropertyState >::const_iterator pProp = rProperties.begin();
- pProp != rProperties.end();
- ++pProp
- )
- {
- if ( ( pProp->mnIndex > -1 )
- && ( CTF_FORMS_DATA_STYLE == aPropertyMapper->GetEntryContextId( pProp->mnIndex ) )
- )
- { // it's the data-style for a grid column
- lcl_exportDataStyle( GetExport(), aPropertyMapper, *pProp );
- }
- }
- }
-
- if( (XML_STYLE_FAMILY_SD_GRAPHICS_ID == nFamily) || (XML_STYLE_FAMILY_SD_PRESENTATION_ID == nFamily) )
- { // it's a graphics style
- UniReference< XMLPropertySetMapper > aPropertyMapper = rPropExp.getPropertySetMapper();
- DBG_ASSERT(aPropertyMapper.is(), "SvXMLAutoStylePoolP::exportStyleAttributes: invalid property set mapper!");
-
- sal_Bool bFoundControlShapeDataStyle = sal_False;
- sal_Bool bFoundNumberingRulesName = sal_False;
-
- for ( vector< XMLPropertyState >::const_iterator pProp = rProperties.begin();
- pProp != rProperties.end();
- ++pProp
- )
- {
- if (pProp->mnIndex > -1)
- { // it's a valid property
- switch( aPropertyMapper->GetEntryContextId(pProp->mnIndex) )
- {
- case CTF_SD_CONTROL_SHAPE_DATA_STYLE:
- { // it's the control shape data style property
-
- if (bFoundControlShapeDataStyle)
- {
- OSL_FAIL("SvXMLAutoStylePoolP::exportStyleAttributes: found two properties with the ControlShapeDataStyle context id!");
- // already added the attribute for the first occurrence
- break;
- }
-
- lcl_exportDataStyle( GetExport(), aPropertyMapper, *pProp );
-
- // check if there is another property with the special context id we're handling here
- bFoundControlShapeDataStyle = sal_True;
- break;
- }
- case CTF_SD_NUMBERINGRULES_NAME:
- {
- if (bFoundNumberingRulesName)
- {
- OSL_FAIL("SvXMLAutoStylePoolP::exportStyleAttributes: found two properties with the numbering rules name context id!");
- // already added the attribute for the first occurrence
- break;
- }
-
- uno::Reference< container::XIndexReplace > xNumRule;
- pProp->maValue >>= xNumRule;
- if( xNumRule.is() && (xNumRule->getCount() > 0 ) )
- {
- const OUString sName(((XMLTextListAutoStylePool*)&GetExport().GetTextParagraphExport()->GetListAutoStylePool())->Add( xNumRule ));
-
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_LIST_STYLE_NAME, GetExport().EncodeStyleName( sName ) );
- }
-
- bFoundNumberingRulesName = sal_True;
- break;
- }
- }
- }
- }
- }
-
- if( nFamily == XML_STYLE_FAMILY_PAGE_MASTER )
- {
- for( vector< XMLPropertyState >::const_iterator pProp = rProperties.begin(); pProp != rProperties.end(); ++pProp )
- {
- if (pProp->mnIndex > -1)
- {
- UniReference< XMLPropertySetMapper > aPropMapper = rPropExp.getPropertySetMapper();
- sal_Int32 nIndex = pProp->mnIndex;
- sal_Int16 nContextID = aPropMapper->GetEntryContextId( nIndex );
- switch( nContextID )
- {
- case CTF_PM_PAGEUSAGE:
- {
- OUString sValue;
- const XMLPropertyHandler* pPropHdl = aPropMapper->GetPropertyHandler( nIndex );
- if( pPropHdl &&
- pPropHdl->exportXML( sValue, pProp->maValue,
- GetExport().GetMM100UnitConverter() ) &&
- ( ! IsXMLToken( sValue, XML_ALL ) ) )
- {
- GetExport().AddAttribute( aPropMapper->GetEntryNameSpace( nIndex ), aPropMapper->GetEntryXMLName( nIndex ), sValue );
- }
- }
- break;
- }
- }
- }
- }
-}
-
-void SvXMLAutoStylePoolP::exportStyleContent(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > &,
- sal_Int32 nFamily,
- const vector< XMLPropertyState >& rProperties,
- const SvXMLExportPropertyMapper& rPropExp,
- const SvXMLUnitConverter&,
- const SvXMLNamespaceMap&
- ) const
-{
- if( nFamily == XML_STYLE_FAMILY_PAGE_MASTER )
- {
- OUString sWS( GetXMLToken(XML_WS) );
-
- sal_Int32 nHeaderStartIndex(-1);
- sal_Int32 nHeaderEndIndex(-1);
- sal_Int32 nFooterStartIndex(-1);
- sal_Int32 nFooterEndIndex(-1);
- sal_Bool bHeaderStartIndex(sal_False);
- sal_Bool bHeaderEndIndex(sal_False);
- sal_Bool bFooterStartIndex(sal_False);
- sal_Bool bFooterEndIndex(sal_False);
-
- UniReference< XMLPropertySetMapper > aPropMapper = rPropExp.getPropertySetMapper();
-
- sal_Int32 nIndex(0);
- while(nIndex < aPropMapper->GetEntryCount())
- {
- switch( aPropMapper->GetEntryContextId( nIndex ) & CTF_PM_FLAGMASK )
- {
- case CTF_PM_HEADERFLAG:
- {
- if (!bHeaderStartIndex)
- {
- nHeaderStartIndex = nIndex;
- bHeaderStartIndex = sal_True;
- }
- if (bFooterStartIndex && !bFooterEndIndex)
- {
- nFooterEndIndex = nIndex;
- bFooterEndIndex = sal_True;
- }
- }
- break;
- case CTF_PM_FOOTERFLAG:
- {
- if (!bFooterStartIndex)
- {
- nFooterStartIndex = nIndex;
- bFooterStartIndex = sal_True;
- }
- if (bHeaderStartIndex && !bHeaderEndIndex)
- {
- nHeaderEndIndex = nIndex;
- bHeaderEndIndex = sal_True;
- }
- }
- break;
- }
- nIndex++;
- }
- if (!bHeaderEndIndex)
- nHeaderEndIndex = nIndex;
- if (!bFooterEndIndex)
- nFooterEndIndex = nIndex;
-
- // export header style element
- {
- SvXMLElementExport aElem(
- GetExport(), XML_NAMESPACE_STYLE, XML_HEADER_STYLE,
- sal_True, sal_True );
-
- rPropExp.exportXML(
- GetExport(), rProperties,
- nHeaderStartIndex, nHeaderEndIndex, XML_EXPORT_FLAG_IGN_WS);
- }
-
- // export footer style
- {
- SvXMLElementExport aElem(
- GetExport(), XML_NAMESPACE_STYLE, XML_FOOTER_STYLE,
- sal_True, sal_True );
-
- rPropExp.exportXML(
- GetExport(), rProperties,
- nFooterStartIndex, nFooterEndIndex, XML_EXPORT_FLAG_IGN_WS);
- }
- }
-}
-
-SvXMLAutoStylePoolP::SvXMLAutoStylePoolP()
-{
- OSL_FAIL("This constuctor is obsoleted and should not be used!");
- pImpl = NULL;
-}
-
-SvXMLAutoStylePoolP::SvXMLAutoStylePoolP( SvXMLExport& rExport )
-{
- pImpl = new SvXMLAutoStylePoolP_Impl( rExport );
-}
-
-SvXMLAutoStylePoolP::~SvXMLAutoStylePoolP()
-{
- delete pImpl;
-}
-
-SvXMLExport& SvXMLAutoStylePoolP::GetExport() const
-{
- return pImpl->GetExport();
-}
-
-// TODO: romove this
-void SvXMLAutoStylePoolP::AddFamily(
- sal_Int32 nFamily,
- const OUString& rStrName,
- SvXMLExportPropertyMapper* pMapper,
- OUString aStrPrefix,
- sal_Bool bAsFamily )
-{
- UniReference <SvXMLExportPropertyMapper> xTmp = pMapper;
- AddFamily( nFamily, rStrName, xTmp, aStrPrefix, bAsFamily );
-}
-
-void SvXMLAutoStylePoolP::AddFamily(
- sal_Int32 nFamily,
- const OUString& rStrName,
- const UniReference < SvXMLExportPropertyMapper > & rMapper,
- const OUString& rStrPrefix,
- sal_Bool bAsFamily )
-{
- pImpl->AddFamily( nFamily, rStrName, rMapper, rStrPrefix, bAsFamily );
-}
-
-void SvXMLAutoStylePoolP::RegisterName( sal_Int32 nFamily,
- const OUString& rName )
-{
- pImpl->RegisterName( nFamily, rName );
-}
-
-void SvXMLAutoStylePoolP::GetRegisteredNames(
- uno::Sequence<sal_Int32>& rFamilies,
- uno::Sequence<OUString>& rNames )
-{
- pImpl->GetRegisteredNames( rFamilies, rNames );
-}
-
-void SvXMLAutoStylePoolP::RegisterNames(
- uno::Sequence<sal_Int32>& aFamilies,
- uno::Sequence<OUString>& aNames )
-{
- DBG_ASSERT( aFamilies.getLength() == aNames.getLength(),
- "aFamilies != aNames" );
-
- // iterate over sequence(s) and call RegisterName(..) for each pair
- const sal_Int32* pFamilies = aFamilies.getConstArray();
- const OUString* pNames = aNames.getConstArray();
- sal_Int32 nCount = min( aFamilies.getLength(), aNames.getLength() );
- for( sal_Int32 n = 0; n < nCount; n++ )
- RegisterName( pFamilies[n], pNames[n] );
-}
-
-OUString SvXMLAutoStylePoolP::Add( sal_Int32 nFamily,
- const vector< XMLPropertyState >& rProperties )
-{
- OUString sEmpty;
- OUString sName;
- pImpl->Add(sName, nFamily, sEmpty, rProperties );
- return sName;
-}
-
-OUString SvXMLAutoStylePoolP::Add( sal_Int32 nFamily,
- const OUString& rParent,
- const vector< XMLPropertyState >& rProperties, bool bDontSeek )
-{
- OUString sName;
- pImpl->Add(sName, nFamily, rParent, rProperties, sal_False, bDontSeek );
- return sName;
-}
-
-sal_Bool SvXMLAutoStylePoolP::Add(OUString& rName, sal_Int32 nFamily, const ::std::vector< XMLPropertyState >& rProperties )
-{
- OUString sEmpty;
- return pImpl->Add(rName, nFamily, sEmpty, rProperties);
-}
-
-sal_Bool SvXMLAutoStylePoolP::Add(OUString& rName, sal_Int32 nFamily, const OUString& rParent, const ::std::vector< XMLPropertyState >& rProperties )
-{
- return pImpl->Add(rName, nFamily, rParent, rProperties);
-}
-
-sal_Bool SvXMLAutoStylePoolP::AddNamed( const OUString& rName, sal_Int32 nFamily, const OUString& rParent,
- const ::std::vector< XMLPropertyState >& rProperties )
-
-{
- return pImpl->AddNamed(rName, nFamily, rParent, rProperties);
-}
-
-OUString SvXMLAutoStylePoolP::AddAndCache( sal_Int32 nFamily,
- const vector< XMLPropertyState >& rProperties )
-{
- OUString sEmpty;
- OUString sName;
- pImpl->Add(sName, nFamily, sEmpty, rProperties, sal_True );
- return sName;
-}
-
-OUString SvXMLAutoStylePoolP::AddAndCache( sal_Int32 nFamily,
- const OUString& rParent,
- const vector< XMLPropertyState >& rProperties )
-{
- OUString sName;
- pImpl->Add(sName, nFamily, rParent, rProperties, sal_True );
- return sName;
-}
-
-OUString SvXMLAutoStylePoolP::AddAndCache( sal_Int32 nFamily,
- const OUString& rParent )
-{
- return pImpl->AddToCache( nFamily, rParent );
-}
-
-OUString SvXMLAutoStylePoolP::Find( sal_Int32 nFamily,
- const vector< XMLPropertyState >& rProperties ) const
-{
- OUString sEmpty;
- return pImpl->Find( nFamily, sEmpty, rProperties );
-}
-
-OUString SvXMLAutoStylePoolP::Find( sal_Int32 nFamily,
- const OUString& rParent,
- const vector< XMLPropertyState >& rProperties ) const
-{
- return pImpl->Find( nFamily, rParent, rProperties );
-}
-
-OUString SvXMLAutoStylePoolP::FindAndRemoveCached( sal_Int32 nFamily ) const
-{
- return pImpl->FindAndRemoveCached( nFamily );
-}
-
-
-void SvXMLAutoStylePoolP::exportXML( sal_Int32 nFamily,
- const uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > &,
- const SvXMLUnitConverter&,
- const SvXMLNamespaceMap&
- ) const
-{
- pImpl->exportXML( nFamily,
- GetExport().GetDocHandler(),
- GetExport().GetMM100UnitConverter(),
- GetExport().GetNamespaceMap(),
- this);
-}
-
-void SvXMLAutoStylePoolP::ClearEntries()
-{
- pImpl->ClearEntries();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlbahdl.cxx b/xmloff/source/style/xmlbahdl.cxx
deleted file mode 100644
index 926a83d96e..0000000000
--- a/xmloff/source/style/xmlbahdl.cxx
+++ /dev/null
@@ -1,946 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <xmlbahdl.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <xmloff/xmltoken.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::xmloff::token;
-
-void lcl_xmloff_setAny( Any& rValue, sal_Int32 nValue, sal_Int8 nBytes )
-{
- switch( nBytes )
- {
- case 1:
- if( nValue < SCHAR_MIN )
- nValue = SCHAR_MIN;
- else if( nValue > SCHAR_MAX )
- nValue = SCHAR_MAX;
- rValue <<= (sal_Int8)nValue;
- break;
- case 2:
- if( nValue < SHRT_MIN )
- nValue = SHRT_MIN;
- else if( nValue > SHRT_MAX )
- nValue = SHRT_MAX;
- rValue <<= (sal_Int16)nValue;
- break;
- case 4:
- rValue <<= nValue;
- break;
- }
-}
-
-sal_Bool lcl_xmloff_getAny( const Any& rValue, sal_Int32& nValue,
- sal_Int8 nBytes )
-{
- sal_Bool bRet = sal_False;
-
- switch( nBytes )
- {
- case 1:
- {
- sal_Int8 nValue8 = 0;
- bRet = rValue >>= nValue8;
- nValue = nValue8;
- }
- break;
- case 2:
- {
- sal_Int16 nValue16 = 0;
- bRet = rValue >>= nValue16;
- nValue = nValue16;
- }
- break;
- case 4:
- bRet = rValue >>= nValue;
- break;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLNumberPropHdl
-//
-
-XMLNumberPropHdl::~XMLNumberPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLNumberPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nValue = 0;
- bRet = SvXMLUnitConverter::convertNumber( nValue, rStrImpValue );
- lcl_xmloff_setAny( rValue, nValue, nBytes );
-
- return bRet;
-}
-
-sal_Bool XMLNumberPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nValue;
- OUStringBuffer aOut;
-
- if( lcl_xmloff_getAny( rValue, nValue, nBytes ) )
- {
- SvXMLUnitConverter::convertNumber( aOut, nValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// class XMLNumberNonePropHdl
-//
-
-XMLNumberNonePropHdl::XMLNumberNonePropHdl( sal_Int8 nB ) :
- sZeroStr( GetXMLToken(XML_NO_LIMIT) ),
- nBytes( nB )
-{
-}
-
-XMLNumberNonePropHdl::XMLNumberNonePropHdl( enum XMLTokenEnum eZeroString, sal_Int8 nB ) :
- sZeroStr( GetXMLToken( eZeroString ) ),
- nBytes( nB )
-{
-}
-
-XMLNumberNonePropHdl::~XMLNumberNonePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLNumberNonePropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nValue = 0;
- if( rStrImpValue == sZeroStr )
- {
- bRet = sal_True;
- }
- else
- {
- bRet = SvXMLUnitConverter::convertNumber( nValue, rStrImpValue );
- }
- lcl_xmloff_setAny( rValue, nValue, nBytes );
-
- return bRet;
-}
-
-sal_Bool XMLNumberNonePropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nValue;
-
- if( lcl_xmloff_getAny( rValue, nValue, nBytes ) )
- {
- OUStringBuffer aOut;
-
- if( nValue == 0 )
- {
- aOut.append( sZeroStr );
- }
- else
- {
- SvXMLUnitConverter::convertNumber( aOut, nValue );
- }
-
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLMeasurePropHdl
-//
-
-XMLMeasurePropHdl::~XMLMeasurePropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLMeasurePropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nValue = 0;
- bRet = rUnitConverter.convertMeasure( nValue, rStrImpValue );
- lcl_xmloff_setAny( rValue, nValue, nBytes );
-
- return bRet;
-}
-
-sal_Bool XMLMeasurePropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nValue;
- OUStringBuffer aOut;
-
- if( lcl_xmloff_getAny( rValue, nValue, nBytes ) )
- {
- rUnitConverter.convertMeasure( aOut, nValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLBoolPropHdl
-//
-
-XMLBoolPropHdl::~XMLBoolPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLBoolPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- bool bValue;
- bRet = SvXMLUnitConverter::convertBool( bValue, rStrImpValue );
- rValue <<= sal_Bool(bValue);
-
- return bRet;
-}
-
-sal_Bool XMLBoolPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut;
- sal_Bool bValue = sal_Bool();
-
- if (rValue >>= bValue)
- {
- SvXMLUnitConverter::convertBool( aOut, bValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLNBoolPropHdl
-//
-
-XMLNBoolPropHdl::~XMLNBoolPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLNBoolPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- bool bValue;
- bRet = SvXMLUnitConverter::convertBool( bValue, rStrImpValue );
- rValue <<= sal_Bool(!bValue);
-
- return bRet;
-}
-
-sal_Bool XMLNBoolPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- OUStringBuffer aOut;
- sal_Bool bValue = sal_Bool();
-
- if (rValue >>= bValue)
- {
- SvXMLUnitConverter::convertBool( aOut, !bValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLPercentPropHdl
-//
-
-XMLPercentPropHdl::~XMLPercentPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLPercentPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nValue = 0;
- bRet = SvXMLUnitConverter::convertPercent( nValue, rStrImpValue );
- lcl_xmloff_setAny( rValue, nValue, nBytes );
-
- return bRet;
-}
-
-sal_Bool XMLPercentPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nValue;
- OUStringBuffer aOut;
-
- if( lcl_xmloff_getAny( rValue, nValue, nBytes ) )
- {
- SvXMLUnitConverter::convertPercent( aOut, nValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLDoublePercentPropHdl
-//
-
-sal_Bool XMLDoublePercentPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- double fValue = 1.0;
-
- if( rStrImpValue.indexOf( (sal_Unicode)'%' ) == -1 )
- {
- fValue = rStrImpValue.toDouble();
- }
- else
- {
- sal_Int32 nValue = 0;
- bRet = SvXMLUnitConverter::convertPercent( nValue, rStrImpValue );
- fValue = ((double)nValue) / 100.0;
- }
- rValue <<= fValue;
-
- return bRet;
-}
-
-sal_Bool XMLDoublePercentPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- double fValue = 0;
-
- if( rValue >>= fValue )
- {
- fValue *= 100.0;
- if( fValue > 0 ) fValue += 0.5; else fValue -= 0.5;
-
- sal_Int32 nValue = (sal_Int32)fValue;
-
- OUStringBuffer aOut;
- SvXMLUnitConverter::convertPercent( aOut, nValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLNegPercentPropHdl
-//
-
-XMLNegPercentPropHdl::~XMLNegPercentPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLNegPercentPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nValue = 0;
- bRet = SvXMLUnitConverter::convertPercent( nValue, rStrImpValue );
- lcl_xmloff_setAny( rValue, 100-nValue, nBytes );
-
- return bRet;
-}
-
-sal_Bool XMLNegPercentPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nValue;
- OUStringBuffer aOut;
-
- if( lcl_xmloff_getAny( rValue, nValue, nBytes ) )
- {
- SvXMLUnitConverter::convertPercent( aOut, 100-nValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLMeasurePxPropHdl
-//
-
-XMLMeasurePxPropHdl::~XMLMeasurePxPropHdl()
-{
- // nothing to do
-}
-
-sal_Bool XMLMeasurePxPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nValue = 0;
- bRet = SvXMLUnitConverter::convertMeasurePx( nValue, rStrImpValue );
- lcl_xmloff_setAny( rValue, nValue, nBytes );
-
- return bRet;
-}
-
-sal_Bool XMLMeasurePxPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nValue;
- OUStringBuffer aOut;
-
- if( lcl_xmloff_getAny( rValue, nValue, nBytes ) )
- {
- SvXMLUnitConverter::convertMeasurePx( aOut, nValue );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLColorPropHdl
-//
-
-XMLColorPropHdl::~XMLColorPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLColorPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- Color aColor;
-
- const OUString astrHSL( RTL_CONSTASCII_USTRINGPARAM( "hsl" ) );
- if( rStrImpValue.matchIgnoreAsciiCase( astrHSL ) )
- {
- sal_Int32 nOpen = rStrImpValue.indexOf( '(' );
- sal_Int32 nClose = rStrImpValue.lastIndexOf( ')' );
-
- if( (nOpen != -1) && (nClose > nOpen) )
- {
- const OUString aTmp( rStrImpValue.copy( nOpen+1, nClose - nOpen-1) );
-
- sal_Int32 nIndex = 0;
-
- Sequence< double > aHSL(3);
- aHSL[0] = aTmp.getToken( 0, ',', nIndex ).toDouble();
- aHSL[1] = aTmp.getToken( 0, ',', nIndex ).toDouble() / 100.0;
- aHSL[2] = aTmp.getToken( 0, ',', nIndex ).toDouble() / 100.0;
- rValue <<= aHSL;
- bRet = true;
- }
- }
- else
- {
- bRet = SvXMLUnitConverter::convertColor( aColor, rStrImpValue );
- rValue <<= (sal_Int32)( aColor.GetColor() );
- }
-
- return bRet;
-}
-
-sal_Bool XMLColorPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- Color aColor;
- sal_Int32 nColor = 0;
-
- OUStringBuffer aOut;
- if( rValue >>= nColor )
- {
- aColor.SetColor( nColor );
-
- SvXMLUnitConverter::convertColor( aOut, aColor );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
- else
- {
- Sequence< double > aHSL;
- if( (rValue >>= aHSL) && (aHSL.getLength() == 3) )
- {
- aOut.append( OUString(RTL_CONSTASCII_USTRINGPARAM("hsl(")) );
- aOut.append( aHSL[0] );
- aOut.append( OUString(RTL_CONSTASCII_USTRINGPARAM(",")) );
- aOut.append( aHSL[1] * 100.0 );
- aOut.append( OUString(RTL_CONSTASCII_USTRINGPARAM("%,")) );
- aOut.append( aHSL[2] * 100.0 );
- aOut.append( OUString(RTL_CONSTASCII_USTRINGPARAM("%)")) );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLStringPropHdl
-//
-
-XMLStringPropHdl::~XMLStringPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLStringPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- rValue <<= rStrImpValue;
- bRet = sal_True;
-
- return bRet;
-}
-
-sal_Bool XMLStringPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if( rValue >>= rStrExpValue )
- bRet = sal_True;
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLStyleNamePropHdl
-//
-
-XMLStyleNamePropHdl::~XMLStyleNamePropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLStyleNamePropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
-
- if( rValue >>= rStrExpValue )
- {
- rStrExpValue = rUnitConverter.encodeStyleName( rStrExpValue );
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLDoublePropHdl
-//
-
-XMLDoublePropHdl::~XMLDoublePropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLDoublePropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- double fDblValue;
- sal_Bool bRet = SvXMLUnitConverter::convertDouble( fDblValue, rStrImpValue );
- rValue <<= fDblValue;
- return bRet;
-}
-
-sal_Bool XMLDoublePropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- double fValue = 0;
-
- if( rValue >>= fValue )
- {
- OUStringBuffer aOut;
- SvXMLUnitConverter::convertDouble( aOut, fValue );
- rStrExpValue = aOut.makeStringAndClear();
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLColorTransparentPropHdl
-//
-
-XMLColorTransparentPropHdl::XMLColorTransparentPropHdl(
- enum XMLTokenEnum eTransparent ) :
- sTransparent( GetXMLToken(
- eTransparent != XML_TOKEN_INVALID ? eTransparent : XML_TRANSPARENT ) )
-{
- // Nothing to do
-}
-
-XMLColorTransparentPropHdl::~XMLColorTransparentPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLColorTransparentPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- if( rStrImpValue != sTransparent )
- {
- Color aColor;
- bRet = SvXMLUnitConverter::convertColor( aColor, rStrImpValue );
- rValue <<= (sal_Int32)( aColor.GetColor() );
- }
-
- return bRet;
-}
-
-sal_Bool XMLColorTransparentPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nColor = 0;
-
- if( rStrExpValue == sTransparent )
- bRet = sal_False;
- else if( rValue >>= nColor )
- {
- Color aColor( nColor );
- OUStringBuffer aOut;
- SvXMLUnitConverter::convertColor( aOut, aColor );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLIsTransparentPropHdl
-//
-
-XMLIsTransparentPropHdl::XMLIsTransparentPropHdl(
- enum XMLTokenEnum eTransparent, sal_Bool bTransPropVal ) :
- sTransparent( GetXMLToken(
- eTransparent != XML_TOKEN_INVALID ? eTransparent : XML_TRANSPARENT ) ),
- bTransPropValue( bTransPropVal )
-{
-}
-
-XMLIsTransparentPropHdl::~XMLIsTransparentPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLIsTransparentPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bValue = ( (rStrImpValue == sTransparent) == bTransPropValue);
- rValue.setValue( &bValue, ::getBooleanCppuType() );
-
- return sal_True;
-}
-
-sal_Bool XMLIsTransparentPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- // MIB: This looks a bit strange, because bTransPropValue == bValue should
- // do the same, but this only applies if 'true' is represented by the same
- // 8 bit value in bValue and bTransPropValue. Who will ensure this?
- sal_Bool bValue = *(sal_Bool *)rValue.getValue();
- sal_Bool bIsTrans = bTransPropValue ? bValue : !bValue;
-
- if( bIsTrans )
- {
- rStrExpValue = sTransparent;
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLColorAutoPropHdl
-//
-
-XMLColorAutoPropHdl::XMLColorAutoPropHdl()
-{
- // Nothing to do
-}
-
-XMLColorAutoPropHdl::~XMLColorAutoPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLColorAutoPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- // This is a multi property: the value might be set to AUTO_COLOR
- // already by the XMLIsAutoColorPropHdl!
- sal_Int32 nColor = 0;
- if( !(rValue >>= nColor) || -1 != nColor )
- {
- Color aColor;
- bRet = SvXMLUnitConverter::convertColor( aColor, rStrImpValue );
- if( bRet )
- rValue <<= (sal_Int32)( aColor.GetColor() );
- }
-
- return bRet;
-}
-
-sal_Bool XMLColorAutoPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
-
- sal_Int32 nColor = 0;
- if( (rValue >>= nColor) && -1 != nColor )
- {
- Color aColor( nColor );
- OUStringBuffer aOut;
- SvXMLUnitConverter::convertColor( aOut, aColor );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLIsAutoColorPropHdl
-//
-
-XMLIsAutoColorPropHdl::XMLIsAutoColorPropHdl()
-{
-}
-
-XMLIsAutoColorPropHdl::~XMLIsAutoColorPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLIsAutoColorPropHdl::importXML( const OUString& rStrImpValue, Any& rValue, const SvXMLUnitConverter& ) const
-{
- bool bValue;
-
- // An auto color overrides any other color set!
- sal_Bool bRet = SvXMLUnitConverter::convertBool( bValue, rStrImpValue );
- if( bRet && bValue )
- rValue <<= (sal_Int32)-1;
-
- return sal_True;
-}
-
-sal_Bool XMLIsAutoColorPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
- sal_Bool bRet = sal_False;
- sal_Int32 nColor = 0;
-
- if( (rValue >>= nColor) && -1 == nColor )
- {
- OUStringBuffer aOut;
- SvXMLUnitConverter::convertBool( aOut, sal_True );
- rStrExpValue = aOut.makeStringAndClear();
-
- bRet = sal_True;
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// class XMLCompareOnlyPropHdl
-//
-
-XMLCompareOnlyPropHdl::~XMLCompareOnlyPropHdl()
-{
- // Nothing to do
-}
-
-sal_Bool XMLCompareOnlyPropHdl::importXML( const OUString&, Any&, const SvXMLUnitConverter& ) const
-{
- DBG_ASSERT( !this, "importXML called for compare-only-property" );
- return sal_False;
-}
-
-sal_Bool XMLCompareOnlyPropHdl::exportXML( OUString&, const Any&, const SvXMLUnitConverter& ) const
-{
- DBG_ASSERT( !this, "exportXML called for compare-only-property" );
- return sal_False;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// class XMLNumberWithoutZeroPropHdl
-//
-
-XMLNumberWithoutZeroPropHdl::XMLNumberWithoutZeroPropHdl( sal_Int8 nB ) :
- nBytes( nB )
-{
-}
-
-XMLNumberWithoutZeroPropHdl::~XMLNumberWithoutZeroPropHdl()
-{
-}
-
-sal_Bool XMLNumberWithoutZeroPropHdl::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Int32 nValue = 0;
- sal_Bool bRet = SvXMLUnitConverter::convertNumber( nValue, rStrImpValue );
- if( bRet )
- lcl_xmloff_setAny( rValue, nValue, nBytes );
- return bRet;
-}
-
-sal_Bool XMLNumberWithoutZeroPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
-
- sal_Int32 nValue = 0;
- sal_Bool bRet = lcl_xmloff_getAny( rValue, nValue, nBytes );
- bRet &= nValue != 0;
-
- if( bRet )
- {
- OUStringBuffer aBuffer;
- SvXMLUnitConverter::convertNumber( aBuffer, nValue );
- rStrExpValue = aBuffer.makeStringAndClear();
- }
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// class XMLNumberWithAutoInsteadZeroPropHdl
-//
-
-XMLNumberWithAutoInsteadZeroPropHdl::~XMLNumberWithAutoInsteadZeroPropHdl()
-{
-}
-
-sal_Bool XMLNumberWithAutoInsteadZeroPropHdl::importXML(
- const OUString& rStrImpValue,
- Any& rValue,
- const SvXMLUnitConverter& ) const
-{
- sal_Int32 nValue = 0;
- sal_Bool bRet = SvXMLUnitConverter::convertNumber( nValue, rStrImpValue );
- if( bRet )
- lcl_xmloff_setAny( rValue, nValue, 2 );
- else if( rStrImpValue == GetXMLToken( XML_AUTO ) )
- {
- rValue <<= (sal_Int16)nValue;
- bRet = sal_True;
- }
- return bRet;
-}
-
-sal_Bool XMLNumberWithAutoInsteadZeroPropHdl::exportXML( OUString& rStrExpValue, const Any& rValue, const SvXMLUnitConverter& ) const
-{
-
- sal_Int32 nValue = 0;
- lcl_xmloff_getAny( rValue, nValue, 2 );
-
- if( 0 == nValue )
- rStrExpValue = GetXMLToken( XML_AUTO );
- else
- {
- OUStringBuffer aBuffer;
- SvXMLUnitConverter::convertNumber( aBuffer, nValue );
- rStrExpValue = aBuffer.makeStringAndClear();
- }
-
- return sal_True;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlbahdl.hxx b/xmloff/source/style/xmlbahdl.hxx
deleted file mode 100644
index 907a760f10..0000000000
--- a/xmloff/source/style/xmlbahdl.hxx
+++ /dev/null
@@ -1,310 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLOFF_PROPERTYHANDLER_BASICTYPES_HXX
-#define _XMLOFF_PROPERTYHANDLER_BASICTYPES_HXX
-
-#include <xmloff/xmlprhdl.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/xmltoken.hxx>
-
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_NUMBER
-*/
-class XMLNumberPropHdl : public XMLPropertyHandler
-{
- sal_Int8 nBytes;
-
-public:
- XMLNumberPropHdl( sal_Int8 nB=4 ) : nBytes( nB ) {}
- virtual ~XMLNumberPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_NUMBER_NONE
-*/
-class XMLNumberNonePropHdl : public XMLPropertyHandler
-{
- ::rtl::OUString sZeroStr;
- sal_Int8 nBytes;
-public:
- XMLNumberNonePropHdl( sal_Int8 nB = 4 );
- XMLNumberNonePropHdl( enum ::xmloff::token::XMLTokenEnum eZeroString, sal_Int8 nB = 4 );
- virtual ~XMLNumberNonePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_MEASURE
-*/
-class XMLMeasurePropHdl : public XMLPropertyHandler
-{
- sal_Int8 nBytes;
-public:
- XMLMeasurePropHdl( sal_Int8 nB=4 ) : nBytes( nB ) {}
- virtual ~XMLMeasurePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_PERCENT
-*/
-class XMLPercentPropHdl : public XMLPropertyHandler
-{
- sal_Int8 nBytes;
-public:
- XMLPercentPropHdl( sal_Int8 nB=4 ) : nBytes( nB ) {}
- virtual ~XMLPercentPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_PERCENT
- that is mapped on a double from 0.0 to 1.0
-*/
-class XMLDoublePercentPropHdl : public XMLPropertyHandler
-{
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_NEG_PERCENT
-*/
-class XMLNegPercentPropHdl : public XMLPropertyHandler
-{
- sal_Int8 nBytes;
-public:
- XMLNegPercentPropHdl( sal_Int8 nB=4 ) : nBytes( nB ) {}
- virtual ~XMLNegPercentPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_PERCENT
-*/
-class XMLMeasurePxPropHdl : public XMLPropertyHandler
-{
- sal_Int8 nBytes;
-public:
- XMLMeasurePxPropHdl( sal_Int8 nB=4 ) : nBytes( nB ) {}
- virtual ~XMLMeasurePxPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_BOOL
-*/
-class XMLBoolPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLBoolPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_COLOR
-*/
-class XMLColorPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLColorPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_STRING
-*/
-class XMLStringPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLStringPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_STYLENAME
-*/
-class XMLStyleNamePropHdl : public XMLStringPropHdl
-{
-public:
- virtual ~XMLStyleNamePropHdl();
-
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_DOUBLE
-*/
-class XMLDoublePropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLDoublePropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_NBOOL
-*/
-class XMLNBoolPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLNBoolPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_COLORTRANSPARENT
-*/
-class XMLColorTransparentPropHdl : public XMLPropertyHandler
-{
- const ::rtl::OUString sTransparent;
-
-public:
- XMLColorTransparentPropHdl( enum ::xmloff::token::XMLTokenEnum eTransparent = xmloff::token::XML_TOKEN_INVALID );
- virtual ~XMLColorTransparentPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_ISTRANSPARENT
-*/
-class XMLIsTransparentPropHdl : public XMLPropertyHandler
-{
- const ::rtl::OUString sTransparent;
- sal_Bool bTransPropValue;
-
-public:
- XMLIsTransparentPropHdl( enum ::xmloff::token::XMLTokenEnum eTransparent = xmloff::token::XML_TOKEN_INVALID,
- sal_Bool bTransPropValue = sal_True );
- virtual ~XMLIsTransparentPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_COLORAUTO
-*/
-class XMLColorAutoPropHdl : public XMLPropertyHandler
-{
-public:
- XMLColorAutoPropHdl();
- virtual ~XMLColorAutoPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_COLORISAUTO
-*/
-class XMLIsAutoColorPropHdl : public XMLPropertyHandler
-{
-public:
- XMLIsAutoColorPropHdl();
- virtual ~XMLIsAutoColorPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-
-/**
- PropertyHandler for properties that cannot make use of importXML
- and exportXML methods, but can make use of the default comparison
-*/
-class XMLCompareOnlyPropHdl : public XMLPropertyHandler
-{
-public:
- virtual ~XMLCompareOnlyPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_NUMBER_NO_ZERO
- Reads/writes numeric properties, but fails for the value zero
- (i.e., a value 0 property will not be written)
-*/
-class XMLNumberWithoutZeroPropHdl : public XMLPropertyHandler
-{
- sal_Int8 nBytes;
-public:
- XMLNumberWithoutZeroPropHdl( sal_Int8 nB = 4 );
- virtual ~XMLNumberWithoutZeroPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-/**
- PropertyHandler for the XML-data-type: XML_TYPE_NUMBER16_AUTO
- Reads/writes numeric properties with special handling for the value zero
- (i.e., a value 0 property will be written as "auto")
-*/
-class XMLNumberWithAutoInsteadZeroPropHdl : public XMLNumberWithoutZeroPropHdl
-{
-public:
- virtual ~XMLNumberWithAutoInsteadZeroPropHdl();
-
- virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
- virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
-};
-
-#endif // _XMLOFF_PROPERTYHANDLER_BASICTYPES_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx
deleted file mode 100644
index 0cf1377524..0000000000
--- a/xmloff/source/style/xmlexppr.cxx
+++ /dev/null
@@ -1,1141 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/xml/AttributeData.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/beans/XMultiPropertySet.hpp>
-#include <com/sun/star/beans/XTolerantMultiPropertySet.hpp>
-#include <com/sun/star/beans/TolerantPropertySetResultType.hpp>
-#include <rtl/ustrbuf.hxx>
-#include <list>
-#include <boost/unordered_map.hpp>
-
-#include <xmloff/xmlexppr.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmlexp.hxx>
-#include <xmloff/xmlprmap.hxx>
-#include <xmloff/PropertySetInfoHash.hxx>
-#include <comphelper/stl_types.hxx>
-
-#ifndef _SVSTDARR_USHORTS
-#define _SVSTDARR_USHORTS
-#include <svl/svstdarr.hxx>
-#endif
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::std;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::xmloff::token;
-
-#define GET_PROP_TYPE( f ) static_cast<sal_uInt16>((f & XML_TYPE_PROP_MASK) >> XML_TYPE_PROP_SHIFT)
-
-struct XMLPropTokens_Impl
-{
- sal_uInt16 nType;
- XMLTokenEnum eToken;
-};
-
-#define ENTRY(t) { GET_PROP_TYPE(XML_TYPE_PROP_##t), XML_##t##_PROPERTIES }
-const sal_uInt16 MAX_PROP_TYPES =
- (XML_TYPE_PROP_END >> XML_TYPE_PROP_SHIFT) -
- (XML_TYPE_PROP_START >> XML_TYPE_PROP_SHIFT);
-
-static XMLPropTokens_Impl aPropTokens[MAX_PROP_TYPES] =
-{
- ENTRY(CHART),
- ENTRY(GRAPHIC),
- ENTRY(TABLE),
- ENTRY(TABLE_COLUMN),
- ENTRY(TABLE_ROW),
- ENTRY(TABLE_CELL),
- ENTRY(LIST_LEVEL),
- ENTRY(PARAGRAPH),
- ENTRY(TEXT),
- ENTRY(DRAWING_PAGE),
- ENTRY(PAGE_LAYOUT),
- ENTRY(HEADER_FOOTER),
- ENTRY(RUBY),
- ENTRY(SECTION)
-};
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// public methods
-//
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Take all properties of the XPropertySet which are also found in the
-// XMLPropertyMapEntry-array and which are not set to their default-value,
-// if a state is available.
-//
-// After that I call the method 'ContextFilter'.
-//
-
-typedef std::list<XMLPropertyState> XMLPropertyStateList_Impl;
-
-class XMLPropertyStates_Impl
-{
- XMLPropertyStateList_Impl aPropStates;
- XMLPropertyStateList_Impl::iterator aLastItr;
- sal_uInt32 nCount;
-public:
- XMLPropertyStates_Impl();
- void AddPropertyState(const XMLPropertyState& rPropState);
- void FillPropertyStateVector(std::vector<XMLPropertyState>& rVector);
-};
-
-XMLPropertyStates_Impl::XMLPropertyStates_Impl() :
- aPropStates(),
- nCount(0)
-{
- aLastItr = aPropStates.begin();
-}
-
-void XMLPropertyStates_Impl::AddPropertyState(
- const XMLPropertyState& rPropState)
-{
- XMLPropertyStateList_Impl::iterator aItr = aPropStates.begin();
- sal_Bool bInserted(sal_False);
- if (nCount)
- {
- if (aLastItr->mnIndex < rPropState.mnIndex)
- aItr = ++aLastItr;
- }
- do
- {
- // TODO: one path required only
- if (aItr == aPropStates.end())
- {
- aLastItr = aPropStates.insert(aPropStates.end(), rPropState);
- bInserted = sal_True;
- nCount++;
- }
- else if (aItr->mnIndex > rPropState.mnIndex)
- {
- aLastItr = aPropStates.insert(aItr, rPropState);
- bInserted = sal_True;
- nCount++;
- }
- }
- while(!bInserted && (aItr++ != aPropStates.end()));
-}
-
-void XMLPropertyStates_Impl::FillPropertyStateVector(
- std::vector<XMLPropertyState>& rVector)
-{
- if (nCount)
- {
- rVector.resize(nCount, XMLPropertyState(-1));
- ::std::copy( aPropStates.begin(), aPropStates.end(), rVector.begin() );
- }
-}
-
-class FilterPropertyInfo_Impl
-{
- const rtl::OUString sApiName;
- std::list<sal_uInt32> aIndexes;
- sal_uInt32 nCount;
-
-public:
-
- FilterPropertyInfo_Impl( const rtl::OUString& rApiName,
- const sal_uInt32 nIndex);
-
- const OUString& GetApiName() const { return sApiName; }
- std::list<sal_uInt32>& GetIndexes() { return aIndexes; }
-
- void AddIndex( sal_uInt32 nIndex )
- {
- aIndexes.push_back(nIndex);
- nCount++;
- }
-
- // for sort
- sal_Bool operator< ( const FilterPropertyInfo_Impl& rArg ) const
- {
- return (GetApiName() < rArg.GetApiName());
- }
-};
-
-FilterPropertyInfo_Impl::FilterPropertyInfo_Impl(
- const rtl::OUString& rApiName,
- const sal_uInt32 nIndex ) :
- sApiName( rApiName ),
- aIndexes(),
- nCount(1)
-{
- aIndexes.push_back(nIndex);
-}
-
-typedef std::list<FilterPropertyInfo_Impl> FilterPropertyInfoList_Impl;
-
-// ----------------------------------------------------------------------------
-
-class FilterPropertiesInfo_Impl
-{
- sal_uInt32 nCount;
- FilterPropertyInfoList_Impl aPropInfos;
- FilterPropertyInfoList_Impl::iterator aLastItr;
-
- Sequence <OUString> *pApiNames;
-
-public:
- FilterPropertiesInfo_Impl();
- ~FilterPropertiesInfo_Impl();
-
- void AddProperty(const rtl::OUString& rApiName, const sal_uInt32 nIndex);
- const uno::Sequence<OUString>& GetApiNames();
- void FillPropertyStateArray(
- vector< XMLPropertyState >& rPropStates,
- const Reference< XPropertySet >& xPropSet,
- const UniReference< XMLPropertySetMapper >& maPropMapper,
- const sal_Bool bDefault = sal_False);
- sal_uInt32 GetPropertyCount() const { return nCount; }
-};
-
-// ----------------------------------------------------------------------------
-
-typedef boost::unordered_map
-<
- PropertySetInfoKey,
- FilterPropertiesInfo_Impl *,
- PropertySetInfoHash,
- PropertySetInfoHash
->
-FilterOropertiesHashMap_Impl;
-
-class FilterPropertiesInfos_Impl : public FilterOropertiesHashMap_Impl
-{
-public:
- ~FilterPropertiesInfos_Impl ();
-};
-
-FilterPropertiesInfos_Impl::~FilterPropertiesInfos_Impl ()
-{
- FilterOropertiesHashMap_Impl::iterator aIter = begin();
- FilterOropertiesHashMap_Impl::iterator aEnd = end();
- while( aIter != aEnd )
- {
- delete (*aIter).second;
- (*aIter).second = 0;
- ++aIter;
- }
-}
-
-// ----------------------------------------------------------------------------
-
-FilterPropertiesInfo_Impl::FilterPropertiesInfo_Impl() :
- nCount(0),
- aPropInfos(),
- pApiNames( 0 )
-{
- aLastItr = aPropInfos.begin();
-}
-
-FilterPropertiesInfo_Impl::~FilterPropertiesInfo_Impl()
-{
- delete pApiNames;
-}
-
-void FilterPropertiesInfo_Impl::AddProperty(
- const rtl::OUString& rApiName, const sal_uInt32 nIndex)
-{
- aPropInfos.push_back(FilterPropertyInfo_Impl(rApiName, nIndex));
- nCount++;
-
- OSL_ENSURE( !pApiNames, "perfomance warning: API names already retrieved" );
- if( pApiNames )
- {
- delete pApiNames;
- pApiNames = NULL;
- }
-}
-const uno::Sequence<OUString>& FilterPropertiesInfo_Impl::GetApiNames()
-{
- OSL_ENSURE(nCount == aPropInfos.size(), "wrong property count");
- if( !pApiNames )
- {
- // we have to do three things:
- // 1) sort API names,
- // 2) merge duplicates,
- // 3) construct sequence
-
- // sort names
- aPropInfos.sort();
-
- // merge duplicates
- if ( nCount > 1 )
- {
- FilterPropertyInfoList_Impl::iterator aOld = aPropInfos.begin();
- FilterPropertyInfoList_Impl::iterator aEnd = aPropInfos.end();
- FilterPropertyInfoList_Impl::iterator aCurrent = aOld;
- ++aCurrent;
-
- while ( aCurrent != aEnd )
- {
- // equal to next element?
- if ( aOld->GetApiName().equals( aCurrent->GetApiName() ) )
- {
- // if equal: merge index lists
- aOld->GetIndexes().merge( aCurrent->GetIndexes() );
- // erase element, and continue with next
- aCurrent = aPropInfos.erase( aCurrent );
- nCount--;
- }
- else
- {
- // remember old element and continue with next
- aOld = aCurrent;
- ++aCurrent;
- }
- }
- }
-
- // construct sequence
- pApiNames = new Sequence < OUString >( nCount );
- OUString *pNames = pApiNames->getArray();
- FilterPropertyInfoList_Impl::iterator aItr = aPropInfos.begin();
- FilterPropertyInfoList_Impl::iterator aEnd = aPropInfos.end();
- for ( ; aItr != aEnd; ++aItr, ++pNames)
- *pNames = aItr->GetApiName();
- }
-
- return *pApiNames;
-}
-
-void FilterPropertiesInfo_Impl::FillPropertyStateArray(
- vector< XMLPropertyState >& rPropStates,
- const Reference< XPropertySet >& rPropSet,
- const UniReference< XMLPropertySetMapper >& rPropMapper,
- const sal_Bool bDefault )
-{
- XMLPropertyStates_Impl aPropStates;
-
- const uno::Sequence<OUString>& rApiNames = GetApiNames();
-
- Reference < XTolerantMultiPropertySet > xTolPropSet( rPropSet, UNO_QUERY );
- if (xTolPropSet.is())
- {
- if (!bDefault)
- {
- Sequence < beans::GetDirectPropertyTolerantResult > aResults(xTolPropSet->getDirectPropertyValuesTolerant(rApiNames));
- sal_Int32 nResultCount(aResults.getLength());
- if (nResultCount > 0)
- {
- const beans::GetDirectPropertyTolerantResult *pResults = aResults.getConstArray();
- FilterPropertyInfoList_Impl::iterator aPropIter(aPropInfos.begin());
- XMLPropertyState aNewProperty( -1 );
- sal_uInt32 i = 0;
- while (nResultCount > 0 && i < nCount)
- {
- if (pResults->Name == aPropIter->GetApiName())
- {
- aNewProperty.mnIndex = -1;
- aNewProperty.maValue = pResults->Value;
-
- for( std::list<sal_uInt32>::iterator aIndexItr(aPropIter->GetIndexes().begin());
- aIndexItr != aPropIter->GetIndexes().end();
- ++aIndexItr )
- {
- aNewProperty.mnIndex = *aIndexItr;
- aPropStates.AddPropertyState( aNewProperty );
- }
- ++pResults;
- --nResultCount;
- }
- ++aPropIter;
- ++i;
- }
- }
- }
- else
- {
- Sequence < beans::GetPropertyTolerantResult > aResults(xTolPropSet->getPropertyValuesTolerant(rApiNames));
- OSL_ENSURE( rApiNames.getLength() == aResults.getLength(), "wrong implemented XTolerantMultiPropertySet" );
- const beans::GetPropertyTolerantResult *pResults = aResults.getConstArray();
- FilterPropertyInfoList_Impl::iterator aPropIter(aPropInfos.begin());
- XMLPropertyState aNewProperty( -1 );
- sal_uInt32 nResultCount(aResults.getLength());
- OSL_ENSURE( nCount == nResultCount, "wrong implemented XTolerantMultiPropertySet??" );
- for( sal_uInt32 i = 0; i < nResultCount; ++i )
- {
- if ((pResults->Result == beans::TolerantPropertySetResultType::SUCCESS) &&
- ((pResults->State == PropertyState_DIRECT_VALUE) || (pResults->State == PropertyState_DEFAULT_VALUE)))
- {
- aNewProperty.mnIndex = -1;
- aNewProperty.maValue = pResults->Value;
-
- for( std::list<sal_uInt32>::iterator aIndexItr(aPropIter->GetIndexes().begin());
- aIndexItr != aPropIter->GetIndexes().end();
- ++aIndexItr )
- {
- aNewProperty.mnIndex = *aIndexItr;
- aPropStates.AddPropertyState( aNewProperty );
- }
- }
- ++pResults;
- ++aPropIter;
- }
- }
- }
- else
- {
- Sequence < PropertyState > aStates;
- const PropertyState *pStates = 0;
- Reference< XPropertyState > xPropState( rPropSet, UNO_QUERY );
- if( xPropState.is() )
- {
- aStates = xPropState->getPropertyStates( rApiNames );
- pStates = aStates.getConstArray();
- }
-
- Reference < XMultiPropertySet > xMultiPropSet( rPropSet, UNO_QUERY );
- if( xMultiPropSet.is() && !bDefault )
- {
- Sequence < Any > aValues;
- if( pStates )
- {
- // step 1: get value count
- sal_uInt32 nValueCount = 0;
- sal_uInt32 i;
-
- for( i = 0; i < nCount; ++i, ++pStates )
- {
- if( (*pStates == PropertyState_DIRECT_VALUE)/* || (bDefault && (*pStates == PropertyState_DEFAULT_VALUE))*/ )
- nValueCount++;
- }
-
- if( nValueCount )
- {
- // step 2: collect property names
- Sequence < OUString > aAPINames( nValueCount );
- OUString *pAPINames = aAPINames.getArray();
-
- ::std::vector< FilterPropertyInfoList_Impl::iterator > aPropIters;
- aPropIters.reserve( nValueCount );
-
- FilterPropertyInfoList_Impl::iterator aItr = aPropInfos.begin();
- OSL_ENSURE(aItr != aPropInfos.end(),"Invalid iterator!");
-
- pStates = aStates.getConstArray();
- i = 0;
- while( i < nValueCount )
- {
- if( (*pStates == PropertyState_DIRECT_VALUE)/* || (bDefault && (*pStates == PropertyState_DEFAULT_VALUE))*/ )
- {
- *pAPINames++ = aItr->GetApiName();
- aPropIters.push_back( aItr );
- ++i;
- }
- ++aItr;
- ++pStates;
- }
-
- aValues = xMultiPropSet->getPropertyValues( aAPINames );
- const Any *pValues = aValues.getConstArray();
-
- ::std::vector< FilterPropertyInfoList_Impl::iterator >::const_iterator
- pPropIter = aPropIters.begin();
-
- XMLPropertyState aNewProperty( -1 );
- for( i = 0; i < nValueCount; ++i )
- {
- aNewProperty.mnIndex = -1;
- aNewProperty.maValue = *pValues;
-
- const ::std::list< sal_uInt32 >& rIndexes( (*pPropIter)->GetIndexes() );
- for ( std::list<sal_uInt32>::const_iterator aIndexItr = rIndexes.begin();
- aIndexItr != rIndexes.end();
- ++aIndexItr
- )
- {
- aNewProperty.mnIndex = *aIndexItr;
- aPropStates.AddPropertyState( aNewProperty );
- }
-
- ++pPropIter;
- ++pValues;
- }
- }
- }
- else
- {
- aValues = xMultiPropSet->getPropertyValues( rApiNames );
- const Any *pValues = aValues.getConstArray();
-
- FilterPropertyInfoList_Impl::iterator aItr = aPropInfos.begin();
- for(sal_uInt32 i = 0; i < nCount; ++i)
- {
- // The value is stored in the PropertySet itself, add to list.
- XMLPropertyState aNewProperty( -1 );
- aNewProperty.maValue = *pValues;
- ++pValues;
- for( std::list<sal_uInt32>::iterator aIndexItr =
- aItr->GetIndexes().begin();
- aIndexItr != aItr->GetIndexes().end();
- ++aIndexItr )
- {
- aNewProperty.mnIndex = *aIndexItr;
- aPropStates.AddPropertyState( aNewProperty );
- }
- ++aItr;
- }
- }
- }
- else
- {
- FilterPropertyInfoList_Impl::iterator aItr = aPropInfos.begin();
- for(sal_uInt32 i = 0; i < nCount; ++i)
- {
- sal_Bool bDirectValue =
- !pStates || *pStates == PropertyState_DIRECT_VALUE;
- if( bDirectValue || bDefault )
- {
- // The value is stored in the PropertySet itself, add to list.
- sal_Bool bGotValue = sal_False;
- XMLPropertyState aNewProperty( -1 );
- for( std::list<sal_uInt32>::const_iterator aIndexItr =
- aItr->GetIndexes().begin();
- aIndexItr != aItr->GetIndexes().end();
- ++aIndexItr )
- {
- if( bDirectValue ||
- (rPropMapper->GetEntryFlags( *aIndexItr ) &
- MID_FLAG_DEFAULT_ITEM_EXPORT) != 0 )
- {
- try
- {
- if( !bGotValue )
- {
- aNewProperty.maValue =
- rPropSet->getPropertyValue( aItr->GetApiName() );
- bGotValue = sal_True;
- }
- aNewProperty.mnIndex = *aIndexItr;
- aPropStates.AddPropertyState( aNewProperty );
- }
- catch( UnknownPropertyException& )
- {
- // might be a problem of getImplemenetationId
- OSL_ENSURE( !this, "unknown property in getPropertyValue" );
- }
-
- }
- }
- }
-
- ++aItr;
- if( pStates )
- ++pStates;
- }
- }
- }
- aPropStates.FillPropertyStateVector(rPropStates);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// ctor/dtor , class SvXMLExportPropertyMapper
-//
-
-SvXMLExportPropertyMapper::SvXMLExportPropertyMapper(
- const UniReference< XMLPropertySetMapper >& rMapper ) :
- pCache( 0 ),
- maPropMapper( rMapper )
-{
-}
-
-SvXMLExportPropertyMapper::~SvXMLExportPropertyMapper()
-{
- delete pCache;
- mxNextMapper = 0;
-}
-
-void SvXMLExportPropertyMapper::ChainExportMapper(
- const UniReference< SvXMLExportPropertyMapper>& rMapper )
-{
- // add map entries from rMapper to current map
- maPropMapper->AddMapperEntry( rMapper->getPropertySetMapper() );
- // rMapper uses the same map as 'this'
- rMapper->maPropMapper = maPropMapper;
-
- // set rMapper as last mapper in current chain
- UniReference< SvXMLExportPropertyMapper > xNext = mxNextMapper;
- if( xNext.is())
- {
- while( xNext->mxNextMapper.is())
- xNext = xNext->mxNextMapper;
- xNext->mxNextMapper = rMapper;
- }
- else
- mxNextMapper = rMapper;
-
- // if rMapper was already chained, correct
- // map pointer of successors
- xNext = rMapper;
-
- while( xNext->mxNextMapper.is())
- {
- xNext = xNext->mxNextMapper;
- xNext->maPropMapper = maPropMapper;
- }
-}
-
-
-vector< XMLPropertyState > SvXMLExportPropertyMapper::_Filter(
- const Reference< XPropertySet > xPropSet,
- const sal_Bool bDefault ) const
-{
- vector< XMLPropertyState > aPropStateArray;
-
- // Retrieve XPropertySetInfo and XPropertyState
- Reference< XPropertySetInfo > xInfo( xPropSet->getPropertySetInfo() );
- if( !xInfo.is() )
- return aPropStateArray;
-
- sal_Int32 nProps = maPropMapper->GetEntryCount();
-
- FilterPropertiesInfo_Impl *pFilterInfo = 0;
-
- Reference < XTypeProvider > xTypeProv( xPropSet, UNO_QUERY );
- Sequence< sal_Int8 > aImplId;
- if( xTypeProv.is() )
- {
- aImplId = xTypeProv->getImplementationId();
- if( aImplId.getLength() == 16 )
- {
- if( pCache )
- {
- // The key must not be created outside this block, because it
- // keeps a reference to the property set info.
- PropertySetInfoKey aKey( xInfo, aImplId );
- FilterPropertiesInfos_Impl::iterator aIter =
- pCache->find( aKey );
- if( aIter != pCache->end() )
- pFilterInfo = (*aIter).second;
- }
- }
- }
-
- sal_Bool bDelInfo = sal_False;
- if( !pFilterInfo )
- {
- pFilterInfo = new FilterPropertiesInfo_Impl;
- for( sal_Int32 i=0; i < nProps; i++ )
- {
- // Are we allowed to ask for the property? (MID_FLAG_NO_PROP..)
- // Does the PropertySet contain name of mpEntries-array ?
- const OUString& rAPIName = maPropMapper->GetEntryAPIName( i );
- const sal_Int32 nFlags = maPropMapper->GetEntryFlags( i );
- if( (0 == (nFlags & MID_FLAG_NO_PROPERTY_EXPORT)) &&
- ( (0 != (nFlags & MID_FLAG_MUST_EXIST)) ||
- xInfo->hasPropertyByName( rAPIName ) ) )
- {
- const SvtSaveOptions::ODFDefaultVersion nCurrentVersion( SvtSaveOptions().GetODFDefaultVersion() );
- const SvtSaveOptions::ODFDefaultVersion nEarliestODFVersionForExport(
- maPropMapper->GetEarliestODFVersionForExport( i ) );
- if( nCurrentVersion >= nEarliestODFVersionForExport
- || nCurrentVersion == SvtSaveOptions::ODFVER_UNKNOWN
- || nEarliestODFVersionForExport == SvtSaveOptions::ODFVER_UNKNOWN )
- pFilterInfo->AddProperty(rAPIName, i);
- }
- }
-
- if( xTypeProv.is() && aImplId.getLength() == 16 )
- {
- // Check whether the property set info is destroyed if it is
- // assigned to a weak reference only. If it is destroyed, then
- // every instance of getPropertySetInfo returns a new object.
- // Such property set infos must not be cached.
- WeakReference < XPropertySetInfo > xWeakInfo( xInfo );
- xInfo = 0;
- xInfo = xWeakInfo;
- if( xInfo.is() )
- {
- if( !pCache )
- ((SvXMLExportPropertyMapper *)this)->pCache =
- new FilterPropertiesInfos_Impl;
- PropertySetInfoKey aKey( xInfo, aImplId );
- (*pCache)[aKey] = pFilterInfo;
- }
- else
- bDelInfo = sal_True;
- }
- else
- {
- OSL_FAIL("here is no TypeProvider or the ImplId is wrong");
- bDelInfo = sal_True;
- }
- }
-
- if( pFilterInfo->GetPropertyCount() )
- {
- try
- {
- pFilterInfo->FillPropertyStateArray(aPropStateArray,
- xPropSet, maPropMapper,
- bDefault);
- }
- catch( UnknownPropertyException& )
- {
- // might be a problem of getImplemenetationId
- OSL_ENSURE( !this, "unknown property in getPropertyStates" );
- }
- }
-
- // Call centext-filter
- if( !aPropStateArray.empty() )
- ContextFilter( aPropStateArray, xPropSet );
-
- // Have to do if we change from a vector to a list or something like that
-
- if( bDelInfo )
- delete pFilterInfo;
-
- return aPropStateArray;
-}
-
-void SvXMLExportPropertyMapper::ContextFilter(
- vector< XMLPropertyState >& rProperties,
- Reference< XPropertySet > rPropSet ) const
-{
- // Derived class could implement this.
- if( mxNextMapper.is() )
- mxNextMapper->ContextFilter( rProperties, rPropSet );
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Compares two Sequences of XMLPropertyState:
-// 1.Number of elements equal ?
-// 2.Index of each element equal ? (So I know whether the propertynames are the same)
-// 3.Value of each element equal ?
-//
-sal_Bool SvXMLExportPropertyMapper::Equals(
- const vector< XMLPropertyState >& aProperties1,
- const vector< XMLPropertyState >& aProperties2 ) const
-{
- sal_Bool bRet = sal_True;
- sal_uInt32 nCount = aProperties1.size();
-
- if( nCount == aProperties2.size() )
- {
- sal_uInt32 nIndex = 0;
- while( bRet && nIndex < nCount )
- {
- const XMLPropertyState& rProp1 = aProperties1[ nIndex ];
- const XMLPropertyState& rProp2 = aProperties2[ nIndex ];
-
- // Compare index. If equal, compare value
- if( rProp1.mnIndex == rProp2.mnIndex )
- {
- if( rProp1.mnIndex != -1 )
- {
- // Now compare values
- if( ( maPropMapper->GetEntryType( rProp1.mnIndex ) &
- XML_TYPE_BUILDIN_CMP ) != 0 )
- // simple type ( binary compare )
- bRet = ( rProp1.maValue == rProp2.maValue );
- else
- // complex type ( ask for compare-function )
- bRet = maPropMapper->GetPropertyHandler(
- rProp1.mnIndex )->equals( rProp1.maValue,
- rProp2.maValue );
- }
- }
- else
- bRet = sal_False;
-
- nIndex++;
- }
- }
- else
- bRet = sal_False;
-
- return bRet;
-}
-
-
-/** fills the given attribute list with the items in the given set
-void SvXMLExportPropertyMapper::exportXML( SvXMLAttributeList& rAttrList,
- const ::std::vector< XMLPropertyState >& rProperties,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_uInt16 nFlags ) const
-{
- _exportXML( rAttrList, rProperties, rUnitConverter, rNamespaceMap,
- nFlags, 0, -1, -1 );
-}
-
-
-void SvXMLExportPropertyMapper::exportXML( SvXMLAttributeList& rAttrList,
- const ::std::vector< XMLPropertyState >& rProperties,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_Int32 nPropMapStartIdx, sal_Int32 nPropMapEndIdx,
- sal_uInt16 nFlags ) const
-{
- _exportXML( rAttrList, rProperties, rUnitConverter, rNamespaceMap,
- nFlags, 0, nPropMapStartIdx, nPropMapEndIdx );
-}
-*/
-
-
-void SvXMLExportPropertyMapper::exportXML( SvXMLAttributeList& rAttrList,
- const XMLPropertyState& rProperty,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_uInt16 nFlags ) const
-{
- if( ( maPropMapper->GetEntryFlags( rProperty.mnIndex ) &
- MID_FLAG_ELEMENT_ITEM_EXPORT ) == 0 )
- _exportXML( rAttrList, rProperty, rUnitConverter, rNamespaceMap,
- nFlags );
-}
-
-void SvXMLExportPropertyMapper::exportXML(
- SvXMLExport& rExport,
- const ::std::vector< XMLPropertyState >& rProperties,
- sal_uInt16 nFlags ) const
-{
- exportXML( rExport, rProperties, -1, -1, nFlags );
-}
-
-void SvXMLExportPropertyMapper::exportXML(
- SvXMLExport& rExport,
- const ::std::vector< XMLPropertyState >& rProperties,
- sal_Int32 nPropMapStartIdx, sal_Int32 nPropMapEndIdx,
- sal_uInt16 nFlags ) const
-{
- sal_uInt16 nPropTypeFlags = 0;
- for( sal_uInt16 i=0; i<MAX_PROP_TYPES; ++i )
- {
- sal_uInt16 nPropType = aPropTokens[i].nType;
- if( 0==i || (nPropTypeFlags & (1 << nPropType)) != 0 )
- {
- SvUShorts aIndexArray;
-
- _exportXML( nPropType, nPropTypeFlags,
- rExport.GetAttrList(), rProperties,
- rExport.GetMM100UnitConverter(),
- rExport.GetNamespaceMap(),
- nFlags, &aIndexArray,
- nPropMapStartIdx, nPropMapEndIdx );
-
- if( rExport.GetAttrList().getLength() > 0L ||
- (nFlags & XML_EXPORT_FLAG_EMPTY) != 0 ||
- aIndexArray.Count() != 0 )
- {
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_STYLE,
- aPropTokens[i].eToken,
- (nFlags & XML_EXPORT_FLAG_IGN_WS) != 0,
- sal_False );
-
- exportElementItems( rExport, rProperties, nFlags, aIndexArray );
- }
- }
- }
-}
-
-/** this method is called for every item that has the
- MID_FLAG_SPECIAL_ITEM_EXPORT flag set */
-void SvXMLExportPropertyMapper::handleSpecialItem(
- SvXMLAttributeList& rAttrList,
- const XMLPropertyState& rProperty,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- const ::std::vector< XMLPropertyState > *pProperties,
- sal_uInt32 nIdx ) const
-{
- OSL_ENSURE( mxNextMapper.is(), "special item not handled in xml export" );
- if( mxNextMapper.is() )
- mxNextMapper->handleSpecialItem( rAttrList, rProperty, rUnitConverter,
- rNamespaceMap, pProperties, nIdx );
-}
-
-/** this method is called for every item that has the
- MID_FLAG_ELEMENT_EXPORT flag set */
-void SvXMLExportPropertyMapper::handleElementItem(
- SvXMLExport& rExport,
- const XMLPropertyState& rProperty,
- sal_uInt16 nFlags,
- const ::std::vector< XMLPropertyState > *pProperties,
- sal_uInt32 nIdx ) const
-{
- OSL_ENSURE( mxNextMapper.is(), "element item not handled in xml export" );
- if( mxNextMapper.is() )
- mxNextMapper->handleElementItem( rExport, rProperty, nFlags,
- pProperties, nIdx );
-}
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// protected methods
-//
-
-/** fills the given attribute list with the items in the given set */
-void SvXMLExportPropertyMapper::_exportXML(
- sal_uInt16 nPropType, sal_uInt16& rPropTypeFlags,
- SvXMLAttributeList& rAttrList,
- const ::std::vector< XMLPropertyState >& rProperties,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_uInt16 nFlags,
- SvUShorts* pIndexArray,
- sal_Int32 nPropMapStartIdx, sal_Int32 nPropMapEndIdx ) const
-{
- const sal_uInt32 nCount = rProperties.size();
- sal_uInt32 nIndex = 0;
-
- if( -1 == nPropMapStartIdx )
- nPropMapStartIdx = 0;
- if( -1 == nPropMapEndIdx )
- nPropMapEndIdx = maPropMapper->GetEntryCount();
-
- while( nIndex < nCount )
- {
- sal_Int32 nPropMapIdx = rProperties[nIndex].mnIndex;
- if( nPropMapIdx >= nPropMapStartIdx &&
- nPropMapIdx < nPropMapEndIdx )// valid entry?
- {
- sal_uInt32 nEFlags = maPropMapper->GetEntryFlags( nPropMapIdx );
- sal_uInt16 nEPType = GET_PROP_TYPE(nEFlags);
- OSL_ENSURE( nEPType >= (XML_TYPE_PROP_START>>XML_TYPE_PROP_SHIFT),
- "no prop type sepcified" );
- rPropTypeFlags |= (1 << nEPType);
- if( nEPType == nPropType )
- {
- // we have a valid map entry here, so lets use it...
- if( ( nEFlags & MID_FLAG_ELEMENT_ITEM_EXPORT ) != 0 )
- {
- // element items do not add any properties,
- // we export it later
- if( pIndexArray )
- pIndexArray->Insert( (sal_uInt16)nIndex, pIndexArray->Count() );
- }
- else
- {
- _exportXML( rAttrList, rProperties[nIndex], rUnitConverter,
- rNamespaceMap, nFlags, &rProperties, nIndex );
- }
- }
- }
-
- nIndex++;
- }
-}
-
-void SvXMLExportPropertyMapper::_exportXML(
- SvXMLAttributeList& rAttrList,
- const XMLPropertyState& rProperty,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_uInt16 /*nFlags*/,
- const ::std::vector< XMLPropertyState > *pProperties,
- sal_uInt32 nIdx ) const
-{
- OUString sCDATA( GetXMLToken(XML_CDATA) );
-
- if ( ( maPropMapper->GetEntryFlags( rProperty.mnIndex ) &
- MID_FLAG_SPECIAL_ITEM_EXPORT ) != 0 )
- {
- uno::Reference< container::XNameContainer > xAttrContainer;
- if( (rProperty.maValue >>= xAttrContainer) && xAttrContainer.is() )
- {
- SvXMLNamespaceMap *pNewNamespaceMap = 0;
- const SvXMLNamespaceMap *pNamespaceMap = &rNamespaceMap;
-
- uno::Sequence< OUString > aAttribNames( xAttrContainer->getElementNames() );
- const OUString* pAttribName = aAttribNames.getConstArray();
-
- const sal_Int32 nCount = aAttribNames.getLength();
-
- OUStringBuffer sNameBuffer;
- xml::AttributeData aData;
- for( sal_Int32 i=0; i < nCount; i++, pAttribName++ )
- {
- xAttrContainer->getByName( *pAttribName ) >>= aData;
- OUString sAttribName( *pAttribName );
-
- // extract namespace prefix from attribute name if it exists
- OUString sPrefix;
- const sal_Int32 nColonPos =
- pAttribName->indexOf( sal_Unicode(':') );
- if( nColonPos != -1 )
- sPrefix = pAttribName->copy( 0, nColonPos );
-
- if( sPrefix.getLength() )
- {
- OUString sNamespace( aData.Namespace );
-
- // if the prefix isn't defined yet or has another meaning,
- // we have to redefine it now.
- sal_uInt16 nKey = pNamespaceMap->GetKeyByPrefix( sPrefix );
- if( USHRT_MAX == nKey || pNamespaceMap->GetNameByKey( nKey ) != sNamespace )
- {
- sal_Bool bAddNamespace = sal_False;
- if( USHRT_MAX == nKey )
- {
- // The prefix is unused, so it is sufficient
- // to add it to the namespace map.
- bAddNamespace = sal_True;
- }
- else
- {
- // check if there is a prefix registered for the
- // namepsace URI
- nKey = pNamespaceMap->GetKeyByName( sNamespace );
- if( XML_NAMESPACE_UNKNOWN == nKey )
- {
- // There is no prefix for the namespace, so
- // we have to generate one and have to add it.
- sal_Int32 n=0;
- OUString sOrigPrefix( sPrefix );
- do
- {
- sNameBuffer.append( sOrigPrefix );
- sNameBuffer.append( ++n );
- sPrefix = sNameBuffer.makeStringAndClear();
- nKey = pNamespaceMap->GetKeyByPrefix( sPrefix );
- }
- while( nKey != USHRT_MAX );
-
- bAddNamespace = sal_True;
- }
- else
- {
- // If there is a prefix for the namespace,
- // we reuse that.
- sPrefix = pNamespaceMap->GetPrefixByKey( nKey );
- }
- // In any case, the attribute name has to be adapted.
- sNameBuffer.append( sPrefix );
- sNameBuffer.append( sal_Unicode(':') );
- sNameBuffer.append( pAttribName->copy( nColonPos+1 ) );
- sAttribName = sNameBuffer.makeStringAndClear();
- }
-
- if( bAddNamespace )
- {
- if( !pNewNamespaceMap )
- {
- pNewNamespaceMap = new SvXMLNamespaceMap( rNamespaceMap );
- pNamespaceMap = pNewNamespaceMap;
- }
- pNewNamespaceMap->Add( sPrefix, sNamespace );
- sNameBuffer.append( GetXMLToken(XML_XMLNS) );
- sNameBuffer.append( sal_Unicode(':') );
- sNameBuffer.append( sPrefix );
- rAttrList.AddAttribute( sNameBuffer.makeStringAndClear(),
- sNamespace );
- }
- }
- }
- OUString sOldValue( rAttrList.getValueByName( sAttribName ) );
- OSL_ENSURE( sOldValue.getLength() == 0, "alien attribute exists already" );
- OSL_ENSURE(aData.Type == GetXMLToken(XML_CDATA), "different type to our default type which should be written out");
- if( !sOldValue.getLength() )
- rAttrList.AddAttribute( sAttribName, aData.Value );
- }
-
- delete pNewNamespaceMap;
- }
- else
- {
- handleSpecialItem( rAttrList, rProperty, rUnitConverter,
- rNamespaceMap, pProperties, nIdx );
- }
- }
- else if ( ( maPropMapper->GetEntryFlags( rProperty.mnIndex ) &
- MID_FLAG_ELEMENT_ITEM_EXPORT ) == 0 )
- {
- OUString aValue;
- const OUString sName( rNamespaceMap.GetQNameByKey(
- maPropMapper->GetEntryNameSpace( rProperty.mnIndex ),
- maPropMapper->GetEntryXMLName( rProperty.mnIndex ) ) );
-
- sal_Bool bRemove = sal_False;
- if( ( maPropMapper->GetEntryFlags( rProperty.mnIndex ) &
- MID_FLAG_MERGE_ATTRIBUTE ) != 0 )
- {
- aValue = rAttrList.getValueByName( sName );
- bRemove = sal_True;
- }
-
- if( maPropMapper->exportXML( aValue, rProperty, rUnitConverter ) )
- {
- if( bRemove )
- rAttrList.RemoveAttribute( sName );
- rAttrList.AddAttribute( sName, aValue );
- }
- }
-}
-
-void SvXMLExportPropertyMapper::exportElementItems(
- SvXMLExport& rExport,
- const ::std::vector< XMLPropertyState >& rProperties,
- sal_uInt16 nFlags,
- const SvUShorts& rIndexArray ) const
-{
- const sal_uInt16 nCount = rIndexArray.Count();
-
- sal_Bool bItemsExported = sal_False;
- OUString sWS( GetXMLToken(XML_WS) );
- for( sal_uInt16 nIndex = 0; nIndex < nCount; nIndex++ )
- {
- const sal_uInt16 nElement = rIndexArray.GetObject( nIndex );
-
- OSL_ENSURE( 0 != ( maPropMapper->GetEntryFlags(
- rProperties[nElement].mnIndex ) & MID_FLAG_ELEMENT_ITEM_EXPORT),
- "wrong mid flag!" );
-
- rExport.IgnorableWhitespace();
- handleElementItem( rExport, rProperties[nElement],
- nFlags, &rProperties, nElement );
- bItemsExported = sal_True;
- }
-
- if( bItemsExported )
- rExport.IgnorableWhitespace();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlimppr.cxx b/xmloff/source/style/xmlimppr.cxx
deleted file mode 100644
index 2044da1d98..0000000000
--- a/xmloff/source/style/xmlimppr.cxx
+++ /dev/null
@@ -1,779 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/xml/AttributeData.hpp>
-#include <com/sun/star/beans/XMultiPropertySet.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <com/sun/star/lang/WrappedTargetException.hpp>
-#include <com/sun/star/beans/UnknownPropertyException.hpp>
-#include <com/sun/star/beans/PropertyVetoException.hpp>
-#include <com/sun/star/beans/TolerantPropertySetResultType.hpp>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/xmlprmap.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/xmlimppr.hxx>
-#include <xmloff/xmlimp.hxx>
-
-#include "xmloff/unoatrcn.hxx"
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include "xmloff/xmlerror.hxx"
-#include <tools/debug.hxx>
-
-#include "xmloff/contextid.hxx"
-
-// STL includes
-#include <algorithm>
-#include <functional>
-#include <utility>
-#include <vector>
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::xml;
-using namespace ::com::sun::star::xml::sax;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::std;
-using namespace ::xmloff::token;
-using ::com::sun::star::lang::IllegalArgumentException;
-using ::com::sun::star::lang::WrappedTargetException;
-using ::com::sun::star::beans::UnknownPropertyException;
-using ::com::sun::star::beans::PropertyVetoException;
-
-using rtl::OUString;
-using rtl::OUStringBuffer;
-
-SvXMLImportPropertyMapper::SvXMLImportPropertyMapper(
- const UniReference< XMLPropertySetMapper >& rMapper,
- SvXMLImport& rImp ):
- rImport(rImp),
- maPropMapper ( rMapper )
-{
-}
-
-SvXMLImportPropertyMapper::~SvXMLImportPropertyMapper()
-{
- mxNextMapper = 0;
-}
-
-void SvXMLImportPropertyMapper::ChainImportMapper(
- const UniReference< SvXMLImportPropertyMapper>& rMapper )
-{
- // add map entries from rMapper to current map
- maPropMapper->AddMapperEntry( rMapper->getPropertySetMapper() );
- // rMapper uses the same map as 'this'
- rMapper->maPropMapper = maPropMapper;
-
- // set rMapper as last mapper in current chain
- UniReference< SvXMLImportPropertyMapper > xNext = mxNextMapper;
- if( xNext.is())
- {
- while( xNext->mxNextMapper.is())
- xNext = xNext->mxNextMapper;
- xNext->mxNextMapper = rMapper;
- }
- else
- mxNextMapper = rMapper;
-
- // if rMapper was already chained, correct
- // map pointer of successors
- xNext = rMapper;
-
- while( xNext->mxNextMapper.is())
- {
- xNext = xNext->mxNextMapper;
- xNext->maPropMapper = maPropMapper;
- }
-}
-
-void SvXMLImportPropertyMapper::importXML(
- vector< XMLPropertyState >& rProperties,
- Reference< XAttributeList > xAttrList,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_uInt32 nPropType ) const
-{
- importXML( rProperties, xAttrList, rUnitConverter, rNamespaceMap,
- nPropType,-1, -1 );
-}
-
-/** fills the given itemset with the attributes in the given list */
-void SvXMLImportPropertyMapper::importXML(
- vector< XMLPropertyState >& rProperties,
- Reference< XAttributeList > xAttrList,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap,
- sal_uInt32 nPropType,
- sal_Int32 nStartIdx,
- sal_Int32 nEndIdx ) const
-{
- sal_Int16 nAttr = xAttrList->getLength();
-
- Reference< XNameContainer > xAttrContainer;
-
- if( -1 == nStartIdx )
- nStartIdx = 0;
- if( -1 == nEndIdx )
- nEndIdx = maPropMapper->GetEntryCount();
- for( sal_Int16 i=0; i < nAttr; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName, aPrefix, aNamespace;
- sal_uInt16 nPrefix = rNamespaceMap.GetKeyByAttrName( rAttrName, &aPrefix,
- &aLocalName, &aNamespace );
-
- if( XML_NAMESPACE_XMLNS == nPrefix )
- continue;
-
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- // index of actual property map entry
- // This looks very strange, but it works well:
- // If the start index is 0, the new value will become -1, and
- // GetEntryIndex will start searching with position 0.
- // Otherwise GetEntryIndex will start with the next position specified.
- sal_Int32 nIndex = nStartIdx - 1;
- sal_uInt32 nFlags = 0; // flags of actual property map entry
- sal_Bool bFound = sal_False;
-
- // for better error reporting: this should be set true if no
- // warning is needed
- sal_Bool bNoWarning = sal_False;
- bool bAlienImport = false;
-
- do
- {
- // find an entry for this attribute
- nIndex = maPropMapper->GetEntryIndex( nPrefix, aLocalName,
- nPropType, nIndex );
-
- if( nIndex > -1 && nIndex < nEndIdx )
- {
- // create a XMLPropertyState with an empty value
-
- nFlags = maPropMapper->GetEntryFlags( nIndex );
- if( (( nFlags & MID_FLAG_NO_PROPERTY ) == MID_FLAG_NO_PROPERTY) && (maPropMapper->GetEntryContextId( nIndex ) == CTF_ALIEN_ATTRIBUTE_IMPORT) )
- {
- bAlienImport = true;
- nIndex = -1;
- }
- else
- {
- if( ( nFlags & MID_FLAG_ELEMENT_ITEM_IMPORT ) == 0 )
- {
- XMLPropertyState aNewProperty( nIndex );
- sal_Int32 nReference = -1;
-
- // if this is a multi attribute check if another attribute already set
- // this any. If so use this as a initial value
- if( ( nFlags & MID_FLAG_MERGE_PROPERTY ) != 0 )
- {
- const OUString aAPIName( maPropMapper->GetEntryAPIName( nIndex ) );
- const sal_Int32 nSize = rProperties.size();
- for( nReference = 0; nReference < nSize; nReference++ )
- {
- sal_Int32 nRefIdx = rProperties[nReference].mnIndex;
- if( (nRefIdx != -1) && (nIndex != nRefIdx) &&
- (maPropMapper->GetEntryAPIName( nRefIdx ) == aAPIName ))
- {
- aNewProperty = rProperties[nReference];
- aNewProperty.mnIndex = nIndex;
- break;
- }
- }
-
- if( nReference == nSize )
- nReference = -1;
- }
-
- sal_Bool bSet = sal_False;
- if( ( nFlags & MID_FLAG_SPECIAL_ITEM_IMPORT ) == 0 )
- {
- // let the XMLPropertySetMapper decide how to import the value
- bSet = maPropMapper->importXML( rValue, aNewProperty,
- rUnitConverter );
- }
- else
- {
- sal_uInt32 nOldSize = rProperties.size();
-
- bSet = handleSpecialItem( aNewProperty, rProperties,
- rValue, rUnitConverter,
- rNamespaceMap );
-
- // no warning if handleSpecialItem added properties
- bNoWarning |= ( nOldSize != rProperties.size() );
- }
-
- // no warning if we found could set the item. This
- // 'remembers' bSet across multi properties.
- bNoWarning |= bSet;
-
- // store the property in the given vector
- if( bSet )
- {
- if( nReference == -1 )
- rProperties.push_back( aNewProperty );
- else
- rProperties[nReference] = aNewProperty;
- }
- else
- {
- // warn about unknown value. Unless it's a
- // multi property: Then we get another chance
- // to set the value.
- if( !bNoWarning &&
- ((nFlags & MID_FLAG_MULTI_PROPERTY) == 0) )
- {
- Sequence<OUString> aSeq(2);
- aSeq[0] = rAttrName;
- aSeq[1] = rValue;
- rImport.SetError( XMLERROR_FLAG_WARNING |
- XMLERROR_STYLE_ATTR_VALUE,
- aSeq );
- }
- }
- }
- bFound = sal_True;
- continue;
- }
- }
-
- if( !bFound )
- {
- if( (XML_NAMESPACE_UNKNOWN_FLAG & nPrefix) || (XML_NAMESPACE_NONE == nPrefix) || bAlienImport )
- {
- OSL_ENSURE( XML_NAMESPACE_NONE == nPrefix ||
- (XML_NAMESPACE_UNKNOWN_FLAG & nPrefix) ||
- bAlienImport,
- "unknown attribute - might be a new feature?" );
- if( !xAttrContainer.is() )
- {
- // add an unknown attribute container to the properties
- Reference< XNameContainer > xNew( SvUnoAttributeContainer_CreateInstance(), UNO_QUERY );
- xAttrContainer = xNew;
-
- // find map entry and create new property state
- if( -1 == nIndex )
- {
- switch( nPropType )
- {
- case XML_TYPE_PROP_CHART:
- nIndex = maPropMapper->FindEntryIndex( "ChartUserDefinedAttributes", XML_NAMESPACE_TEXT, GetXMLToken(XML_XMLNS) );
- break;
- case XML_TYPE_PROP_PARAGRAPH:
- nIndex = maPropMapper->FindEntryIndex( "ParaUserDefinedAttributes", XML_NAMESPACE_TEXT, GetXMLToken(XML_XMLNS) );
- break;
- case XML_TYPE_PROP_TEXT:
- nIndex = maPropMapper->FindEntryIndex( "TextUserDefinedAttributes", XML_NAMESPACE_TEXT, GetXMLToken(XML_XMLNS) );
- break;
- default:
- break;
- }
- // other property type or property not found
- if( -1 == nIndex )
- nIndex = maPropMapper->FindEntryIndex( "UserDefinedAttributes", XML_NAMESPACE_TEXT, GetXMLToken(XML_XMLNS) );
- }
-
- // #106963#; use userdefined attribute only if it is in the specified property range
- if( nIndex != -1 && nIndex >= nStartIdx && nIndex < nEndIdx)
- {
- Any aAny;
- aAny <<= xAttrContainer;
- XMLPropertyState aNewProperty( nIndex, aAny );
-
- // push it on our stack so we export it later
- rProperties.push_back( aNewProperty );
- }
- }
-
- if( xAttrContainer.is() )
- {
- AttributeData aData;
- aData.Type = GetXMLToken( XML_CDATA );
- aData.Value = rValue;
-
- OUStringBuffer sName;
- if( XML_NAMESPACE_NONE != nPrefix )
- {
- sName.append( aPrefix );
- sName.append( sal_Unicode(':') );
- aData.Namespace = aNamespace;
- }
-
- sName.append( aLocalName );
-
- Any aAny;
- aAny <<= aData;
- xAttrContainer->insertByName( sName.makeStringAndClear(), aAny );
- }
- }
- }
- }
- while( ( nIndex >= 0 ) && (( nFlags & MID_FLAG_MULTI_PROPERTY ) != 0 ) );
- }
-
- finished( rProperties, nStartIdx, nEndIdx );
-}
-
-/** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_IMPORT flag set */
-bool SvXMLImportPropertyMapper::handleSpecialItem(
- XMLPropertyState& rProperty,
- vector< XMLPropertyState >& rProperties,
- const OUString& rValue,
- const SvXMLUnitConverter& rUnitConverter,
- const SvXMLNamespaceMap& rNamespaceMap ) const
-{
- OSL_ENSURE( mxNextMapper.is(), "unsuported special item in xml import" );
- if( mxNextMapper.is() )
- return mxNextMapper->handleSpecialItem( rProperty, rProperties, rValue,
- rUnitConverter, rNamespaceMap );
- else
- return sal_False;
-}
-
-void SvXMLImportPropertyMapper::FillPropertySequence(
- const ::std::vector< XMLPropertyState >& rProperties,
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rValues )
- const
-{
- sal_Int32 nCount = rProperties.size();
- sal_Int32 nValueCount = 0;
- rValues.realloc( nCount );
- PropertyValue *pProps = rValues.getArray();
- for( sal_Int32 i=0; i < nCount; i++ )
- {
- const XMLPropertyState& rProp = rProperties[i];
- sal_Int32 nIdx = rProp.mnIndex;
- if( nIdx == -1 )
- continue;
- pProps->Name = maPropMapper->GetEntryAPIName( nIdx );
- if( pProps->Name.getLength() )
- {
- pProps->Value <<= rProp.maValue;
- ++pProps;
- ++nValueCount;
- }
- }
- if( nValueCount < nCount )
- rValues.realloc( nValueCount );
-}
-
-void SvXMLImportPropertyMapper::CheckSpecialContext(
- const ::std::vector< XMLPropertyState >& aProperties,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::beans::XPropertySet > rPropSet,
- _ContextID_Index_Pair* pSpecialContextIds ) const
-{
- OSL_ENSURE( rPropSet.is(), "need an XPropertySet" );
- sal_Int32 nCount = aProperties.size();
-
- Reference< XPropertySetInfo > xInfo(rPropSet->getPropertySetInfo());
-
- for( sal_Int32 i=0; i < nCount; i++ )
- {
- const XMLPropertyState& rProp = aProperties[i];
- sal_Int32 nIdx = rProp.mnIndex;
-
- // disregard property state if it has an invalid index
- if( -1 == nIdx )
- continue;
-
- const sal_Int32 nPropFlags = maPropMapper->GetEntryFlags( nIdx );
-
- // handle no-property and special items
- if( ( pSpecialContextIds != NULL ) &&
- ( ( 0 != ( nPropFlags & MID_FLAG_NO_PROPERTY_IMPORT ) ) ||
- ( 0 != ( nPropFlags & MID_FLAG_SPECIAL_ITEM_IMPORT ) ) ) )
- {
- // maybe it's one of our special context ids?
- sal_Int16 nContextId = maPropMapper->GetEntryContextId(nIdx);
-
- for ( sal_Int32 n = 0;
- pSpecialContextIds[n].nContextID != -1;
- n++ )
- {
- // found: set index in pSpecialContextIds array
- if ( pSpecialContextIds[n].nContextID == nContextId )
- {
- pSpecialContextIds[n].nIndex = i;
- break; // early out
- }
- }
- }
- }
-
-}
-
-sal_Bool SvXMLImportPropertyMapper::FillPropertySet(
- const vector< XMLPropertyState >& aProperties,
- const Reference< XPropertySet > rPropSet,
- _ContextID_Index_Pair* pSpecialContextIds ) const
-{
- sal_Bool bSet = sal_False;
-
- Reference< XTolerantMultiPropertySet > xTolPropSet( rPropSet, UNO_QUERY );
- if (xTolPropSet.is())
- bSet = _FillTolerantMultiPropertySet( aProperties, xTolPropSet, maPropMapper, rImport,
- pSpecialContextIds );
-
- if (!bSet)
- {
- // get property set info
- Reference< XPropertySetInfo > xInfo(rPropSet->getPropertySetInfo());
-
- // check for multi-property set
- Reference<XMultiPropertySet> xMultiPropSet( rPropSet, UNO_QUERY );
- if ( xMultiPropSet.is() )
- {
- // Try XMultiPropertySet. If that fails, try the regular route.
- bSet = _FillMultiPropertySet( aProperties, xMultiPropSet,
- xInfo, maPropMapper,
- pSpecialContextIds );
- if ( !bSet )
- bSet = _FillPropertySet( aProperties, rPropSet,
- xInfo, maPropMapper, rImport,
- pSpecialContextIds);
- }
- else
- bSet = _FillPropertySet( aProperties, rPropSet, xInfo,
- maPropMapper, rImport,
- pSpecialContextIds );
- }
-
- return bSet;
-}
-
-sal_Bool SvXMLImportPropertyMapper::_FillPropertySet(
- const vector<XMLPropertyState> & rProperties,
- const Reference<XPropertySet> & rPropSet,
- const Reference<XPropertySetInfo> & rPropSetInfo,
- const UniReference<XMLPropertySetMapper> & rPropMapper,
- SvXMLImport& rImport,
- _ContextID_Index_Pair* pSpecialContextIds )
-{
- OSL_ENSURE( rPropSet.is(), "need an XPropertySet" );
- OSL_ENSURE( rPropSetInfo.is(), "need an XPropertySetInfo" );
-
- // preliminaries
- sal_Bool bSet = sal_False;
- sal_Int32 nCount = rProperties.size();
-
- // iterate over property states that we want to set
- for( sal_Int32 i=0; i < nCount; i++ )
- {
- const XMLPropertyState& rProp = rProperties[i];
- sal_Int32 nIdx = rProp.mnIndex;
-
- // disregard property state if it has an invalid index
- if( -1 == nIdx )
- continue;
-
- const OUString& rPropName = rPropMapper->GetEntryAPIName( nIdx );
- const sal_Int32 nPropFlags = rPropMapper->GetEntryFlags( nIdx );
-
- if ( ( 0 == ( nPropFlags & MID_FLAG_NO_PROPERTY ) ) &&
- ( ( 0 != ( nPropFlags & MID_FLAG_MUST_EXIST ) ) ||
- rPropSetInfo->hasPropertyByName( rPropName ) ) )
- {
- // try setting the property
- try
- {
- rPropSet->setPropertyValue( rPropName, rProp.maValue );
- bSet = sal_True;
- }
- catch ( IllegalArgumentException& e )
- {
- // illegal value: check whether this property is
- // allowed to throw this exception
- if ( 0 == ( nPropFlags & MID_FLAG_PROPERTY_MAY_EXCEPT ) )
- {
- Sequence<OUString> aSeq(1);
- aSeq[0] = rPropName;
- rImport.SetError(
- XMLERROR_STYLE_PROP_VALUE | XMLERROR_FLAG_ERROR,
- aSeq, e.Message, NULL );
- }
- }
- catch ( UnknownPropertyException& e )
- {
- // unknown property: This is always an error!
- Sequence<OUString> aSeq(1);
- aSeq[0] = rPropName;
- rImport.SetError(
- XMLERROR_STYLE_PROP_UNKNOWN | XMLERROR_FLAG_ERROR,
- aSeq, e.Message, NULL );
- }
- catch ( PropertyVetoException& e )
- {
- // property veto: this shouldn't happen
- Sequence<OUString> aSeq(1);
- aSeq[0] = rPropName;
- rImport.SetError(
- XMLERROR_STYLE_PROP_OTHER | XMLERROR_FLAG_ERROR,
- aSeq, e.Message, NULL );
- }
- catch ( WrappedTargetException& e )
- {
- // wrapped target: this shouldn't happen either
- Sequence<OUString> aSeq(1);
- aSeq[0] = rPropName;
- rImport.SetError(
- XMLERROR_STYLE_PROP_OTHER | XMLERROR_FLAG_ERROR,
- aSeq, e.Message, NULL );
- }
- }
-
- // handle no-property and special items
- if( ( pSpecialContextIds != NULL ) &&
- ( ( 0 != ( nPropFlags & MID_FLAG_NO_PROPERTY_IMPORT ) ) ||
- ( 0 != ( nPropFlags & MID_FLAG_SPECIAL_ITEM_IMPORT ) ) ) )
- {
- // maybe it's one of our special context ids?
- sal_Int16 nContextId = rPropMapper->GetEntryContextId(nIdx);
-
- for ( sal_Int32 n = 0;
- pSpecialContextIds[n].nContextID != -1;
- n++ )
- {
- // found: set index in pSpecialContextIds array
- if ( pSpecialContextIds[n].nContextID == nContextId )
- {
- pSpecialContextIds[n].nIndex = i;
- break; // early out
- }
- }
- }
- }
-
- return bSet;
-}
-
-
-
-typedef pair<const OUString*, const Any* > PropertyPair;
-typedef vector<PropertyPair> PropertyPairs;
-
-struct PropertyPairLessFunctor :
- public std::binary_function<PropertyPair, PropertyPair, bool>
-{
- bool operator()( const PropertyPair& a, const PropertyPair& b ) const
- {
- return (*a.first < *b.first ? true : false);
- }
-};
-
-void SvXMLImportPropertyMapper::_PrepareForMultiPropertySet(
- const vector<XMLPropertyState> & rProperties,
- const Reference<XPropertySetInfo> & rPropSetInfo,
- const UniReference<XMLPropertySetMapper> & rPropMapper,
- _ContextID_Index_Pair* pSpecialContextIds,
- Sequence<OUString>& rNames,
- Sequence<Any>& rValues)
-{
- sal_Int32 nCount = rProperties.size();
-
- // property pairs structure stores names + values of properties to be set.
- PropertyPairs aPropertyPairs;
- aPropertyPairs.reserve( nCount );
-
- // iterate over property states that we want to set
- sal_Int32 i;
- for( i = 0; i < nCount; i++ )
- {
- const XMLPropertyState& rProp = rProperties[i];
- sal_Int32 nIdx = rProp.mnIndex;
-
- // disregard property state if it has an invalid index
- if( -1 == nIdx )
- continue;
-
- const OUString& rPropName = rPropMapper->GetEntryAPIName( nIdx );
- const sal_Int32 nPropFlags = rPropMapper->GetEntryFlags( nIdx );
-
- if ( ( 0 == ( nPropFlags & MID_FLAG_NO_PROPERTY ) ) &&
- ( ( 0 != ( nPropFlags & MID_FLAG_MUST_EXIST ) ) ||
- !rPropSetInfo.is() ||
- (rPropSetInfo.is() && rPropSetInfo->hasPropertyByName( rPropName )) ) )
- {
- // save property into property pair structure
- aPropertyPairs.push_back( PropertyPair( &rPropName, &rProp.maValue ) );
- }
-
- // handle no-property and special items
- if( ( pSpecialContextIds != NULL ) &&
- ( ( 0 != ( nPropFlags & MID_FLAG_NO_PROPERTY_IMPORT ) ) ||
- ( 0 != ( nPropFlags & MID_FLAG_SPECIAL_ITEM_IMPORT ) ) ) )
- {
- // maybe it's one of our special context ids?
- sal_Int16 nContextId = rPropMapper->GetEntryContextId(nIdx);
- for ( sal_Int32 n = 0;
- pSpecialContextIds[n].nContextID != -1;
- n++ )
- {
- // found: set index in pSpecialContextIds array
- if ( pSpecialContextIds[n].nContextID == nContextId )
- {
- pSpecialContextIds[n].nIndex = i;
- break; // early out
- }
- }
- }
- }
-
- // We now need to construct the sequences and actually the set
- // values.
-
- // sort the property pairs
- sort( aPropertyPairs.begin(), aPropertyPairs.end(),
- PropertyPairLessFunctor());
-
- // create sequences
- rNames.realloc( aPropertyPairs.size() );
- OUString* pNamesArray = rNames.getArray();
- rValues.realloc( aPropertyPairs.size() );
- Any* pValuesArray = rValues.getArray();
-
- // copy values into sequences
- i = 0;
- for( PropertyPairs::iterator aIter = aPropertyPairs.begin();
- aIter != aPropertyPairs.end();
- ++aIter )
- {
- pNamesArray[i] = *(aIter->first);
- pValuesArray[i++] = *(aIter->second);
- }
-}
-
-sal_Bool SvXMLImportPropertyMapper::_FillMultiPropertySet(
- const vector<XMLPropertyState> & rProperties,
- const Reference<XMultiPropertySet> & rMultiPropSet,
- const Reference<XPropertySetInfo> & rPropSetInfo,
- const UniReference<XMLPropertySetMapper> & rPropMapper,
- _ContextID_Index_Pair* pSpecialContextIds )
-{
- OSL_ENSURE( rMultiPropSet.is(), "Need multi property set. ");
- OSL_ENSURE( rPropSetInfo.is(), "Need property set info." );
-
- sal_Bool bSuccessful = sal_False;
-
- Sequence<OUString> aNames;
- Sequence<Any> aValues;
-
- _PrepareForMultiPropertySet(rProperties, rPropSetInfo, rPropMapper, pSpecialContextIds,
- aNames, aValues);
-
- // and, finally, try to set the values
- try
- {
- rMultiPropSet->setPropertyValues( aNames, aValues );
- bSuccessful = sal_True;
- }
- catch ( ... )
- {
- OSL_ENSURE(bSuccessful, "Exception caught; style may not be imported correctly.");
- }
-
- return bSuccessful;
-}
-
-sal_Bool SvXMLImportPropertyMapper::_FillTolerantMultiPropertySet(
- const vector<XMLPropertyState> & rProperties,
- const Reference<XTolerantMultiPropertySet> & rTolMultiPropSet,
- const UniReference<XMLPropertySetMapper> & rPropMapper,
- SvXMLImport& rImport,
- _ContextID_Index_Pair* pSpecialContextIds )
-{
- OSL_ENSURE( rTolMultiPropSet.is(), "Need tolerant multi property set. ");
-
- sal_Bool bSuccessful = sal_False;
-
- Sequence<OUString> aNames;
- Sequence<Any> aValues;
-
- _PrepareForMultiPropertySet(rProperties, Reference<XPropertySetInfo>(NULL), rPropMapper, pSpecialContextIds,
- aNames, aValues);
-
- // and, finally, try to set the values
- try
- {
- Sequence< SetPropertyTolerantFailed > aResults(rTolMultiPropSet->setPropertyValuesTolerant( aNames, aValues ));
- if (aResults.getLength() == 0)
- bSuccessful = sal_True;
- else
- {
- sal_Int32 nCount(aResults.getLength());
- for( sal_Int32 i = 0; i < nCount; ++i)
- {
- Sequence<OUString> aSeq(1);
- aSeq[0] = aResults[i].Name;
- rtl::OUString sMessage;
- switch (aResults[i].Result)
- {
- case TolerantPropertySetResultType::UNKNOWN_PROPERTY :
- sMessage = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UNKNOWN_PROPERTY"));
- break;
- case TolerantPropertySetResultType::ILLEGAL_ARGUMENT :
- sMessage = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ILLEGAL_ARGUMENT"));
- break;
- case TolerantPropertySetResultType::PROPERTY_VETO :
- sMessage = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PROPERTY_VETO"));
- break;
- case TolerantPropertySetResultType::WRAPPED_TARGET :
- sMessage = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("WRAPPED_TARGET"));
- break;
- };
- rImport.SetError(
- XMLERROR_STYLE_PROP_OTHER | XMLERROR_FLAG_ERROR,
- aSeq, sMessage, NULL );
- }
- }
- }
- catch ( ... )
- {
- OSL_ENSURE(bSuccessful, "Exception caught; style may not be imported correctly.");
- }
-
- return bSuccessful;
-}
-
-void SvXMLImportPropertyMapper::finished(
- vector< XMLPropertyState >& rProperties,
- sal_Int32 nStartIndex, sal_Int32 nEndIndex ) const
-{
- // nothing to do here
- if( mxNextMapper.is() )
- mxNextMapper->finished( rProperties, nStartIndex, nEndIndex );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlnume.cxx b/xmloff/source/style/xmlnume.cxx
deleted file mode 100644
index a472d61eb6..0000000000
--- a/xmloff/source/style/xmlnume.cxx
+++ /dev/null
@@ -1,907 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
-#include <com/sun/star/style/NumberingType.hpp>
-#include <com/sun/star/style/XStyle.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XIndexReplace.hpp>
-#include <com/sun/star/awt/XBitmap.hpp>
-#include <com/sun/star/awt/FontDescriptor.hpp>
-#include <com/sun/star/text/HoriOrientation.hpp>
-#include <com/sun/star/text/VertOrientation.hpp>
-#include <com/sun/star/text/XChapterNumberingSupplier.hpp>
-#include <com/sun/star/text/PositionAndSpaceMode.hpp>
-#include <com/sun/star/text/LabelFollow.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-#include <rtl/ustrbuf.hxx>
-
-#include <tools/debug.hxx>
-
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "fonthdl.hxx"
-#include "xmloff/XMLTextListAutoStylePool.hxx"
-#include <xmloff/xmlnume.hxx>
-#include <xmloff/xmlexp.hxx>
-#include <tools/fontenum.hxx>
-
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::text;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::beans;
-using namespace ::xmloff::token;
-
-static sal_Char const XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE[] = "SymbolTextDistance";
-static sal_Char const XML_UNO_NAME_NRULE_PARENT_NUMBERING[] = "ParentNumbering";
-static sal_Char const XML_UNO_NAME_NRULE_CHAR_STYLE_NAME[] = "CharStyleName";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_CHAR[] = "BulletChar";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_RELSIZE[] = "BulletRelSize";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_COLOR[] = "BulletColor";
-static sal_Char const XML_UNO_NAME_NRULE_GRAPHIC_BITMAP[] = "GraphicBitmap";
-static sal_Char const XML_UNO_NAME_NRULE_GRAPHIC_SIZE[] = "GraphicSize";
-static sal_Char const XML_UNO_NAME_NRULE_VERT_ORIENT[] = "VertOrient";
-static sal_Char const XML_UNO_NAME_NRULE_NUMBERINGTYPE[] = "NumberingType";
-static sal_Char const XML_UNO_NAME_NRULE_HEADING_STYLE_NAME[] = "HeadingStyleName";
-static sal_Char const XML_UNO_NAME_NRULE_PREFIX[] = "Prefix";
-static sal_Char const XML_UNO_NAME_NRULE_SUFFIX[] = "Suffix";
-static sal_Char const XML_UNO_NAME_NRULE_ADJUST[] = "Adjust";
-static sal_Char const XML_UNO_NAME_NRULE_LEFT_MARGIN[] = "LeftMargin";
-static sal_Char const XML_UNO_NAME_NRULE_FIRST_LINE_OFFSET[] = "FirstLineOffset";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_FONT[] = "BulletFont";
-static sal_Char const XML_UNO_NAME_NRULE_GRAPHICURL[] = "GraphicURL";
-static sal_Char const XML_UNO_NAME_NRULE_START_WITH[] = "StartWith";
-static sal_Char const XML_UNO_NAME_NRULE_POSITION_AND_SPACE_MODE[] = "PositionAndSpaceMode";
-static sal_Char const XML_UNO_NAME_NRULE_LABEL_FOLLOWED_BY[] = "LabelFollowedBy";
-static sal_Char const XML_UNO_NAME_NRULE_LISTTAB_STOP_POSITION[] = "ListtabStopPosition";
-static sal_Char const XML_UNO_NAME_NRULE_FIRST_LINE_INDENT[] = "FirstLineIndent";
-static sal_Char const XML_UNO_NAME_NRULE_INDENT_AT[] = "IndentAt";
-
-void SvxXMLNumRuleExport::exportLevelStyles( const uno::Reference< ::com::sun::star::container::XIndexReplace > & xNumRule,
- sal_Bool bOutline )
-{
- sal_Int32 nCount = xNumRule ->getCount();
- for( sal_Int32 i=0; i<nCount; i++ )
- {
- uno::Any aEntry( xNumRule->getByIndex( i ) );
- uno::Sequence<beans::PropertyValue> aSeq;
- if( aEntry >>= aSeq )
- {
- exportLevelStyle( i, aSeq, bOutline );
- }
- }
-}
-
-void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel,
- const uno::Sequence<beans::PropertyValue>& rProps,
- sal_Bool bOutline )
-{
- sal_Int16 eType = NumberingType::CHAR_SPECIAL;
-
- sal_Int16 eAdjust = HoriOrientation::LEFT;
- OUString sPrefix, sSuffix;
- OUString sTextStyleName;
- sal_Bool bHasColor = sal_False;
- sal_Int32 nColor = 0;
- sal_Int32 nSpaceBefore = 0, nMinLabelWidth = 0, nMinLabelDist = 0;
-
- sal_Int16 nStartValue = 1, nDisplayLevels = 1, nBullRelSize = 0;
-
- sal_Unicode cBullet = 0xf095;
- OUString sBulletFontName, sBulletFontStyleName ;
- sal_Int16 eBulletFontFamily = FAMILY_DONTKNOW;
- sal_Int16 eBulletFontPitch = PITCH_DONTKNOW;
- rtl_TextEncoding eBulletFontEncoding = RTL_TEXTENCODING_DONTKNOW;
-
- OUString sImageURL;
- uno::Reference< ::com::sun::star::awt::XBitmap > xBitmap;
- sal_Int32 nImageWidth = 0, nImageHeight = 0;
- sal_Int16 eImageVertOrient = VertOrientation::LINE_CENTER;
-
- sal_Int16 ePosAndSpaceMode = PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION;
- sal_Int16 eLabelFollowedBy = LabelFollow::LISTTAB;
- sal_Int32 nListtabStopPosition( 0 );
- sal_Int32 nFirstLineIndent( 0 );
- sal_Int32 nIndentAt( 0 );
-
- const sal_Int32 nCount = rProps.getLength();
- const beans::PropertyValue* pPropArray = rProps.getConstArray();
- for( sal_Int32 i=0; i<nCount; i++ )
- {
- const beans::PropertyValue& rProp = pPropArray[i];
-
- if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_NUMBERINGTYPE, sizeof(XML_UNO_NAME_NRULE_NUMBERINGTYPE)-1 ) )
- {
- rProp.Value >>= eType;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_PREFIX, sizeof(XML_UNO_NAME_NRULE_PREFIX)-1 ) )
- {
- rProp.Value >>= sPrefix;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_SUFFIX, sizeof(XML_UNO_NAME_NRULE_SUFFIX)-1 ) )
- {
- rProp.Value >>= sSuffix;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_BULLET_CHAR, sizeof(XML_UNO_NAME_NRULE_BULLET_CHAR)-1 ) )
- {
- OUString sValue;
- rProp.Value >>= sValue;
- if( sValue.getLength() > 0 )
- {
- cBullet = (sal_Unicode)sValue[0];
- }
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_BULLET_RELSIZE, sizeof(XML_UNO_NAME_NRULE_BULLET_RELSIZE)-1 ) )
- {
- rProp.Value >>= nBullRelSize;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_ADJUST, sizeof(XML_UNO_NAME_NRULE_ADJUST)-1 ) )
- {
- sal_Int16 nValue = 0;
- rProp.Value >>= nValue;
- eAdjust = nValue;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_BULLET_FONT, sizeof(XML_UNO_NAME_NRULE_BULLET_FONT)-1 ) )
- {
- awt::FontDescriptor rFDesc;
- if( rProp.Value >>= rFDesc )
- {
- sBulletFontName = rFDesc.Name;
- sBulletFontStyleName = rFDesc.StyleName;
- eBulletFontFamily = (sal_Int16)rFDesc.Family;
- eBulletFontPitch = (sal_Int16)rFDesc.Pitch;
- eBulletFontEncoding = (rtl_TextEncoding)rFDesc.CharSet;
- }
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_GRAPHICURL, sizeof(XML_UNO_NAME_NRULE_GRAPHICURL)-1 ) )
- {
- rProp.Value >>= sImageURL;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_GRAPHIC_BITMAP, sizeof(XML_UNO_NAME_NRULE_GRAPHIC_BITMAP)-1 ) )
- {
- rProp.Value >>= xBitmap;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_BULLET_COLOR, sizeof(XML_UNO_NAME_NRULE_BULLET_COLOR)-1 ) )
- {
- rProp.Value >>= nColor;
- bHasColor = sal_True;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_START_WITH, sizeof(XML_UNO_NAME_NRULE_START_WITH)-1 ) )
- {
- rProp.Value >>= nStartValue;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_LEFT_MARGIN, sizeof(XML_UNO_NAME_NRULE_LEFT_MARGIN)-1 ) )
- {
- rProp.Value >>= nSpaceBefore;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_FIRST_LINE_OFFSET, sizeof(XML_UNO_NAME_NRULE_FIRST_LINE_OFFSET)-1 ) )
- {
- rProp.Value >>= nMinLabelWidth;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE, sizeof(XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE)-1 ) )
- {
- rProp.Value >>= nMinLabelDist;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_PARENT_NUMBERING, sizeof(XML_UNO_NAME_NRULE_PARENT_NUMBERING)-1 ) )
- {
- rProp.Value >>= nDisplayLevels;
- if( nDisplayLevels > nLevel+1 )
- nDisplayLevels = static_cast<sal_Int16>( nLevel )+1;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_CHAR_STYLE_NAME, sizeof(XML_UNO_NAME_NRULE_CHAR_STYLE_NAME)-1 ) )
- {
- rProp.Value >>= sTextStyleName;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_GRAPHIC_SIZE, sizeof(XML_UNO_NAME_NRULE_GRAPHIC_SIZE)-1 ) )
- {
- awt::Size aSize;
- if( rProp.Value >>= aSize )
- {
- nImageWidth = aSize.Width;
- nImageHeight = aSize.Height;
- }
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_VERT_ORIENT, sizeof(XML_UNO_NAME_NRULE_VERT_ORIENT)-1 ) )
- {
- sal_Int16 nValue = 0;
- rProp.Value >>= nValue;
- eImageVertOrient = nValue;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_POSITION_AND_SPACE_MODE,
- sizeof(XML_UNO_NAME_NRULE_POSITION_AND_SPACE_MODE)-1 ) )
- {
- sal_Int16 nValue = 0;
- rProp.Value >>= nValue;
- ePosAndSpaceMode = nValue;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_LABEL_FOLLOWED_BY,
- sizeof(XML_UNO_NAME_NRULE_LABEL_FOLLOWED_BY)-1 ) )
- {
- sal_Int16 nValue = 0;
- rProp.Value >>= nValue;
- eLabelFollowedBy = nValue;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_LISTTAB_STOP_POSITION,
- sizeof(XML_UNO_NAME_NRULE_LISTTAB_STOP_POSITION)-1 ) )
- {
- rProp.Value >>= nListtabStopPosition;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_FIRST_LINE_INDENT,
- sizeof(XML_UNO_NAME_NRULE_FIRST_LINE_INDENT)-1 ) )
- {
- rProp.Value >>= nFirstLineIndent;
- }
- else if( rProp.Name.equalsAsciiL( XML_UNO_NAME_NRULE_INDENT_AT,
- sizeof(XML_UNO_NAME_NRULE_INDENT_AT)-1 ) )
- {
- rProp.Value >>= nIndentAt;
- }
- }
-
- if( bOutline && (NumberingType::CHAR_SPECIAL == eType ||
- NumberingType::BITMAP == eType) )
- {
- DBG_ASSERT( !bOutline,
- "SvxXMLNumRuleExport::exportLevelStyle: invalid style for outline" );
- return;
- }
-
- GetExport().CheckAttrList();
-
- // text:level
- OUStringBuffer sTmp;
- sTmp.append( nLevel + 1 );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_LEVEL, sTmp.makeStringAndClear() );
- // #i110694#: no style-name on list-level-style-image
- // #i116149#: neither prefix/suffix
- if (NumberingType::BITMAP != eType)
- {
- if (sTextStyleName.getLength() > 0)
- {
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_STYLE_NAME,
- GetExport().EncodeStyleName( sTextStyleName ) );
- }
- if (sPrefix.getLength() > 0)
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_PREFIX,
- sPrefix );
- }
- if (sSuffix.getLength() > 0)
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_SUFFIX,
- sSuffix );
- }
- }
-
- enum XMLTokenEnum eElem = XML_LIST_LEVEL_STYLE_NUMBER;
- if( NumberingType::CHAR_SPECIAL == eType )
- {
- // <text:list-level-style-bullet>
- eElem = XML_LIST_LEVEL_STYLE_BULLET;
-
- if( cBullet )
- {
- if( cBullet < ' ' )
- {
- cBullet = 0xF000 + 149;
- }
- // text:bullet-char="..."
- sTmp.append( cBullet );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_BULLET_CHAR,
- sTmp.makeStringAndClear() );
- }
-
- }
- else if( NumberingType::BITMAP == eType )
- {
- // <text:list-level-style-image>
-
- eElem = XML_LIST_LEVEL_STYLE_IMAGE;
-
-
- if( sImageURL.getLength() )
- {
- OUString sURL( GetExport().AddEmbeddedGraphicObject( sImageURL ) );
- if( sURL.getLength() )
- {
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, sURL );
-
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
- GetExport().AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONLOAD );
- }
- }
- else
- {
- DBG_ASSERT( !xBitmap.is(),
- "embedded images are not supported by now" );
- }
- }
- else
- {
- // <text:list-level-style-number> or <text:outline-level-style>
- if( bOutline )
- eElem = XML_OUTLINE_LEVEL_STYLE;
- else
- eElem = XML_LIST_LEVEL_STYLE_NUMBER;
-
- GetExport().GetMM100UnitConverter().convertNumFormat( sTmp, eType );
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_FORMAT,
- sTmp.makeStringAndClear() );
- GetExport().GetMM100UnitConverter().convertNumLetterSync( sTmp, eType );
- if( sTmp.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_NUM_LETTER_SYNC,
- sTmp.makeStringAndClear() );
-
- if( nStartValue != 1 )
- {
- sTmp.append( (sal_Int32)nStartValue );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_START_VALUE,
- sTmp.makeStringAndClear() );
- }
- if( nDisplayLevels > 1 && NumberingType::NUMBER_NONE != eType )
- {
- sTmp.append( (sal_Int32)nDisplayLevels );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_DISPLAY_LEVELS,
- sTmp.makeStringAndClear() );
- }
- }
-
- {
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, eElem,
- sal_True, sal_True );
-
- OUStringBuffer sBuffer;
- if ( ePosAndSpaceMode == PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION )
- {
- nSpaceBefore += nMinLabelWidth;
- nMinLabelWidth = -nMinLabelWidth;
- if( nSpaceBefore != 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nSpaceBefore );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_SPACE_BEFORE,
- sBuffer.makeStringAndClear() );
- }
- if( nMinLabelWidth != 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nMinLabelWidth );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH,
- sBuffer.makeStringAndClear() );
- }
- if( nMinLabelDist > 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nMinLabelDist );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE,
- sBuffer.makeStringAndClear() );
- }
- }
- /* Check, if properties for position-and-space-mode LABEL_ALIGNMENT
- are allowed to be exported. (#i89178#)
- */
- else if ( ePosAndSpaceMode == PositionAndSpaceMode::LABEL_ALIGNMENT &&
- mbExportPositionAndSpaceModeLabelAlignment )
- {
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_LIST_LEVEL_POSITION_AND_SPACE_MODE,
- XML_LABEL_ALIGNMENT );
- }
- if( HoriOrientation::LEFT != eAdjust )
- {
- enum XMLTokenEnum eValue = XML_TOKEN_INVALID;
- switch( eAdjust )
- {
- case HoriOrientation::RIGHT: eValue = XML_END; break;
- case HoriOrientation::CENTER: eValue = XML_CENTER; break;
- }
- if( eValue != XML_TOKEN_INVALID )
- GetExport().AddAttribute( XML_NAMESPACE_FO, XML_TEXT_ALIGN, eValue );
- }
-
- if( NumberingType::BITMAP == eType )
- {
- enum XMLTokenEnum eValue = XML_TOKEN_INVALID;
- switch( eImageVertOrient )
- {
- case VertOrientation::BOTTOM: // yes, its OK: BOTTOM means that the baseline
- // hits the frame at its topmost position
- case VertOrientation::LINE_TOP:
- case VertOrientation::CHAR_TOP:
- eValue = XML_TOP;
- break;
- case VertOrientation::CENTER:
- case VertOrientation::LINE_CENTER:
- case VertOrientation::CHAR_CENTER:
- eValue = XML_MIDDLE;
- break;
- case VertOrientation::TOP: // yes, its OK: TOP means that the baseline
- // hits the frame at its bottommost position
- case VertOrientation::LINE_BOTTOM:
- case VertOrientation::CHAR_BOTTOM:
- eValue = XML_BOTTOM;
- break;
- }
- if( eValue != XML_TOKEN_INVALID )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_VERTICAL_POS, eValue );
-
- eValue = XML_TOKEN_INVALID;
- switch( eImageVertOrient )
- {
- case VertOrientation::TOP:
- case VertOrientation::CENTER:
- case VertOrientation::BOTTOM:
- eValue = XML_BASELINE;
- break;
- case VertOrientation::LINE_TOP:
- case VertOrientation::LINE_CENTER:
- case VertOrientation::LINE_BOTTOM:
- eValue = XML_LINE;
- break;
- case VertOrientation::CHAR_TOP:
- case VertOrientation::CHAR_CENTER:
- case VertOrientation::CHAR_BOTTOM:
- eValue = XML_CHAR;
- break;
- }
- if( eValue != XML_TOKEN_INVALID )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_VERTICAL_REL, eValue );
-
- if( nImageWidth > 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nImageWidth );
- GetExport().AddAttribute( XML_NAMESPACE_FO, XML_WIDTH,
- sBuffer.makeStringAndClear() );
- }
-
- if( nImageHeight > 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nImageHeight );
- GetExport().AddAttribute( XML_NAMESPACE_FO, XML_HEIGHT,
- sBuffer.makeStringAndClear() );
- }
- }
-
- {
- SvXMLElementExport aElement( GetExport(), XML_NAMESPACE_STYLE,
- XML_LIST_LEVEL_PROPERTIES, sal_True, sal_True );
-
- /* Check, if properties for position-and-space-mode LABEL_ALIGNMENT
- are allowed to be exported. (#i89178#)
- */
- if ( ePosAndSpaceMode == PositionAndSpaceMode::LABEL_ALIGNMENT &&
- mbExportPositionAndSpaceModeLabelAlignment )
- {
- enum XMLTokenEnum eValue = XML_LISTTAB;
- if ( eLabelFollowedBy == LabelFollow::SPACE )
- {
- eValue = XML_SPACE;
- }
- else if ( eLabelFollowedBy == LabelFollow::NOTHING )
- {
- eValue = XML_NOTHING;
- }
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_LABEL_FOLLOWED_BY, eValue );
-
- if ( eLabelFollowedBy == LabelFollow::LISTTAB &&
- nListtabStopPosition > 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nListtabStopPosition );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_LIST_TAB_STOP_POSITION,
- sBuffer.makeStringAndClear() );
- }
-
- if ( nFirstLineIndent != 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nFirstLineIndent );
- GetExport().AddAttribute( XML_NAMESPACE_FO,
- XML_TEXT_INDENT,
- sBuffer.makeStringAndClear() );
- }
-
- if ( nIndentAt != 0 )
- {
- GetExport().GetMM100UnitConverter().convertMeasure( sBuffer, nIndentAt );
- GetExport().AddAttribute( XML_NAMESPACE_FO,
- XML_MARGIN_LEFT,
- sBuffer.makeStringAndClear() );
- }
-
- SvXMLElementExport aLabelAlignmentElement( GetExport(), XML_NAMESPACE_STYLE,
- XML_LIST_LEVEL_LABEL_ALIGNMENT,
- sal_True, sal_True );
- }
- }
-
- if( NumberingType::CHAR_SPECIAL == eType )
- {
- if( sBulletFontName.getLength() )
- {
- OUString sStyleName =
- GetExport().GetFontAutoStylePool()->Find(
- sBulletFontName, sBulletFontStyleName,
- eBulletFontFamily, eBulletFontPitch,
- eBulletFontEncoding );
-
- if( sStyleName.getLength() )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_NAME,
- sStyleName );
- }
- else
- {
- Any aAny;
- OUString sTemp;
-
- const SvXMLUnitConverter& rUnitConv =
- GetExport().GetMM100UnitConverter();
- XMLFontFamilyNamePropHdl aFamilyNameHdl;
- aAny <<= sBulletFontName;
- if( aFamilyNameHdl.exportXML( sTemp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_FO,
- XML_FONT_FAMILY, sTemp );
-
- if( sBulletFontStyleName.getLength() )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_STYLE_NAME,
- sBulletFontStyleName );
-
- XMLFontFamilyPropHdl aFamilyHdl;
- aAny <<= (sal_Int16)eBulletFontFamily;
- if( aFamilyHdl.exportXML( sTemp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_FAMILY_GENERIC,
- sTemp );
-
- XMLFontPitchPropHdl aPitchHdl;
- aAny <<= (sal_Int16)eBulletFontPitch;
- if( aPitchHdl.exportXML( sTemp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_PITCH, sTemp );
-
- XMLFontEncodingPropHdl aEncHdl;
- aAny <<= (sal_Int16)eBulletFontEncoding;
- if( aEncHdl.exportXML( sTemp, aAny, rUnitConv ) )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_FONT_CHARSET, sTemp );
- }
- }
- }
- if( NumberingType::BITMAP != eType )
- {
- // fo:color = "#..."
- if( bHasColor )
- {
- const Color aColor( nColor );
- if( aColor.GetColor() == 0xffffffff )
- {
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_USE_WINDOW_FONT_COLOR, XML_TRUE );
- }
- else
- {
- SvXMLUnitConverter::convertColor( sBuffer, aColor );
- GetExport().AddAttribute( XML_NAMESPACE_FO, XML_COLOR,
- sBuffer.makeStringAndClear() );
- }
- }
- // fo:height="...%"
- if( nBullRelSize )
- {
- GetExport().GetMM100UnitConverter().convertPercent( sTmp, nBullRelSize );
- GetExport().AddAttribute( XML_NAMESPACE_FO, XML_FONT_SIZE,
- sTmp.makeStringAndClear() );
- }
- }
- if( GetExport().GetAttrList().getLength() > 0 )
- {
- SvXMLElementExport aElement( GetExport(), XML_NAMESPACE_STYLE,
- XML_TEXT_PROPERTIES, sal_True, sal_True );
- }
- if( NumberingType::BITMAP == eType && sImageURL.getLength() )
- {
- // optional office:binary-data
- GetExport().AddEmbeddedGraphicObjectAsBase64( sImageURL );
- }
- }
-}
-
-
-uno::Reference< ::com::sun::star::container::XIndexReplace > SvxXMLNumRuleExport::GetUNONumRule() const
-{
- return uno::Reference< ::com::sun::star::container::XIndexReplace > ();
-}
-
-void SvxXMLNumRuleExport::AddListStyleAttributes()
-{
-}
-
-
-SvxXMLNumRuleExport::SvxXMLNumRuleExport( SvXMLExport& rExp ) :
- rExport( rExp ),
- sNumberingRules( RTL_CONSTASCII_USTRINGPARAM( "NumberingRules" ) ),
- sIsPhysical( RTL_CONSTASCII_USTRINGPARAM( "IsPhysical" ) ),
- sIsContinuousNumbering( RTL_CONSTASCII_USTRINGPARAM( "IsContinuousNumbering" ) ),
- // Let list style creation depend on Load/Save option "ODF format version" (#i89178#)
- mbExportPositionAndSpaceModeLabelAlignment( true )
-{
- switch ( GetExport().getDefaultVersion() )
- {
- case SvtSaveOptions::ODFVER_010:
- case SvtSaveOptions::ODFVER_011:
- {
- mbExportPositionAndSpaceModeLabelAlignment = false;
- }
- break;
- default: // ODFVER_UNKNOWN or ODFVER_012
- {
- mbExportPositionAndSpaceModeLabelAlignment = true;
- }
- }
-}
-
-SvxXMLNumRuleExport::~SvxXMLNumRuleExport()
-{
-}
-
-void SvxXMLNumRuleExport::exportNumberingRule(
- const OUString& rName,
- const Reference< XIndexReplace >& rNumRule )
-{
- Reference< XPropertySet > xPropSet( rNumRule, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo;
- if( xPropSet.is() )
- xPropSetInfo = xPropSet->getPropertySetInfo();
-
- GetExport().CheckAttrList();
-
- // style:name="..."
- if( rName.getLength() )
- {
- sal_Bool bEncoded = sal_False;
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NAME,
- GetExport().EncodeStyleName( rName, &bEncoded ) );
- if( bEncoded )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_DISPLAY_NAME,
- rName);
- }
-
- // text:consecutive-numbering="..."
- sal_Bool bContNumbering = sal_False;
- if( xPropSetInfo.is() &&
- xPropSetInfo->hasPropertyByName( sIsContinuousNumbering ) )
- {
- Any aAny( xPropSet->getPropertyValue( sIsContinuousNumbering ) );
- bContNumbering = *(sal_Bool *)aAny.getValue();
- }
- if( bContNumbering )
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_CONSECUTIVE_NUMBERING, XML_TRUE );
-
- // other application specific attributes
- AddListStyleAttributes();
-
- {
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, XML_LIST_STYLE ,
- sal_True, sal_True );
- exportLevelStyles( rNumRule );
- }
-}
-
-sal_Bool SvxXMLNumRuleExport::exportStyle( const Reference< XStyle >& rStyle )
-{
- Reference< XPropertySet > xPropSet( rStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo = xPropSet->getPropertySetInfo();
-
- Any aAny;
-
- // Don't export styles that aren't existing really. This may be the
- // case for StarOffice Writer's pool styles.
- if( xPropSetInfo->hasPropertyByName( sIsPhysical ) )
- {
- aAny = xPropSet->getPropertyValue( sIsPhysical );
- if( !*(sal_Bool *)aAny.getValue() )
- return sal_False;
- }
-
- aAny = xPropSet->getPropertyValue( sNumberingRules );
- Reference<XIndexReplace> xNumRule;
- aAny >>= xNumRule;
-
- OUString sName = rStyle->getName();
-
- exportNumberingRule( sName, xNumRule );
-
- return sal_True;
-}
-
-void SvxXMLNumRuleExport::exportOutline()
-{
- Reference< XChapterNumberingSupplier > xCNSupplier( GetExport().GetModel(),
- UNO_QUERY );
- DBG_ASSERT( xCNSupplier.is(), "no chapter numbering supplier" );
-
- if( xCNSupplier.is() )
- {
- Reference< XIndexReplace > xNumRule( xCNSupplier->getChapterNumberingRules() );
- DBG_ASSERT( xNumRule.is(), "no chapter numbering rules" );
-
- if( xNumRule.is() )
- {
- /* Outline style has property style:name since ODF 1.2
- Thus, export this property and adjust fix for issue #i69627# (#i90780#)
- */
- OUString sOutlineStyleName;
- {
- Reference<XPropertySet> xNumRulePropSet(
- xCNSupplier->getChapterNumberingRules(), UNO_QUERY );
- if (xNumRulePropSet.is())
- {
- const OUString sName( RTL_CONSTASCII_USTRINGPARAM("Name") );
- xNumRulePropSet->getPropertyValue( sName ) >>= sOutlineStyleName;
- }
- }
- const SvtSaveOptions::ODFDefaultVersion nODFVersion =
- GetExport().getDefaultVersion();
- if ( ( nODFVersion == SvtSaveOptions::ODFVER_010 ||
- nODFVersion == SvtSaveOptions::ODFVER_011 ) &&
- GetExport().writeOutlineStyleAsNormalListStyle() )
- {
- exportNumberingRule( sOutlineStyleName, xNumRule );
- }
- else
- {
- if ( nODFVersion != SvtSaveOptions::ODFVER_010 &&
- nODFVersion != SvtSaveOptions::ODFVER_011 )
- {
- // style:name="..."
- GetExport().CheckAttrList();
- if ( sOutlineStyleName.getLength() > 0 )
- {
- sal_Bool bEncoded = sal_False;
- GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NAME,
- GetExport().EncodeStyleName( sOutlineStyleName,
- &bEncoded ) );
- if( bEncoded )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_DISPLAY_NAME,
- sOutlineStyleName );
- }
- }
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT,
- XML_OUTLINE_STYLE, sal_True, sal_True );
- exportLevelStyles( xNumRule, sal_True );
- }
- }
- }
-}
-
-void SvxXMLNumRuleExport::exportStyles( sal_Bool bUsed,
- XMLTextListAutoStylePool *pPool,
- sal_Bool bExportChapterNumbering )
-{
- if( bExportChapterNumbering )
- exportOutline();
-
- Reference< XStyleFamiliesSupplier > xFamiliesSupp( GetExport().GetModel(), UNO_QUERY );
- DBG_ASSERT( xFamiliesSupp.is(), "No XStyleFamiliesSupplier from XModel for export!" );
- if( xFamiliesSupp.is() )
- {
- Reference< XNameAccess > xFamilies( xFamiliesSupp->getStyleFamilies() );
- DBG_ASSERT( xFamiliesSupp.is(), "getStyleFamilies() from XModel failed for export!" );
-
- if( xFamilies.is() )
- {
- const OUString aNumberStyleName( RTL_CONSTASCII_USTRINGPARAM( "NumberingStyles" ));
-
- Reference< XIndexAccess > xStyles;
- if( xFamilies->hasByName( aNumberStyleName ) )
- {
- xFamilies->getByName( aNumberStyleName ) >>= xStyles;
-
- DBG_ASSERT( xStyles.is(), "Style not found for export!" );
-
- if( xStyles.is() )
- {
- const sal_Int32 nStyles = xStyles->getCount();
-
- for( sal_Int32 i=0; i < nStyles; i++ )
- {
- Reference< XStyle > xStyle;
- xStyles->getByIndex( i ) >>= xStyle;
-
- if( !bUsed || xStyle->isInUse() )
- {
- exportStyle( xStyle );
- if( pPool )
- pPool->RegisterName( xStyle->getName() );
- }
- }
- }
- }
- }
- }
-}
-
-sal_Bool SvxXMLNumRuleExport::GetOutlineStyles( XMLStringVector& rStyleNames,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XModel > & rModel )
-{
- Reference< XChapterNumberingSupplier > xCNSupplier( rModel,
- UNO_QUERY );
- sal_Int32 nLevels = 0;
- Reference< XIndexReplace > xNumRule;
- if( xCNSupplier.is() )
- {
- xNumRule = xCNSupplier->getChapterNumberingRules();
- if( xNumRule.is() )
- nLevels = xNumRule->getCount();
- }
-
- rStyleNames.resize( nLevels );
- for( sal_Int32 i=0; i<nLevels; i++ )
- {
- uno::Any aEntry( xNumRule->getByIndex( i ) );
- uno::Sequence<beans::PropertyValue> aSeq;
- if( aEntry >>= aSeq )
- {
- const sal_Int32 nCount = aSeq.getLength();
- const beans::PropertyValue* pPropArray = aSeq.getConstArray();
- for( sal_Int32 j=0; j<nCount; j++ )
- {
- const beans::PropertyValue& rProp = pPropArray[j];
-
- if( rProp.Name.equalsAsciiL(
- XML_UNO_NAME_NRULE_HEADING_STYLE_NAME,
- sizeof(XML_UNO_NAME_NRULE_HEADING_STYLE_NAME)-1 ) )
- {
- rProp.Value >>= rStyleNames[i];
- break;
- }
- }
- }
- }
-
- return nLevels != 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlnumfe.cxx b/xmloff/source/style/xmlnumfe.cxx
deleted file mode 100644
index c1b890a232..0000000000
--- a/xmloff/source/style/xmlnumfe.cxx
+++ /dev/null
@@ -1,1809 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#define _SVSTDARR_ULONGS
-#define _ZFORLIST_DECLARE_TABLE
-
-#include <svl/svstdarr.hxx>
-#include <svl/zforlist.hxx>
-#include <svl/zformat.hxx>
-#include <svl/numuno.hxx>
-#include <i18npool/mslangid.hxx>
-#include <tools/debug.hxx>
-#include <rtl/math.hxx>
-#include <unotools/calendarwrapper.hxx>
-#include <unotools/charclass.hxx>
-#include <com/sun/star/lang/Locale.hpp>
-#include <rtl/ustrbuf.hxx>
-
-#include <com/sun/star/i18n/NativeNumberXmlAttributes.hpp>
-
-#include <xmloff/xmlnumfe.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/attrlist.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/families.hxx>
-#include <xmloff/xmlnumfi.hxx> // SvXMLNumFmtDefaults
-
-#define _SVSTDARR_USHORTS
-#include <svl/svstdarr.hxx>
-#include <svl/nfsymbol.hxx>
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmlexp.hxx>
-
-#include <set>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-using namespace ::svt;
-
-//-------------------------------------------------------------------------
-
-#define XMLNUM_MAX_PARTS 3
-
-//-------------------------------------------------------------------------
-
-struct LessuInt32
-{
- sal_Bool operator() (const sal_uInt32 rValue1, const sal_uInt32 rValue2) const
- {
- return rValue1 < rValue2;
- }
-};
-
-typedef std::set< sal_uInt32, LessuInt32 > SvXMLuInt32Set;
-
-class SvXMLNumUsedList_Impl
-{
- SvXMLuInt32Set aUsed;
- SvXMLuInt32Set aWasUsed;
- SvXMLuInt32Set::iterator aCurrentUsedPos;
- sal_uInt32 nUsedCount;
- sal_uInt32 nWasUsedCount;
-
-public:
- SvXMLNumUsedList_Impl();
- ~SvXMLNumUsedList_Impl();
-
- void SetUsed( sal_uInt32 nKey );
- sal_Bool IsUsed( sal_uInt32 nKey ) const;
- sal_Bool IsWasUsed( sal_uInt32 nKey ) const;
- void Export();
-
- sal_Bool GetFirstUsed(sal_uInt32& nKey);
- sal_Bool GetNextUsed(sal_uInt32& nKey);
-
- void GetWasUsed(uno::Sequence<sal_Int32>& rWasUsed);
- void SetWasUsed(const uno::Sequence<sal_Int32>& rWasUsed);
-};
-
-//-------------------------------------------------------------------------
-
-struct SvXMLEmbeddedTextEntry
-{
- sal_uInt16 nSourcePos; // position in NumberFormat (to skip later)
- sal_Int32 nFormatPos; // resulting position in embedded-text element
- rtl::OUString aText;
-
- SvXMLEmbeddedTextEntry( sal_uInt16 nSP, sal_Int32 nFP, const rtl::OUString& rT ) :
- nSourcePos(nSP), nFormatPos(nFP), aText(rT) {}
-};
-
-typedef SvXMLEmbeddedTextEntry* SvXMLEmbeddedTextEntryPtr;
-SV_DECL_PTRARR_DEL( SvXMLEmbeddedTextEntryArr, SvXMLEmbeddedTextEntryPtr, 4, 4 )
-
-//-------------------------------------------------------------------------
-
-SV_IMPL_PTRARR( SvXMLEmbeddedTextEntryArr, SvXMLEmbeddedTextEntryPtr );
-
-//-------------------------------------------------------------------------
-
-//
-//! SvXMLNumUsedList_Impl should be optimized!
-//
-
-SvXMLNumUsedList_Impl::SvXMLNumUsedList_Impl() :
- nUsedCount(0),
- nWasUsedCount(0)
-{
-}
-
-SvXMLNumUsedList_Impl::~SvXMLNumUsedList_Impl()
-{
-}
-
-void SvXMLNumUsedList_Impl::SetUsed( sal_uInt32 nKey )
-{
- if ( !IsWasUsed(nKey) )
- {
- std::pair<SvXMLuInt32Set::iterator, bool> aPair = aUsed.insert( nKey );
- if (aPair.second)
- nUsedCount++;
- }
-}
-
-sal_Bool SvXMLNumUsedList_Impl::IsUsed( sal_uInt32 nKey ) const
-{
- SvXMLuInt32Set::const_iterator aItr = aUsed.find(nKey);
- return (aItr != aUsed.end());
-}
-
-sal_Bool SvXMLNumUsedList_Impl::IsWasUsed( sal_uInt32 nKey ) const
-{
- SvXMLuInt32Set::const_iterator aItr = aWasUsed.find(nKey);
- return (aItr != aWasUsed.end());
-}
-
-void SvXMLNumUsedList_Impl::Export()
-{
- SvXMLuInt32Set::const_iterator aItr = aUsed.begin();
- while (aItr != aUsed.end())
- {
- std::pair<SvXMLuInt32Set::const_iterator, bool> aPair = aWasUsed.insert( *aItr );
- if (aPair.second)
- nWasUsedCount++;
- ++aItr;
- }
- aUsed.clear();
- nUsedCount = 0;
-}
-
-sal_Bool SvXMLNumUsedList_Impl::GetFirstUsed(sal_uInt32& nKey)
-{
- sal_Bool bRet(sal_False);
- aCurrentUsedPos = aUsed.begin();
- if(nUsedCount)
- {
- DBG_ASSERT(aCurrentUsedPos != aUsed.end(), "something went wrong");
- nKey = *aCurrentUsedPos;
- bRet = sal_True;
- }
- return bRet;
-}
-
-sal_Bool SvXMLNumUsedList_Impl::GetNextUsed(sal_uInt32& nKey)
-{
- sal_Bool bRet(sal_False);
- if (aCurrentUsedPos != aUsed.end())
- {
- ++aCurrentUsedPos;
- if (aCurrentUsedPos != aUsed.end())
- {
- nKey = *aCurrentUsedPos;
- bRet = sal_True;
- }
- }
- return bRet;
-}
-
-void SvXMLNumUsedList_Impl::GetWasUsed(uno::Sequence<sal_Int32>& rWasUsed)
-{
- rWasUsed.realloc(nWasUsedCount);
- sal_Int32* pWasUsed = rWasUsed.getArray();
- if (pWasUsed)
- {
- SvXMLuInt32Set::const_iterator aItr = aWasUsed.begin();
- while (aItr != aWasUsed.end())
- {
- *pWasUsed = *aItr;
- ++aItr;
- ++pWasUsed;
- }
- }
-}
-
-void SvXMLNumUsedList_Impl::SetWasUsed(const uno::Sequence<sal_Int32>& rWasUsed)
-{
- DBG_ASSERT(nWasUsedCount == 0, "WasUsed should be empty");
- sal_Int32 nCount(rWasUsed.getLength());
- const sal_Int32* pWasUsed = rWasUsed.getConstArray();
- for (sal_uInt16 i = 0; i < nCount; i++, pWasUsed++)
- {
- std::pair<SvXMLuInt32Set::const_iterator, bool> aPair = aWasUsed.insert( *pWasUsed );
- if (aPair.second)
- nWasUsedCount++;
- }
-}
-
-//-------------------------------------------------------------------------
-
-SvXMLNumFmtExport::SvXMLNumFmtExport(
- SvXMLExport& rExp,
- const uno::Reference< util::XNumberFormatsSupplier >& rSupp ) :
- rExport( rExp ),
- sPrefix( OUString(RTL_CONSTASCII_USTRINGPARAM("N")) ),
- pFormatter( NULL ),
- pCharClass( NULL ),
- pLocaleData( NULL )
-{
- // supplier must be SvNumberFormatsSupplierObj
- SvNumberFormatsSupplierObj* pObj =
- SvNumberFormatsSupplierObj::getImplementation( rSupp );
- if (pObj)
- pFormatter = pObj->GetNumberFormatter();
-
- if ( pFormatter )
- {
- pCharClass = new CharClass( pFormatter->GetServiceManager(),
- pFormatter->GetLocale() );
- pLocaleData = new LocaleDataWrapper( pFormatter->GetServiceManager(),
- pFormatter->GetLocale() );
- }
- else
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale( MsLangId::getSystemLanguage() ) );
-
- pCharClass = new CharClass( rExport.getServiceFactory(), aLocale );
- pLocaleData = new LocaleDataWrapper( rExport.getServiceFactory(), aLocale );
- }
-
- pUsedList = new SvXMLNumUsedList_Impl;
-}
-
-SvXMLNumFmtExport::SvXMLNumFmtExport(
- SvXMLExport& rExp,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::util::XNumberFormatsSupplier >& rSupp,
- const rtl::OUString& rPrefix ) :
- rExport( rExp ),
- sPrefix( rPrefix ),
- pFormatter( NULL ),
- pCharClass( NULL ),
- pLocaleData( NULL )
-{
- // supplier must be SvNumberFormatsSupplierObj
- SvNumberFormatsSupplierObj* pObj =
- SvNumberFormatsSupplierObj::getImplementation( rSupp );
- if (pObj)
- pFormatter = pObj->GetNumberFormatter();
-
- if ( pFormatter )
- {
- pCharClass = new CharClass( pFormatter->GetServiceManager(),
- pFormatter->GetLocale() );
- pLocaleData = new LocaleDataWrapper( pFormatter->GetServiceManager(),
- pFormatter->GetLocale() );
- }
- else
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale( MsLangId::getSystemLanguage() ) );
-
- pCharClass = new CharClass( rExport.getServiceFactory(), aLocale );
- pLocaleData = new LocaleDataWrapper( rExport.getServiceFactory(), aLocale );
- }
-
- pUsedList = new SvXMLNumUsedList_Impl;
-}
-
-SvXMLNumFmtExport::~SvXMLNumFmtExport()
-{
- delete pUsedList;
- delete pLocaleData;
- delete pCharClass;
-}
-
-//-------------------------------------------------------------------------
-
-//
-// helper methods
-//
-
-OUString lcl_CreateStyleName( sal_Int32 nKey, sal_Int32 nPart, sal_Bool bDefPart, const rtl::OUString& rPrefix )
-{
- OUStringBuffer aFmtName( 10L );
- aFmtName.append( rPrefix );
- aFmtName.append( nKey );
- if (!bDefPart)
- {
- aFmtName.append( (sal_Unicode)'P' );
- aFmtName.append( nPart );
- }
- return aFmtName.makeStringAndClear();
-}
-
-void SvXMLNumFmtExport::AddCalendarAttr_Impl( const OUString& rCalendar )
-{
- if ( rCalendar.getLength() )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_CALENDAR, rCalendar );
- }
-}
-
-void SvXMLNumFmtExport::AddTextualAttr_Impl( sal_Bool bText )
-{
- if ( bText ) // non-textual
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TEXTUAL, XML_TRUE );
- }
-}
-
-void SvXMLNumFmtExport::AddStyleAttr_Impl( sal_Bool bLong )
-{
- if ( bLong ) // short is default
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_STYLE, XML_LONG );
- }
-}
-
-void SvXMLNumFmtExport::AddLanguageAttr_Impl( sal_Int32 nLang )
-{
- if ( nLang != LANGUAGE_SYSTEM )
- {
- OUString aLangStr, aCountryStr;
- MsLangId::convertLanguageToIsoNames( (LanguageType)nLang, aLangStr, aCountryStr );
-
- if (aLangStr.getLength())
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_LANGUAGE, aLangStr );
- if (aCountryStr.getLength())
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_COUNTRY, aCountryStr );
- }
-}
-
-//-------------------------------------------------------------------------
-
-//
-// methods to write individual elements within a format
-//
-
-void SvXMLNumFmtExport::AddToTextElement_Impl( const OUString& rString )
-{
- // append to sTextContent, write element in FinishTextElement_Impl
- // to avoid several text elements following each other
-
- sTextContent.append( rString );
-}
-
-void SvXMLNumFmtExport::FinishTextElement_Impl()
-{
- if ( sTextContent.getLength() )
- {
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_TEXT,
- sal_True, sal_False );
- rExport.Characters( sTextContent.makeStringAndClear() );
- }
-}
-
-void SvXMLNumFmtExport::WriteColorElement_Impl( const Color& rColor )
-{
- FinishTextElement_Impl();
-
- OUStringBuffer aColStr( 7 );
- SvXMLUnitConverter::convertColor( aColStr, rColor );
- rExport.AddAttribute( XML_NAMESPACE_FO, XML_COLOR,
- aColStr.makeStringAndClear() );
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_STYLE, XML_TEXT_PROPERTIES,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteCurrencyElement_Impl( const OUString& rString,
- const OUString& rExt )
-{
- FinishTextElement_Impl();
-
- if ( rExt.getLength() )
- {
- sal_Int32 nLang = rExt.toInt32(16); // hex
- if ( nLang < 0 ) // extension string may contain "-" separator
- nLang = -nLang;
- AddLanguageAttr_Impl( nLang ); // adds to pAttrList
- }
-
- SvXMLElementExport aElem( rExport,
- XML_NAMESPACE_NUMBER, XML_CURRENCY_SYMBOL,
- sal_True, sal_False );
- rExport.Characters( rString );
-}
-
-void SvXMLNumFmtExport::WriteBooleanElement_Impl()
-{
- FinishTextElement_Impl();
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_BOOLEAN,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteTextContentElement_Impl()
-{
- FinishTextElement_Impl();
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_TEXT_CONTENT,
- sal_True, sal_False );
-}
-
-// date elements
-
-void SvXMLNumFmtExport::WriteDayElement_Impl( const OUString& rCalendar, sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_DAY,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteMonthElement_Impl( const OUString& rCalendar, sal_Bool bLong, sal_Bool bText )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
- AddTextualAttr_Impl( bText ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_MONTH,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteYearElement_Impl( const OUString& rCalendar, sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_YEAR,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteEraElement_Impl( const OUString& rCalendar, sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_ERA,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteDayOfWeekElement_Impl( const OUString& rCalendar, sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_DAY_OF_WEEK,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteWeekElement_Impl( const OUString& rCalendar )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_WEEK_OF_YEAR,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteQuarterElement_Impl( const OUString& rCalendar, sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddCalendarAttr_Impl( rCalendar ); // adds to pAttrList
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_QUARTER,
- sal_True, sal_False );
-}
-
-// time elements
-
-void SvXMLNumFmtExport::WriteHoursElement_Impl( sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_HOURS,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteMinutesElement_Impl( sal_Bool bLong )
-{
- FinishTextElement_Impl();
-
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_MINUTES,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteSecondsElement_Impl( sal_Bool bLong, sal_uInt16 nDecimals )
-{
- FinishTextElement_Impl();
-
- AddStyleAttr_Impl( bLong ); // adds to pAttrList
- if ( nDecimals > 0 )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES,
- OUString::valueOf( (sal_Int32) nDecimals ) );
- }
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_SECONDS,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteAMPMElement_Impl()
-{
- FinishTextElement_Impl();
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_AM_PM,
- sal_True, sal_False );
-}
-
-// numbers
-
-void SvXMLNumFmtExport::WriteNumberElement_Impl(
- sal_Int32 nDecimals, sal_Int32 nInteger,
- const OUString& rDashStr, sal_Bool bVarDecimals,
- sal_Bool bGrouping, sal_Int32 nTrailingThousands,
- const SvXMLEmbeddedTextEntryArr& rEmbeddedEntries )
-{
- FinishTextElement_Impl();
-
- // decimals
- if ( nDecimals >= 0 ) // negative = automatic
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES,
- OUString::valueOf( nDecimals ) );
- }
-
- // integer digits
- if ( nInteger >= 0 ) // negative = automatic
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS,
- OUString::valueOf( nInteger ) );
- }
-
- // decimal replacement (dashes) or variable decimals (#)
- if ( rDashStr.getLength() || bVarDecimals )
- {
- // variable decimals means an empty replacement string
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT,
- rDashStr );
- }
-
- // (automatic) grouping separator
- if ( bGrouping )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TRUE );
- }
-
- // display-factor if there are trailing thousands separators
- if ( nTrailingThousands )
- {
- // each separator character removes three digits
- double fFactor = ::rtl::math::pow10Exp( 1.0, 3 * nTrailingThousands );
-
- OUStringBuffer aFactStr;
- SvXMLUnitConverter::convertDouble( aFactStr, fFactor );
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, aFactStr.makeStringAndClear() );
- }
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_NUMBER,
- sal_True, sal_True );
-
- // number:embedded-text as child elements
-
- sal_uInt16 nEntryCount = rEmbeddedEntries.Count();
- for (sal_uInt16 nEntry=0; nEntry<nEntryCount; nEntry++)
- {
- SvXMLEmbeddedTextEntry* pObj = rEmbeddedEntries[nEntry];
-
- // position attribute
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_POSITION,
- OUString::valueOf( pObj->nFormatPos ) );
- SvXMLElementExport aChildElem( rExport, XML_NAMESPACE_NUMBER, XML_EMBEDDED_TEXT,
- sal_True, sal_False );
-
- // text as element content
- rtl::OUString aContent( pObj->aText );
- while ( nEntry+1 < nEntryCount && rEmbeddedEntries[nEntry+1]->nFormatPos == pObj->nFormatPos )
- {
- // The array can contain several elements for the same position in the number
- // (for example, literal text and space from underscores). They must be merged
- // into a single embedded-text element.
- aContent += rEmbeddedEntries[nEntry+1]->aText;
- ++nEntry;
- }
- rExport.Characters( aContent );
- }
-}
-
-void SvXMLNumFmtExport::WriteScientificElement_Impl(
- sal_Int32 nDecimals, sal_Int32 nInteger,
- sal_Bool bGrouping, sal_Int32 nExp )
-{
- FinishTextElement_Impl();
-
- // decimals
- if ( nDecimals >= 0 ) // negative = automatic
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES,
- OUString::valueOf( nDecimals ) );
- }
-
- // integer digits
- if ( nInteger >= 0 ) // negative = automatic
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS,
- OUString::valueOf( nInteger ) );
- }
-
- // (automatic) grouping separator
- if ( bGrouping )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TRUE );
- }
-
- // exponent digits
- if ( nExp >= 0 )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS,
- OUString::valueOf( nExp ) );
- }
-
- SvXMLElementExport aElem( rExport,
- XML_NAMESPACE_NUMBER, XML_SCIENTIFIC_NUMBER,
- sal_True, sal_False );
-}
-
-void SvXMLNumFmtExport::WriteFractionElement_Impl(
- sal_Int32 nInteger, sal_Bool bGrouping,
- sal_Int32 nNumerator, sal_Int32 nDenominator )
-{
- FinishTextElement_Impl();
-
- // integer digits
- if ( nInteger >= 0 ) // negative = default (no integer part)
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS,
- OUString::valueOf( nInteger ) );
- }
-
- // (automatic) grouping separator
- if ( bGrouping )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TRUE );
- }
-
- // numerator digits
- if ( nNumerator >= 0 )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS,
- OUString::valueOf( nNumerator ) );
- }
-
- // denominator digits
- if ( nDenominator >= 0 )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS,
- OUString::valueOf( nDenominator ) );
- }
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_FRACTION,
- sal_True, sal_False );
-}
-
-// mapping (condition)
-
-void SvXMLNumFmtExport::WriteMapElement_Impl( sal_Int32 nOp, double fLimit,
- sal_Int32 nKey, sal_Int32 nPart )
-{
- FinishTextElement_Impl();
-
- if ( nOp != NUMBERFORMAT_OP_NO )
- {
- // style namespace
-
- OUStringBuffer aCondStr( 20L );
- aCondStr.appendAscii( "value()" ); //! define constant
- switch ( nOp )
- {
- case NUMBERFORMAT_OP_EQ: aCondStr.append( (sal_Unicode) '=' ); break;
- case NUMBERFORMAT_OP_NE: aCondStr.appendAscii( "<>" ); break;
- case NUMBERFORMAT_OP_LT: aCondStr.append( (sal_Unicode) '<' ); break;
- case NUMBERFORMAT_OP_LE: aCondStr.appendAscii( "<=" ); break;
- case NUMBERFORMAT_OP_GT: aCondStr.append( (sal_Unicode) '>' ); break;
- case NUMBERFORMAT_OP_GE: aCondStr.appendAscii( ">=" ); break;
- default:
- OSL_FAIL("unknown operator");
- }
- ::rtl::math::doubleToUStringBuffer( aCondStr, fLimit,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- '.', true );
-
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_CONDITION,
- aCondStr.makeStringAndClear() );
-
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME,
- rExport.EncodeStyleName( lcl_CreateStyleName( nKey, nPart, sal_False,
- sPrefix ) ) );
-
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_STYLE, XML_MAP,
- sal_True, sal_False );
- }
-}
-
-//-------------------------------------------------------------------------
-// for old (automatic) currency formats: parse currency symbol from text
-
-xub_StrLen lcl_FindSymbol( const String& sUpperStr, const String& sCurString )
-{
- // search for currency symbol
- // Quoting as in ImpSvNumberformatScan::Symbol_Division
-
- xub_StrLen nCPos = 0;
- while (nCPos != STRING_NOTFOUND)
- {
- nCPos = sUpperStr.Search( sCurString, nCPos );
- if (nCPos != STRING_NOTFOUND)
- {
- // in Quotes?
- xub_StrLen nQ = SvNumberformat::GetQuoteEnd( sUpperStr, nCPos );
- if ( nQ == STRING_NOTFOUND )
- {
- // dm can be escaped as "dm or \d
- sal_Unicode c;
- if ( nCPos == 0 ||
- ((c = sUpperStr.GetChar(xub_StrLen(nCPos-1))) != '"'
- && c != '\\') )
- {
- return nCPos; // found
- }
- else
- nCPos++; // continue
- }
- else
- nCPos = nQ + 1; // continue after quote end
- }
- }
- return STRING_NOTFOUND; // not found
-}
-
-sal_Bool SvXMLNumFmtExport::WriteTextWithCurrency_Impl( const OUString& rString,
- const ::com::sun::star::lang::Locale& rLocale )
-{
- // returns sal_True if currency element was written
-
- sal_Bool bRet = sal_False;
-
- LanguageType nLang = MsLangId::convertLocaleToLanguage( rLocale );
- pFormatter->ChangeIntl( nLang );
- String sCurString, sDummy;
- pFormatter->GetCompatibilityCurrency( sCurString, sDummy );
-
- pCharClass->setLocale( rLocale );
- String sUpperStr = pCharClass->upper(rString);
- xub_StrLen nPos = lcl_FindSymbol( sUpperStr, sCurString );
- if ( nPos != STRING_NOTFOUND )
- {
- sal_Int32 nLength = rString.getLength();
- sal_Int32 nCurLen = sCurString.Len();
- sal_Int32 nCont = nPos + nCurLen;
-
- // text before currency symbol
- if ( nPos > 0 )
- AddToTextElement_Impl( rString.copy( 0, nPos ) );
-
- // currency symbol (empty string -> default)
- OUString sEmpty;
- WriteCurrencyElement_Impl( sEmpty, sEmpty );
- bRet = sal_True;
-
- // text after currency symbol
- if ( nCont < nLength )
- AddToTextElement_Impl( rString.copy( nCont, nLength-nCont ) );
- }
- else
- AddToTextElement_Impl( rString ); // simple text
-
- return bRet; // sal_True: currency element written
-}
-
-//-------------------------------------------------------------------------
-
-OUString lcl_GetDefaultCalendar( SvNumberFormatter* pFormatter, LanguageType nLang )
-{
- // get name of first non-gregorian calendar for the language
-
- OUString aCalendar;
- CalendarWrapper* pCalendar = pFormatter->GetCalendar();
- if (pCalendar)
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale( nLang ) );
-
- uno::Sequence<OUString> aCals = pCalendar->getAllCalendars( aLocale );
- sal_Int32 nCnt = aCals.getLength();
- sal_Bool bFound = sal_False;
- for ( sal_Int32 j=0; j < nCnt && !bFound; j++ )
- {
- if ( !aCals[j].equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("gregorian") ) )
- {
- aCalendar = aCals[j];
- bFound = sal_True;
- }
- }
- }
- return aCalendar;
-}
-
-//-------------------------------------------------------------------------
-
-sal_Bool lcl_IsInEmbedded( const SvXMLEmbeddedTextEntryArr& rEmbeddedEntries, sal_uInt16 nPos )
-{
- sal_uInt16 nCount = rEmbeddedEntries.Count();
- for (sal_uInt16 i=0; i<nCount; i++)
- if ( rEmbeddedEntries[i]->nSourcePos == nPos )
- return sal_True;
-
- return sal_False; // not found
-}
-
-sal_Bool lcl_IsDefaultDateFormat( const SvNumberformat& rFormat, sal_Bool bSystemDate, NfIndexTableOffset eBuiltIn )
-{
- // make an extra loop to collect date elements, to check if it is a default format
- // before adding the automatic-order attribute
-
- SvXMLDateElementAttributes eDateDOW = XML_DEA_NONE;
- SvXMLDateElementAttributes eDateDay = XML_DEA_NONE;
- SvXMLDateElementAttributes eDateMonth = XML_DEA_NONE;
- SvXMLDateElementAttributes eDateYear = XML_DEA_NONE;
- SvXMLDateElementAttributes eDateHours = XML_DEA_NONE;
- SvXMLDateElementAttributes eDateMins = XML_DEA_NONE;
- SvXMLDateElementAttributes eDateSecs = XML_DEA_NONE;
- sal_Bool bDateNoDefault = sal_False;
-
- sal_uInt16 nPos = 0;
- sal_Bool bEnd = sal_False;
- short nLastType = 0;
- while (!bEnd)
- {
- short nElemType = rFormat.GetNumForType( 0, nPos, sal_False );
- switch ( nElemType )
- {
- case 0:
- if ( nLastType == NF_SYMBOLTYPE_STRING )
- bDateNoDefault = sal_True; // text at the end -> no default date format
- bEnd = sal_True; // end of format reached
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_DATESEP:
- case NF_SYMBOLTYPE_TIMESEP:
- case NF_SYMBOLTYPE_TIME100SECSEP:
- // text is ignored, except at the end
- break;
- // same mapping as in SvXMLNumFormatContext::AddNfKeyword:
- case NF_KEY_NN: eDateDOW = XML_DEA_SHORT; break;
- case NF_KEY_NNN:
- case NF_KEY_NNNN: eDateDOW = XML_DEA_LONG; break;
- case NF_KEY_D: eDateDay = XML_DEA_SHORT; break;
- case NF_KEY_DD: eDateDay = XML_DEA_LONG; break;
- case NF_KEY_M: eDateMonth = XML_DEA_SHORT; break;
- case NF_KEY_MM: eDateMonth = XML_DEA_LONG; break;
- case NF_KEY_MMM: eDateMonth = XML_DEA_TEXTSHORT; break;
- case NF_KEY_MMMM: eDateMonth = XML_DEA_TEXTLONG; break;
- case NF_KEY_YY: eDateYear = XML_DEA_SHORT; break;
- case NF_KEY_YYYY: eDateYear = XML_DEA_LONG; break;
- case NF_KEY_H: eDateHours = XML_DEA_SHORT; break;
- case NF_KEY_HH: eDateHours = XML_DEA_LONG; break;
- case NF_KEY_MI: eDateMins = XML_DEA_SHORT; break;
- case NF_KEY_MMI: eDateMins = XML_DEA_LONG; break;
- case NF_KEY_S: eDateSecs = XML_DEA_SHORT; break;
- case NF_KEY_SS: eDateSecs = XML_DEA_LONG; break;
- case NF_KEY_AP:
- case NF_KEY_AMPM: break; // AM/PM may or may not be in date/time formats -> ignore by itself
- default:
- bDateNoDefault = sal_True; // any other element -> no default format
- }
- nLastType = nElemType;
- ++nPos;
- }
-
- if ( bDateNoDefault )
- return sal_False; // additional elements
- else
- {
- NfIndexTableOffset eFound = (NfIndexTableOffset) SvXMLNumFmtDefaults::GetDefaultDateFormat(
- eDateDOW, eDateDay, eDateMonth, eDateYear, eDateHours, eDateMins, eDateSecs, bSystemDate );
-
- return ( eFound == eBuiltIn );
- }
-}
-
-//
-// export one part (condition)
-//
-
-void SvXMLNumFmtExport::ExportPart_Impl( const SvNumberformat& rFormat, sal_uInt32 nKey,
- sal_uInt16 nPart, sal_Bool bDefPart )
-{
- //! for the default part, pass the coditions from the other parts!
-
- //
- // element name
- //
-
- NfIndexTableOffset eBuiltIn = pFormatter->GetIndexTableOffset( nKey );
-
- short nFmtType = 0;
- sal_Bool bThousand = sal_False;
- sal_uInt16 nPrecision = 0;
- sal_uInt16 nLeading = 0;
- rFormat.GetNumForInfo( nPart, nFmtType, bThousand, nPrecision, nLeading);
- nFmtType &= ~NUMBERFORMAT_DEFINED;
-
- // special treatment of builtin formats that aren't detected by normal parsing
- // (the same formats that get the type set in SvNumberFormatter::ImpGenerateFormats)
- if ( eBuiltIn == NF_NUMBER_STANDARD )
- nFmtType = NUMBERFORMAT_NUMBER;
- else if ( eBuiltIn == NF_BOOLEAN )
- nFmtType = NUMBERFORMAT_LOGICAL;
- else if ( eBuiltIn == NF_TEXT )
- nFmtType = NUMBERFORMAT_TEXT;
-
- // #101606# An empty subformat is a valid number-style resulting in an
- // empty display string for the condition of the subformat.
- if ( nFmtType == NUMBERFORMAT_UNDEFINED && rFormat.GetNumForType( nPart,
- 0, sal_False ) == 0 )
- nFmtType = 0;
-
- XMLTokenEnum eType = XML_TOKEN_INVALID;
- switch ( nFmtType )
- {
- // type is 0 if a format contains no recognized elements
- // (like text only) - this is handled as a number-style.
- case 0:
- case NUMBERFORMAT_NUMBER:
- case NUMBERFORMAT_SCIENTIFIC:
- case NUMBERFORMAT_FRACTION:
- eType = XML_NUMBER_STYLE;
- break;
- case NUMBERFORMAT_PERCENT:
- eType = XML_PERCENTAGE_STYLE;
- break;
- case NUMBERFORMAT_CURRENCY:
- eType = XML_CURRENCY_STYLE;
- break;
- case NUMBERFORMAT_DATE:
- case NUMBERFORMAT_DATETIME:
- eType = XML_DATE_STYLE;
- break;
- case NUMBERFORMAT_TIME:
- eType = XML_TIME_STYLE;
- break;
- case NUMBERFORMAT_TEXT:
- eType = XML_TEXT_STYLE;
- break;
- case NUMBERFORMAT_LOGICAL:
- eType = XML_BOOLEAN_STYLE;
- break;
- }
- DBG_ASSERT( eType != XML_TOKEN_INVALID, "unknown format type" );
-
- OUString sAttrValue;
- sal_Bool bUserDef = ( ( rFormat.GetType() & NUMBERFORMAT_DEFINED ) != 0 );
-
- //
- // common attributes for format
- //
-
- // format name (generated from key) - style namespace
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_NAME,
- lcl_CreateStyleName( nKey, nPart, bDefPart, sPrefix ) );
-
- // "volatile" attribute for styles used only in maps
- if ( !bDefPart )
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_VOLATILE, XML_TRUE );
-
- // language / country
- LanguageType nLang = rFormat.GetLanguage();
- AddLanguageAttr_Impl( nLang ); // adds to pAttrList
-
- // title (comment)
- // titles for builtin formats are not written
- sAttrValue = rFormat.GetComment();
- if ( sAttrValue.getLength() && bUserDef && bDefPart )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TITLE, sAttrValue );
- }
-
- // automatic ordering for currency and date formats
- // only used for some built-in formats
- sal_Bool bAutoOrder = ( eBuiltIn == NF_CURRENCY_1000INT || eBuiltIn == NF_CURRENCY_1000DEC2 ||
- eBuiltIn == NF_CURRENCY_1000INT_RED || eBuiltIn == NF_CURRENCY_1000DEC2_RED ||
- eBuiltIn == NF_CURRENCY_1000DEC2_DASHED ||
- eBuiltIn == NF_DATE_SYSTEM_SHORT || eBuiltIn == NF_DATE_SYSTEM_LONG ||
- eBuiltIn == NF_DATE_SYS_MMYY || eBuiltIn == NF_DATE_SYS_DDMMM ||
- eBuiltIn == NF_DATE_SYS_DDMMYYYY || eBuiltIn == NF_DATE_SYS_DDMMYY ||
- eBuiltIn == NF_DATE_SYS_DMMMYY || eBuiltIn == NF_DATE_SYS_DMMMYYYY ||
- eBuiltIn == NF_DATE_SYS_DMMMMYYYY || eBuiltIn == NF_DATE_SYS_NNDMMMYY ||
- eBuiltIn == NF_DATE_SYS_NNDMMMMYYYY || eBuiltIn == NF_DATE_SYS_NNNNDMMMMYYYY ||
- eBuiltIn == NF_DATETIME_SYSTEM_SHORT_HHMM || eBuiltIn == NF_DATETIME_SYS_DDMMYYYY_HHMMSS );
-
- // format source (for date and time formats)
- // only used for some built-in formats
- sal_Bool bSystemDate = ( eBuiltIn == NF_DATE_SYSTEM_SHORT ||
- eBuiltIn == NF_DATE_SYSTEM_LONG ||
- eBuiltIn == NF_DATETIME_SYSTEM_SHORT_HHMM );
- sal_Bool bLongSysDate = ( eBuiltIn == NF_DATE_SYSTEM_LONG );
-
- // check if the format definition matches the key
- if ( bAutoOrder && ( nFmtType == NUMBERFORMAT_DATE || nFmtType == NUMBERFORMAT_DATETIME ) &&
- !lcl_IsDefaultDateFormat( rFormat, bSystemDate, eBuiltIn ) )
- {
- bAutoOrder = bSystemDate = bLongSysDate = sal_False; // don't write automatic-order attribute then
- }
-
- if ( bAutoOrder &&
- ( nFmtType == NUMBERFORMAT_CURRENCY || nFmtType == NUMBERFORMAT_DATE || nFmtType == NUMBERFORMAT_DATETIME ) )
- {
- // #85109# format type must be checked to avoid dtd errors if
- // locale data contains other format types at the built-in positions
-
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_AUTOMATIC_ORDER,
- XML_TRUE );
- }
-
- if ( bSystemDate && bAutoOrder &&
- ( nFmtType == NUMBERFORMAT_DATE || nFmtType == NUMBERFORMAT_DATETIME ) )
- {
- // #85109# format type must be checked to avoid dtd errors if
- // locale data contains other format types at the built-in positions
-
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_FORMAT_SOURCE,
- XML_LANGUAGE );
- }
-
- // overflow for time formats as in [hh]:mm
- // controlled by bThousand from number format info
- // default for truncate-on-overflow is true
- if ( nFmtType == NUMBERFORMAT_TIME && bThousand )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TRUNCATE_ON_OVERFLOW,
- XML_FALSE );
- }
-
- //
- // Native number transliteration
- //
- ::com::sun::star::i18n::NativeNumberXmlAttributes aAttr;
- rFormat.GetNatNumXml( aAttr, nPart );
- if ( aAttr.Format.getLength() )
- {
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_FORMAT,
- aAttr.Format );
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_LANGUAGE,
- aAttr.Locale.Language );
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_COUNTRY,
- aAttr.Locale.Country );
- rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_STYLE,
- aAttr.Style );
- }
-
- //
- // The element
- //
- SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, eType,
- sal_True, sal_True );
-
- //
- // color (properties element)
- //
-
- const Color* pCol = rFormat.GetColor( nPart );
- if (pCol)
- WriteColorElement_Impl(*pCol);
-
-
- // detect if there is "real" content, excluding color and maps
- //! move to implementation of Write... methods?
- sal_Bool bAnyContent = sal_False;
-
- //
- // format elements
- //
-
- SvXMLEmbeddedTextEntryArr aEmbeddedEntries(0);
- if ( eBuiltIn == NF_NUMBER_STANDARD )
- {
- // default number format contains just one number element
- WriteNumberElement_Impl( -1, 1, OUString(), sal_False, sal_False, 0, aEmbeddedEntries );
- bAnyContent = sal_True;
- }
- else if ( eBuiltIn == NF_BOOLEAN )
- {
- // boolean format contains just one boolean element
- WriteBooleanElement_Impl();
- bAnyContent = sal_True;
- }
- else
- {
- // first loop to collect attributes
-
- sal_Bool bDecDashes = sal_False;
- sal_Bool bVarDecimals = sal_False;
- sal_Bool bExpFound = sal_False;
- sal_Bool bCurrFound = sal_False;
- sal_Bool bInInteger = sal_True;
- sal_Int32 nExpDigits = 0;
- sal_Int32 nIntegerSymbols = 0; // for embedded-text, including "#"
- sal_Int32 nTrailingThousands = 0; // thousands-separators after all digits
- OUString sCurrExt;
- OUString aCalendar;
- sal_uInt16 nPos = 0;
- sal_Bool bEnd = sal_False;
- while (!bEnd)
- {
- short nElemType = rFormat.GetNumForType( nPart, nPos, sal_False );
- const XubString* pElemStr = rFormat.GetNumForString( nPart, nPos, sal_False );
-
- switch ( nElemType )
- {
- case 0:
- bEnd = sal_True; // end of format reached
- break;
- case NF_SYMBOLTYPE_DIGIT:
- if ( bExpFound && pElemStr )
- nExpDigits += pElemStr->Len();
- else if ( !bDecDashes && pElemStr && pElemStr->GetChar(0) == '-' )
- bDecDashes = sal_True;
- else if ( !bVarDecimals && !bInInteger && pElemStr && pElemStr->GetChar(0) == '#' )
- {
- // If the decimal digits string starts with a '#', variable
- // decimals is assumed (for 0.###, but not 0.0##).
- bVarDecimals = sal_True;
- }
- if ( bInInteger && pElemStr )
- nIntegerSymbols += pElemStr->Len();
- nTrailingThousands = 0;
- break;
- case NF_SYMBOLTYPE_DECSEP:
- bInInteger = sal_False;
- break;
- case NF_SYMBOLTYPE_THSEP:
- if (pElemStr)
- nTrailingThousands += pElemStr->Len(); // is reset to 0 if digits follow
- break;
- case NF_SYMBOLTYPE_EXP:
- bExpFound = sal_True; // following digits are exponent digits
- bInInteger = sal_False;
- break;
- case NF_SYMBOLTYPE_CURRENCY:
- bCurrFound = sal_True;
- break;
- case NF_SYMBOLTYPE_CURREXT:
- if (pElemStr)
- sCurrExt = *pElemStr;
- break;
-
- // E, EE, R, RR: select non-gregorian calendar
- // AAA, AAAA: calendar is switched at the position of the element
- case NF_KEY_EC:
- case NF_KEY_EEC:
- case NF_KEY_R:
- case NF_KEY_RR:
- if (!aCalendar.getLength())
- aCalendar = lcl_GetDefaultCalendar( pFormatter, nLang );
- break;
- }
- ++nPos;
- }
-
- // collect strings for embedded-text (must be known before number element is written)
-
- sal_Bool bAllowEmbedded = ( nFmtType == 0 || nFmtType == NUMBERFORMAT_NUMBER ||
- nFmtType == NUMBERFORMAT_CURRENCY ||
- nFmtType == NUMBERFORMAT_PERCENT );
- if ( bAllowEmbedded )
- {
- sal_Int32 nDigitsPassed = 0;
- nPos = 0;
- bEnd = sal_False;
- while (!bEnd)
- {
- short nElemType = rFormat.GetNumForType( nPart, nPos, sal_False );
- const XubString* pElemStr = rFormat.GetNumForString( nPart, nPos, sal_False );
-
- switch ( nElemType )
- {
- case 0:
- bEnd = sal_True; // end of format reached
- break;
- case NF_SYMBOLTYPE_DIGIT:
- if ( pElemStr )
- nDigitsPassed += pElemStr->Len();
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_BLANK:
- case NF_SYMBOLTYPE_PERCENT:
- if ( nDigitsPassed > 0 && nDigitsPassed < nIntegerSymbols && pElemStr )
- {
- // text (literal or underscore) within the integer part of a number:number element
-
- String aEmbeddedStr;
- if ( nElemType == NF_SYMBOLTYPE_STRING || nElemType == NF_SYMBOLTYPE_PERCENT )
- aEmbeddedStr = *pElemStr;
- else
- SvNumberformat::InsertBlanks( aEmbeddedStr, 0, pElemStr->GetChar(1) );
-
- sal_Int32 nEmbedPos = nIntegerSymbols - nDigitsPassed;
-
- SvXMLEmbeddedTextEntry* pObj = new SvXMLEmbeddedTextEntry( nPos, nEmbedPos, aEmbeddedStr );
- aEmbeddedEntries.Insert( pObj, aEmbeddedEntries.Count() );
- }
- break;
- }
- ++nPos;
- }
- }
-
- // final loop to write elements
-
- sal_Bool bNumWritten = sal_False;
- sal_Bool bCurrencyWritten = sal_False;
- short nPrevType = 0;
- nPos = 0;
- bEnd = sal_False;
- while (!bEnd)
- {
- short nElemType = rFormat.GetNumForType( nPart, nPos, sal_False );
- const XubString* pElemStr = rFormat.GetNumForString( nPart, nPos, sal_False );
-
- switch ( nElemType )
- {
- case 0:
- bEnd = sal_True; // end of format reached
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_DATESEP:
- case NF_SYMBOLTYPE_TIMESEP:
- case NF_SYMBOLTYPE_TIME100SECSEP:
- case NF_SYMBOLTYPE_PERCENT:
- if (pElemStr)
- {
- if ( ( nPrevType == NF_KEY_S || nPrevType == NF_KEY_SS ) &&
- ( nElemType == NF_SYMBOLTYPE_TIME100SECSEP ) &&
- nPrecision > 0 )
- {
- // decimal separator after seconds is implied by
- // "decimal-places" attribute and must not be written
- // as text element
- //! difference between '.' and ',' is lost here
- }
- else if ( lcl_IsInEmbedded( aEmbeddedEntries, nPos ) )
- {
- // text is written as embedded-text child of the number,
- // don't create a text element
- }
- else if ( nFmtType == NUMBERFORMAT_CURRENCY && !bCurrFound && !bCurrencyWritten )
- {
- // automatic currency symbol is implemented as part of
- // normal text -> search for the symbol
- bCurrencyWritten = WriteTextWithCurrency_Impl( *pElemStr,
- MsLangId::convertLanguageToLocale( nLang ) );
- bAnyContent = sal_True;
- }
- else
- AddToTextElement_Impl( *pElemStr );
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- if ( pElemStr && !lcl_IsInEmbedded( aEmbeddedEntries, nPos ) )
- {
- // turn "_x" into the number of spaces used for x in InsertBlanks in the NumberFormat
- // (#i20396# the spaces may also be in embedded-text elements)
-
- String aBlanks;
- SvNumberformat::InsertBlanks( aBlanks, 0, pElemStr->GetChar(1) );
- AddToTextElement_Impl( aBlanks );
- }
- break;
- case NF_KEY_GENERAL :
- WriteNumberElement_Impl( -1, 1, OUString(), sal_False, sal_False, 0, aEmbeddedEntries );
- break;
- case NF_KEY_CCC:
- if (pElemStr)
- {
- if ( bCurrencyWritten )
- AddToTextElement_Impl( *pElemStr ); // never more than one currency element
- else
- {
- //! must be different from short automatic format
- //! but should still be empty (meaning automatic)
- // pElemStr is "CCC"
-
- WriteCurrencyElement_Impl( *pElemStr, OUString() );
- bAnyContent = sal_True;
- bCurrencyWritten = sal_True;
- }
- }
- break;
- case NF_SYMBOLTYPE_CURRENCY:
- if (pElemStr)
- {
- if ( bCurrencyWritten )
- AddToTextElement_Impl( *pElemStr ); // never more than one currency element
- else
- {
- WriteCurrencyElement_Impl( *pElemStr, sCurrExt );
- bAnyContent = sal_True;
- bCurrencyWritten = sal_True;
- }
- }
- break;
- case NF_SYMBOLTYPE_DIGIT:
- if (!bNumWritten) // write number part
- {
- switch ( nFmtType )
- {
- // for type 0 (not recognized as a special type),
- // write a "normal" number
- case 0:
- case NUMBERFORMAT_NUMBER:
- case NUMBERFORMAT_CURRENCY:
- case NUMBERFORMAT_PERCENT:
- {
- // decimals
- // only some built-in formats have automatic decimals
- sal_Int32 nDecimals = nPrecision; // from GetFormatSpecialInfo
- if ( eBuiltIn == NF_NUMBER_STANDARD ||
- eBuiltIn == NF_CURRENCY_1000DEC2 ||
- eBuiltIn == NF_CURRENCY_1000DEC2_RED ||
- eBuiltIn == NF_CURRENCY_1000DEC2_CCC ||
- eBuiltIn == NF_CURRENCY_1000DEC2_DASHED )
- nDecimals = -1;
-
- // integer digits
- // only one built-in format has automatic integer digits
- sal_Int32 nInteger = nLeading;
- if ( eBuiltIn == NF_NUMBER_SYSTEM )
- nInteger = -1;
-
- // string for decimal replacement
- // has to be taken from nPrecision
- // (positive number even for automatic decimals)
- String sDashStr;
- if ( bDecDashes && nPrecision > 0 )
- sDashStr.Fill( nPrecision, '-' );
-
- WriteNumberElement_Impl( nDecimals, nInteger, sDashStr, bVarDecimals,
- bThousand, nTrailingThousands, aEmbeddedEntries );
- bAnyContent = sal_True;
- }
- break;
- case NUMBERFORMAT_SCIENTIFIC:
- // #i43959# for scientific numbers, count all integer symbols ("0" and "#")
- // as integer digits: use nIntegerSymbols instead of nLeading
- // (use of '#' to select multiples in exponent might be added later)
- WriteScientificElement_Impl( nPrecision, nIntegerSymbols, bThousand, nExpDigits );
- bAnyContent = sal_True;
- break;
- case NUMBERFORMAT_FRACTION:
- {
- sal_Int32 nInteger = nLeading;
- if ( pElemStr && pElemStr->GetChar(0) == '?' )
- {
- // If the first digit character is a question mark,
- // the fraction doesn't have an integer part, and no
- // min-integer-digits attribute must be written.
- nInteger = -1;
- }
- WriteFractionElement_Impl( nInteger, bThousand, nPrecision, nPrecision );
- bAnyContent = sal_True;
- }
- break;
- }
-
- bNumWritten = sal_True;
- }
- break;
- case NF_SYMBOLTYPE_DECSEP:
- if ( pElemStr && nPrecision == 0 )
- {
- // A decimal separator after the number, without following decimal digits,
- // isn't modelled as part of the number element, so it's written as text
- // (the distinction between a quoted and non-quoted, locale-dependent
- // character is lost here).
-
- AddToTextElement_Impl( *pElemStr );
- }
- break;
- case NF_SYMBOLTYPE_DEL:
- if ( pElemStr && *pElemStr == XubString('@') )
- {
- WriteTextContentElement_Impl();
- bAnyContent = sal_True;
- }
- break;
-
- case NF_SYMBOLTYPE_CALENDAR:
- if ( pElemStr )
- aCalendar = *pElemStr;
- break;
-
- // date elements:
-
- case NF_KEY_D:
- case NF_KEY_DD:
- {
- sal_Bool bLong = ( nElemType == NF_KEY_DD );
- WriteDayElement_Impl( aCalendar, ( bSystemDate ? bLongSysDate : bLong ) );
- bAnyContent = sal_True;
- }
- break;
- case NF_KEY_DDD:
- case NF_KEY_DDDD:
- case NF_KEY_NN:
- case NF_KEY_NNN:
- case NF_KEY_NNNN:
- case NF_KEY_AAA:
- case NF_KEY_AAAA:
- {
- OUString aCalAttr = aCalendar;
- if ( nElemType == NF_KEY_AAA || nElemType == NF_KEY_AAAA )
- {
- // calendar attribute for AAA and AAAA is switched only for this element
- if (!aCalAttr.getLength())
- aCalAttr = lcl_GetDefaultCalendar( pFormatter, nLang );
- }
-
- sal_Bool bLong = ( nElemType == NF_KEY_NNN || nElemType == NF_KEY_NNNN ||
- nElemType == NF_KEY_DDDD || nElemType == NF_KEY_AAAA );
- WriteDayOfWeekElement_Impl( aCalAttr, ( bSystemDate ? bLongSysDate : bLong ) );
- bAnyContent = sal_True;
- if ( nElemType == NF_KEY_NNNN )
- {
- // write additional text element for separator
- pLocaleData->setLocale( MsLangId::convertLanguageToLocale( nLang ) );
- AddToTextElement_Impl( pLocaleData->getLongDateDayOfWeekSep() );
- }
- }
- break;
- case NF_KEY_M:
- case NF_KEY_MM:
- case NF_KEY_MMM:
- case NF_KEY_MMMM:
- case NF_KEY_MMMMM: //! first letter of month name, no attribute available
- {
- sal_Bool bLong = ( nElemType == NF_KEY_MM || nElemType == NF_KEY_MMMM );
- sal_Bool bText = ( nElemType == NF_KEY_MMM || nElemType == NF_KEY_MMMM ||
- nElemType == NF_KEY_MMMMM );
- WriteMonthElement_Impl( aCalendar, ( bSystemDate ? bLongSysDate : bLong ), bText );
- bAnyContent = sal_True;
- }
- break;
- case NF_KEY_YY:
- case NF_KEY_YYYY:
- case NF_KEY_EC:
- case NF_KEY_EEC:
- case NF_KEY_R: //! R acts as EE, no attribute available
- {
- //! distinguish EE and R
- // calendar attribute for E and EE and R is set in first loop
- sal_Bool bLong = ( nElemType == NF_KEY_YYYY || nElemType == NF_KEY_EEC ||
- nElemType == NF_KEY_R );
- WriteYearElement_Impl( aCalendar, ( bSystemDate ? bLongSysDate : bLong ) );
- bAnyContent = sal_True;
- }
- break;
- case NF_KEY_G:
- case NF_KEY_GG:
- case NF_KEY_GGG:
- case NF_KEY_RR: //! RR acts as GGGEE, no attribute available
- {
- //! distinguish GG and GGG and RR
- sal_Bool bLong = ( nElemType == NF_KEY_GGG || nElemType == NF_KEY_RR );
- WriteEraElement_Impl( aCalendar, ( bSystemDate ? bLongSysDate : bLong ) );
- bAnyContent = sal_True;
- if ( nElemType == NF_KEY_RR )
- {
- // calendar attribute for RR is set in first loop
- WriteYearElement_Impl( aCalendar, ( bSystemDate ? bLongSysDate : sal_True ) );
- }
- }
- break;
- case NF_KEY_Q:
- case NF_KEY_QQ:
- {
- sal_Bool bLong = ( nElemType == NF_KEY_QQ );
- WriteQuarterElement_Impl( aCalendar, ( bSystemDate ? bLongSysDate : bLong ) );
- bAnyContent = sal_True;
- }
- break;
- case NF_KEY_WW:
- WriteWeekElement_Impl( aCalendar );
- bAnyContent = sal_True;
- break;
-
- // time elements (bSystemDate is not used):
-
- case NF_KEY_H:
- case NF_KEY_HH:
- WriteHoursElement_Impl( nElemType == NF_KEY_HH );
- bAnyContent = sal_True;
- break;
- case NF_KEY_MI:
- case NF_KEY_MMI:
- WriteMinutesElement_Impl( nElemType == NF_KEY_MMI );
- bAnyContent = sal_True;
- break;
- case NF_KEY_S:
- case NF_KEY_SS:
- WriteSecondsElement_Impl( ( nElemType == NF_KEY_SS ), nPrecision );
- bAnyContent = sal_True;
- break;
- case NF_KEY_AMPM:
- case NF_KEY_AP:
- WriteAMPMElement_Impl(); // short/long?
- bAnyContent = sal_True;
- break;
- }
- nPrevType = nElemType;
- ++nPos;
- }
- }
-
- if ( sTextContent.getLength() )
- bAnyContent = sal_True; // element written in FinishTextElement_Impl
-
- FinishTextElement_Impl(); // final text element - before maps
-
- if ( !bAnyContent )
- {
- // for an empty format, write an empty text element
- SvXMLElementExport aTElem( rExport, XML_NAMESPACE_NUMBER, XML_TEXT,
- sal_True, sal_False );
- }
-
- //
- // mapping (conditions) must be last elements
- //
-
- if (bDefPart)
- {
- SvNumberformatLimitOps eOp1, eOp2;
- double fLimit1, fLimit2;
- rFormat.GetConditions( eOp1, fLimit1, eOp2, fLimit2 );
-
- WriteMapElement_Impl( eOp1, fLimit1, nKey, 0 );
- WriteMapElement_Impl( eOp2, fLimit2, nKey, 1 );
-
- if ( rFormat.HasTextFormat() )
- {
- // 4th part is for text -> make an "all other numbers" condition for the 3rd part
- // by reversing the 2nd condition
-
- SvNumberformatLimitOps eOp3 = NUMBERFORMAT_OP_NO;
- double fLimit3 = fLimit2;
- switch ( eOp2 )
- {
- case NUMBERFORMAT_OP_EQ: eOp3 = NUMBERFORMAT_OP_NE; break;
- case NUMBERFORMAT_OP_NE: eOp3 = NUMBERFORMAT_OP_EQ; break;
- case NUMBERFORMAT_OP_LT: eOp3 = NUMBERFORMAT_OP_GE; break;
- case NUMBERFORMAT_OP_LE: eOp3 = NUMBERFORMAT_OP_GT; break;
- case NUMBERFORMAT_OP_GT: eOp3 = NUMBERFORMAT_OP_LE; break;
- case NUMBERFORMAT_OP_GE: eOp3 = NUMBERFORMAT_OP_LT; break;
- default:
- break;
- }
-
- if ( fLimit1 == fLimit2 &&
- ( ( eOp1 == NUMBERFORMAT_OP_LT && eOp2 == NUMBERFORMAT_OP_GT ) ||
- ( eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT ) ) )
- {
- // For <x and >x, add =x as last condition
- // (just for readability, <=x would be valid, too)
-
- eOp3 = NUMBERFORMAT_OP_EQ;
- }
-
- WriteMapElement_Impl( eOp3, fLimit3, nKey, 2 );
- }
- }
-}
-
-//-------------------------------------------------------------------------
-
-//
-// export one format
-//
-
-void SvXMLNumFmtExport::ExportFormat_Impl( const SvNumberformat& rFormat, sal_uInt32 nKey )
-{
- sal_uInt16 nUsedParts = 0;
- sal_uInt16 nPart;
- for (nPart=0; nPart<XMLNUM_MAX_PARTS; nPart++)
- if (rFormat.GetNumForType( nPart, 0, sal_False ) != 0)
- nUsedParts = nPart+1;
-
- SvNumberformatLimitOps eOp1, eOp2;
- double fLimit1, fLimit2;
- rFormat.GetConditions( eOp1, fLimit1, eOp2, fLimit2 );
-
- // if conditions are set, even empty formats must be written
-
- if ( eOp1 != NUMBERFORMAT_OP_NO && nUsedParts < 2 )
- nUsedParts = 2;
- if ( eOp2 != NUMBERFORMAT_OP_NO && nUsedParts < 3 )
- nUsedParts = 3;
- if ( rFormat.HasTextFormat() && nUsedParts < 4 )
- nUsedParts = 4;
-
- for (nPart=0; nPart<nUsedParts; nPart++)
- {
- sal_Bool bDefault = ( nPart+1 == nUsedParts ); // last = default
- ExportPart_Impl( rFormat, nKey, nPart, bDefault );
- }
-}
-
-//-------------------------------------------------------------------------
-
-//
-// export method called by application
-//
-
-void SvXMLNumFmtExport::Export( sal_Bool bIsAutoStyle )
-{
- if ( !pFormatter )
- return; // no formatter -> no entries
-
- sal_uInt32 nKey;
- const SvNumberformat* pFormat = NULL;
- sal_Bool bNext(pUsedList->GetFirstUsed(nKey));
- while(bNext)
- {
- pFormat = pFormatter->GetEntry(nKey);
- if(pFormat)
- ExportFormat_Impl( *pFormat, nKey );
- bNext = pUsedList->GetNextUsed(nKey);
- }
- if (!bIsAutoStyle)
- {
- SvUShorts aLanguages;
- pFormatter->GetUsedLanguages( aLanguages );
- sal_uInt16 nLangCount = aLanguages.Count();
- for (sal_uInt16 nLangPos=0; nLangPos<nLangCount; nLangPos++)
- {
- LanguageType nLang = aLanguages[nLangPos];
-
- sal_uInt32 nDefaultIndex = 0;
- SvNumberFormatTable& rTable = pFormatter->GetEntryTable(
- NUMBERFORMAT_DEFINED, nDefaultIndex, nLang );
- pFormat = rTable.First();
- while (pFormat)
- {
- nKey = rTable.GetCurKey();
- if (!pUsedList->IsUsed(nKey))
- {
- DBG_ASSERT((pFormat->GetType() & NUMBERFORMAT_DEFINED) != 0, "a not user defined numberformat found");
- // user-defined and used formats are exported
- ExportFormat_Impl( *pFormat, nKey );
- // if it is a user-defined Format it will be added else nothing will hapen
- pUsedList->SetUsed(nKey);
- }
-
- pFormat = rTable.Next();
- }
- }
- }
- pUsedList->Export();
-}
-
-OUString SvXMLNumFmtExport::GetStyleName( sal_uInt32 nKey )
-{
- if(pUsedList->IsUsed(nKey) || pUsedList->IsWasUsed(nKey))
- return lcl_CreateStyleName( nKey, 0, sal_True, sPrefix );
- else
- {
- OSL_FAIL("There is no written Data-Style");
- return rtl::OUString();
- }
-}
-
-void SvXMLNumFmtExport::SetUsed( sal_uInt32 nKey )
-{
- DBG_ASSERT( pFormatter != NULL, "missing formatter" );
- if( !pFormatter )
- return;
-
- if (pFormatter->GetEntry(nKey))
- pUsedList->SetUsed( nKey );
- else {
- OSL_FAIL("no existing Numberformat found with this key");
- }
-}
-
-void SvXMLNumFmtExport::GetWasUsed(uno::Sequence<sal_Int32>& rWasUsed)
-{
- if (pUsedList)
- pUsedList->GetWasUsed(rWasUsed);
-}
-
-void SvXMLNumFmtExport::SetWasUsed(const uno::Sequence<sal_Int32>& rWasUsed)
-{
- if (pUsedList)
- pUsedList->SetWasUsed(rWasUsed);
-}
-
-
-
-const SvNumberformat* lcl_GetFormat( SvNumberFormatter* pFormatter,
- sal_uInt32 nKey )
-{
- return ( pFormatter != NULL ) ? pFormatter->GetEntry( nKey ) : NULL;
-}
-
-sal_uInt32 SvXMLNumFmtExport::ForceSystemLanguage( sal_uInt32 nKey )
-{
- sal_uInt32 nRet = nKey;
-
- const SvNumberformat* pFormat = lcl_GetFormat( pFormatter, nKey );
- if( pFormat != NULL )
- {
- DBG_ASSERT( pFormatter != NULL, "format without formatter?" );
-
- xub_StrLen nErrorPos;
- short nType = pFormat->GetType();
-
- sal_uInt32 nNewKey = pFormatter->GetFormatForLanguageIfBuiltIn(
- nKey, LANGUAGE_SYSTEM );
-
- if( nNewKey != nKey )
- {
- nRet = nNewKey;
- }
- else
- {
- String aFormatString( pFormat->GetFormatstring() );
- pFormatter->PutandConvertEntry(
- aFormatString,
- nErrorPos, nType, nNewKey,
- pFormat->GetLanguage(), LANGUAGE_SYSTEM );
-
- // success? Then use new key.
- if( nErrorPos == 0 )
- nRet = nNewKey;
- }
- }
-
- return nRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx
deleted file mode 100644
index f8ec72d89f..0000000000
--- a/xmloff/source/style/xmlnumfi.cxx
+++ /dev/null
@@ -1,2233 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <unotools/syslocale.hxx>
-
-#define _ZFORLIST_DECLARE_TABLE
-#include <svl/zforlist.hxx>
-
-#include <svl/zformat.hxx>
-#include <svl/numuno.hxx>
-#include <rtl/math.hxx>
-#include <i18npool/mslangid.hxx>
-#include <tools/debug.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <xmloff/xmlnumfi.hxx>
-#include <xmloff/xmltkmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmlictxt.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/nmspmap.hxx>
-#include <xmloff/families.hxx>
-#include <xmloff/xmltoken.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-//-------------------------------------------------------------------------
-
-struct SvXMLNumFmtEntry
-{
- rtl::OUString aName;
- sal_uInt32 nKey;
- sal_Bool bRemoveAfterUse;
-
- SvXMLNumFmtEntry( const rtl::OUString& rN, sal_uInt32 nK, sal_Bool bR ) :
- aName(rN), nKey(nK), bRemoveAfterUse(bR) {}
-};
-
-typedef SvXMLNumFmtEntry* SvXMLNumFmtEntryPtr;
-SV_DECL_PTRARR_DEL( SvXMLNumFmtEntryArr, SvXMLNumFmtEntryPtr, 4, 4 )
-
-struct SvXMLEmbeddedElement
-{
- sal_Int32 nFormatPos;
- rtl::OUString aText;
-
- SvXMLEmbeddedElement( sal_Int32 nFP, const rtl::OUString& rT ) :
- nFormatPos(nFP), aText(rT) {}
-
- // comparison operators for PTRARR sorting - sorted by position
- sal_Bool operator ==( const SvXMLEmbeddedElement& r ) const { return nFormatPos == r.nFormatPos; }
- sal_Bool operator < ( const SvXMLEmbeddedElement& r ) const { return nFormatPos < r.nFormatPos; }
-};
-
-typedef SvXMLEmbeddedElement* SvXMLEmbeddedElementPtr;
-SV_DECL_PTRARR_SORT_DEL( SvXMLEmbeddedElementArr, SvXMLEmbeddedElementPtr, 0, 4 )
-
-//-------------------------------------------------------------------------
-
-class SvXMLNumImpData
-{
- SvNumberFormatter* pFormatter;
- SvXMLTokenMap* pStylesElemTokenMap;
- SvXMLTokenMap* pStyleElemTokenMap;
- SvXMLTokenMap* pStyleAttrTokenMap;
- SvXMLTokenMap* pStyleElemAttrTokenMap;
- LocaleDataWrapper* pLocaleData;
- SvXMLNumFmtEntryArr aNameEntries;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxServiceFactory;
-
-public:
- SvXMLNumImpData(
- SvNumberFormatter* pFmt,
- const uno::Reference<lang::XMultiServiceFactory>& xServiceFactory );
- ~SvXMLNumImpData();
-
- SvNumberFormatter* GetNumberFormatter() const { return pFormatter; }
- const SvXMLTokenMap& GetStylesElemTokenMap();
- const SvXMLTokenMap& GetStyleElemTokenMap();
- const SvXMLTokenMap& GetStyleAttrTokenMap();
- const SvXMLTokenMap& GetStyleElemAttrTokenMap();
- const LocaleDataWrapper& GetLocaleData( LanguageType nLang );
- sal_uInt32 GetKeyForName( const rtl::OUString& rName );
- void AddKey( sal_uInt32 nKey, const rtl::OUString& rName, sal_Bool bRemoveAfterUse );
- void SetUsed( sal_uInt32 nKey );
- void RemoveVolatileFormats();
-};
-
-
-struct SvXMLNumberInfo
-{
- sal_Int32 nDecimals;
- sal_Int32 nInteger;
- sal_Int32 nExpDigits;
- sal_Int32 nNumerDigits;
- sal_Int32 nDenomDigits;
- sal_Bool bGrouping;
- sal_Bool bDecReplace;
- sal_Bool bVarDecimals;
- double fDisplayFactor;
- SvXMLEmbeddedElementArr aEmbeddedElements;
-
- SvXMLNumberInfo()
- {
- nDecimals = nInteger = nExpDigits = nNumerDigits = nDenomDigits = -1;
- bGrouping = bDecReplace = bVarDecimals = sal_False;
- fDisplayFactor = 1.0;
- }
-};
-
-class SvXMLNumFmtElementContext : public SvXMLImportContext
-{
- SvXMLNumFormatContext& rParent;
- sal_uInt16 nType;
- rtl::OUStringBuffer aContent;
- SvXMLNumberInfo aNumInfo;
- LanguageType nElementLang;
- sal_Bool bLong;
- sal_Bool bTextual;
- rtl::OUString sCalendar;
-
-public:
- SvXMLNumFmtElementContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- SvXMLNumFormatContext& rParentContext, sal_uInt16 nNewType,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual ~SvXMLNumFmtElementContext();
-
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual void Characters( const rtl::OUString& rChars );
- virtual void EndElement();
-
- void AddEmbeddedElement( sal_Int32 nFormatPos, const rtl::OUString& rContent );
-};
-
-
-class SvXMLNumFmtEmbeddedTextContext : public SvXMLImportContext
-{
- SvXMLNumFmtElementContext& rParent;
- rtl::OUStringBuffer aContent;
- sal_Int32 nTextPosition;
-
-public:
- SvXMLNumFmtEmbeddedTextContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- SvXMLNumFmtElementContext& rParentContext,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual ~SvXMLNumFmtEmbeddedTextContext();
-
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual void Characters( const rtl::OUString& rChars );
- virtual void EndElement();
-};
-
-
-class SvXMLNumFmtMapContext : public SvXMLImportContext
-{
- SvXMLNumFormatContext& rParent;
- rtl::OUString sCondition;
- rtl::OUString sName;
-
-public:
- SvXMLNumFmtMapContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- SvXMLNumFormatContext& rParentContext,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual ~SvXMLNumFmtMapContext();
-
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual void Characters( const rtl::OUString& rChars );
- virtual void EndElement();
-};
-
-
-class SvXMLNumFmtPropContext : public SvXMLImportContext
-{
- SvXMLNumFormatContext& rParent;
- Color aColor;
- sal_Bool bColSet;
-
-public:
- SvXMLNumFmtPropContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const rtl::OUString& rLName,
- SvXMLNumFormatContext& rParentContext,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual ~SvXMLNumFmtPropContext();
-
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
- virtual void Characters( const rtl::OUString& rChars );
- virtual void EndElement();
-};
-
-
-//-------------------------------------------------------------------------
-
-enum SvXMLStyleTokens
-{
- XML_TOK_STYLE_TEXT,
- XML_TOK_STYLE_NUMBER,
- XML_TOK_STYLE_SCIENTIFIC_NUMBER,
- XML_TOK_STYLE_FRACTION,
- XML_TOK_STYLE_CURRENCY_SYMBOL,
- XML_TOK_STYLE_DAY,
- XML_TOK_STYLE_MONTH,
- XML_TOK_STYLE_YEAR,
- XML_TOK_STYLE_ERA,
- XML_TOK_STYLE_DAY_OF_WEEK,
- XML_TOK_STYLE_WEEK_OF_YEAR,
- XML_TOK_STYLE_QUARTER,
- XML_TOK_STYLE_HOURS,
- XML_TOK_STYLE_AM_PM,
- XML_TOK_STYLE_MINUTES,
- XML_TOK_STYLE_SECONDS,
- XML_TOK_STYLE_BOOLEAN,
- XML_TOK_STYLE_TEXT_CONTENT,
- XML_TOK_STYLE_PROPERTIES,
- XML_TOK_STYLE_MAP
-};
-
-enum SvXMLStyleAttrTokens
-{
- XML_TOK_STYLE_ATTR_NAME,
- XML_TOK_STYLE_ATTR_LANGUAGE,
- XML_TOK_STYLE_ATTR_COUNTRY,
- XML_TOK_STYLE_ATTR_TITLE,
- XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER,
- XML_TOK_STYLE_ATTR_FORMAT_SOURCE,
- XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW,
- XML_TOK_STYLE_ATTR_VOLATILE,
- XML_TOK_STYLE_ATTR_TRANSL_FORMAT,
- XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE,
- XML_TOK_STYLE_ATTR_TRANSL_COUNTRY,
- XML_TOK_STYLE_ATTR_TRANSL_STYLE
-};
-
-enum SvXMLStyleElemAttrTokens
-{
- XML_TOK_ELEM_ATTR_DECIMAL_PLACES,
- XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS,
- XML_TOK_ELEM_ATTR_GROUPING,
- XML_TOK_ELEM_ATTR_DISPLAY_FACTOR,
- XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT,
- XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS,
- XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS,
- XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS,
- XML_TOK_ELEM_ATTR_LANGUAGE,
- XML_TOK_ELEM_ATTR_COUNTRY,
- XML_TOK_ELEM_ATTR_STYLE,
- XML_TOK_ELEM_ATTR_TEXTUAL,
- XML_TOK_ELEM_ATTR_CALENDAR
-};
-
-//-------------------------------------------------------------------------
-
-//
-// standard colors
-//
-
-#define XML_NUMF_COLORCOUNT 10
-
-static ColorData aNumFmtStdColors[XML_NUMF_COLORCOUNT] =
-{
- COL_BLACK,
- COL_LIGHTBLUE,
- COL_LIGHTGREEN,
- COL_LIGHTCYAN,
- COL_LIGHTRED,
- COL_LIGHTMAGENTA,
- COL_BROWN,
- COL_GRAY,
- COL_YELLOW,
- COL_WHITE
-};
-
-//
-// token maps
-//
-
-// maps for SvXMLUnitConverter::convertEnum
-
-static SvXMLEnumMapEntry aStyleValueMap[] =
-{
- { XML_SHORT, sal_False },
- { XML_LONG, sal_True },
- { XML_TOKEN_INVALID, 0 }
-};
-
-static SvXMLEnumMapEntry aFormatSourceMap[] =
-{
- { XML_FIXED, sal_False },
- { XML_LANGUAGE, sal_True },
- { XML_TOKEN_INVALID, 0 }
-};
-
-//-------------------------------------------------------------------------
-
-struct SvXMLDefaultDateFormat
-{
- NfIndexTableOffset eFormat;
- SvXMLDateElementAttributes eDOW;
- SvXMLDateElementAttributes eDay;
- SvXMLDateElementAttributes eMonth;
- SvXMLDateElementAttributes eYear;
- SvXMLDateElementAttributes eHours;
- SvXMLDateElementAttributes eMins;
- SvXMLDateElementAttributes eSecs;
- sal_Bool bSystem;
-};
-
-static SvXMLDefaultDateFormat aDefaultDateFormats[] =
-{
- // format day-of-week day month year hours minutes seconds format-source
-
- { NF_DATE_SYSTEM_SHORT, XML_DEA_NONE, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_True },
- { NF_DATE_SYSTEM_LONG, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_True },
- { NF_DATE_SYS_MMYY, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_LONG, XML_DEA_SHORT, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_DDMMM, XML_DEA_NONE, XML_DEA_LONG, XML_DEA_TEXTSHORT, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_DDMMYYYY, XML_DEA_NONE, XML_DEA_LONG, XML_DEA_LONG, XML_DEA_LONG, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_DDMMYY, XML_DEA_NONE, XML_DEA_LONG, XML_DEA_LONG, XML_DEA_SHORT, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_DMMMYY, XML_DEA_NONE, XML_DEA_SHORT, XML_DEA_TEXTSHORT, XML_DEA_SHORT, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_DMMMYYYY, XML_DEA_NONE, XML_DEA_SHORT, XML_DEA_TEXTSHORT, XML_DEA_LONG, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_DMMMMYYYY, XML_DEA_NONE, XML_DEA_SHORT, XML_DEA_TEXTLONG, XML_DEA_LONG, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_NNDMMMYY, XML_DEA_SHORT, XML_DEA_SHORT, XML_DEA_TEXTSHORT, XML_DEA_SHORT, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_NNDMMMMYYYY, XML_DEA_SHORT, XML_DEA_SHORT, XML_DEA_TEXTLONG, XML_DEA_LONG, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATE_SYS_NNNNDMMMMYYYY, XML_DEA_LONG, XML_DEA_SHORT, XML_DEA_TEXTLONG, XML_DEA_LONG, XML_DEA_NONE, XML_DEA_NONE, XML_DEA_NONE, sal_False },
- { NF_DATETIME_SYSTEM_SHORT_HHMM, XML_DEA_NONE, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_NONE, sal_True },
- { NF_DATETIME_SYS_DDMMYYYY_HHMMSS, XML_DEA_NONE, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, XML_DEA_ANY, sal_False }
-};
-
-//-------------------------------------------------------------------------
-
-SV_IMPL_PTRARR( SvXMLNumFmtEntryArr, SvXMLNumFmtEntryPtr );
-SV_IMPL_OP_PTRARR_SORT( SvXMLEmbeddedElementArr, SvXMLEmbeddedElementPtr );
-
-//-------------------------------------------------------------------------
-
-//
-// SvXMLNumImpData
-//
-
-SvXMLNumImpData::SvXMLNumImpData(
- SvNumberFormatter* pFmt,
- const uno::Reference<lang::XMultiServiceFactory>& xServiceFactory )
-: pFormatter(pFmt),
- pStylesElemTokenMap(NULL),
- pStyleElemTokenMap(NULL),
- pStyleAttrTokenMap(NULL),
- pStyleElemAttrTokenMap(NULL),
- pLocaleData(NULL),
-
- mxServiceFactory(xServiceFactory)
-{
- DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
-}
-
-SvXMLNumImpData::~SvXMLNumImpData()
-{
- delete pStylesElemTokenMap;
- delete pStyleElemTokenMap;
- delete pStyleAttrTokenMap;
- delete pStyleElemAttrTokenMap;
- delete pLocaleData;
-}
-
-sal_uInt32 SvXMLNumImpData::GetKeyForName( const rtl::OUString& rName )
-{
- sal_uInt16 nCount = aNameEntries.Count();
- for (sal_uInt16 i=0; i<nCount; i++)
- {
- const SvXMLNumFmtEntry* pObj = aNameEntries[i];
- if ( pObj->aName == rName )
- return pObj->nKey; // found
- }
- return NUMBERFORMAT_ENTRY_NOT_FOUND;
-}
-
-void SvXMLNumImpData::AddKey( sal_uInt32 nKey, const rtl::OUString& rName, sal_Bool bRemoveAfterUse )
-{
- if ( bRemoveAfterUse )
- {
- // if there is already an entry for this key without the bRemoveAfterUse flag,
- // clear the flag for this entry, too
-
- sal_uInt16 nCount = aNameEntries.Count();
- for (sal_uInt16 i=0; i<nCount; i++)
- {
- SvXMLNumFmtEntry* pObj = aNameEntries[i];
- if ( pObj->nKey == nKey && !pObj->bRemoveAfterUse )
- {
- bRemoveAfterUse = sal_False; // clear flag for new entry
- break;
- }
- }
- }
- else
- {
- // call SetUsed to clear the bRemoveAfterUse flag for other entries for this key
- SetUsed( nKey );
- }
-
- SvXMLNumFmtEntry* pObj = new SvXMLNumFmtEntry( rName, nKey, bRemoveAfterUse );
- aNameEntries.Insert( pObj, aNameEntries.Count() );
-}
-
-void SvXMLNumImpData::SetUsed( sal_uInt32 nKey )
-{
- sal_uInt16 nCount = aNameEntries.Count();
- for (sal_uInt16 i=0; i<nCount; i++)
- {
- SvXMLNumFmtEntry* pObj = aNameEntries[i];
- if ( pObj->nKey == nKey )
- {
- pObj->bRemoveAfterUse = sal_False; // used -> don't remove
-
- // continue searching - there may be several entries for the same key
- // (with different names), the format must not be deleted if any one of
- // them is used
- }
- }
-}
-
-void SvXMLNumImpData::RemoveVolatileFormats()
-{
- // remove temporary (volatile) formats from NumberFormatter
- // called at the end of each import (styles and content), so volatile formats
- // from styles can't be used in content
-
- if ( !pFormatter )
- return;
-
- sal_uInt16 nCount = aNameEntries.Count();
- for (sal_uInt16 i=0; i<nCount; i++)
- {
- const SvXMLNumFmtEntry* pObj = aNameEntries[i];
- if ( pObj->bRemoveAfterUse )
- {
- const SvNumberformat* pFormat = pFormatter->GetEntry(pObj->nKey);
- if (pFormat && (pFormat->GetType() & NUMBERFORMAT_DEFINED))
- pFormatter->DeleteEntry( pObj->nKey );
- }
- }
-}
-
-const SvXMLTokenMap& SvXMLNumImpData::GetStylesElemTokenMap()
-{
- if( !pStylesElemTokenMap )
- {
- static SvXMLTokenMapEntry aStylesElemMap[] =
- {
- // style elements
- { XML_NAMESPACE_NUMBER, XML_NUMBER_STYLE, XML_TOK_STYLES_NUMBER_STYLE },
- { XML_NAMESPACE_NUMBER, XML_CURRENCY_STYLE, XML_TOK_STYLES_CURRENCY_STYLE },
- { XML_NAMESPACE_NUMBER, XML_PERCENTAGE_STYLE, XML_TOK_STYLES_PERCENTAGE_STYLE },
- { XML_NAMESPACE_NUMBER, XML_DATE_STYLE, XML_TOK_STYLES_DATE_STYLE },
- { XML_NAMESPACE_NUMBER, XML_TIME_STYLE, XML_TOK_STYLES_TIME_STYLE },
- { XML_NAMESPACE_NUMBER, XML_BOOLEAN_STYLE, XML_TOK_STYLES_BOOLEAN_STYLE },
- { XML_NAMESPACE_NUMBER, XML_TEXT_STYLE, XML_TOK_STYLES_TEXT_STYLE },
- XML_TOKEN_MAP_END
- };
-
- pStylesElemTokenMap = new SvXMLTokenMap( aStylesElemMap );
- }
- return *pStylesElemTokenMap;
-}
-
-const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemTokenMap()
-{
- if( !pStyleElemTokenMap )
- {
- static SvXMLTokenMapEntry aStyleElemMap[] =
- {
- // elements in a style
- { XML_NAMESPACE_NUMBER, XML_TEXT, XML_TOK_STYLE_TEXT },
- { XML_NAMESPACE_NUMBER, XML_NUMBER, XML_TOK_STYLE_NUMBER },
- { XML_NAMESPACE_NUMBER, XML_SCIENTIFIC_NUMBER, XML_TOK_STYLE_SCIENTIFIC_NUMBER },
- { XML_NAMESPACE_NUMBER, XML_FRACTION, XML_TOK_STYLE_FRACTION },
- { XML_NAMESPACE_NUMBER, XML_CURRENCY_SYMBOL, XML_TOK_STYLE_CURRENCY_SYMBOL },
- { XML_NAMESPACE_NUMBER, XML_DAY, XML_TOK_STYLE_DAY },
- { XML_NAMESPACE_NUMBER, XML_MONTH, XML_TOK_STYLE_MONTH },
- { XML_NAMESPACE_NUMBER, XML_YEAR, XML_TOK_STYLE_YEAR },
- { XML_NAMESPACE_NUMBER, XML_ERA, XML_TOK_STYLE_ERA },
- { XML_NAMESPACE_NUMBER, XML_DAY_OF_WEEK, XML_TOK_STYLE_DAY_OF_WEEK },
- { XML_NAMESPACE_NUMBER, XML_WEEK_OF_YEAR, XML_TOK_STYLE_WEEK_OF_YEAR },
- { XML_NAMESPACE_NUMBER, XML_QUARTER, XML_TOK_STYLE_QUARTER },
- { XML_NAMESPACE_NUMBER, XML_HOURS, XML_TOK_STYLE_HOURS },
- { XML_NAMESPACE_NUMBER, XML_AM_PM, XML_TOK_STYLE_AM_PM },
- { XML_NAMESPACE_NUMBER, XML_MINUTES, XML_TOK_STYLE_MINUTES },
- { XML_NAMESPACE_NUMBER, XML_SECONDS, XML_TOK_STYLE_SECONDS },
- { XML_NAMESPACE_NUMBER, XML_BOOLEAN, XML_TOK_STYLE_BOOLEAN },
- { XML_NAMESPACE_NUMBER, XML_TEXT_CONTENT, XML_TOK_STYLE_TEXT_CONTENT },
- { XML_NAMESPACE_STYLE, XML_TEXT_PROPERTIES, XML_TOK_STYLE_PROPERTIES },
- { XML_NAMESPACE_STYLE, XML_MAP, XML_TOK_STYLE_MAP },
- XML_TOKEN_MAP_END
- };
-
- pStyleElemTokenMap = new SvXMLTokenMap( aStyleElemMap );
- }
- return *pStyleElemTokenMap;
-}
-
-const SvXMLTokenMap& SvXMLNumImpData::GetStyleAttrTokenMap()
-{
- if( !pStyleAttrTokenMap )
- {
- static SvXMLTokenMapEntry aStyleAttrMap[] =
- {
- // attributes for a style
- { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_STYLE_ATTR_NAME },
- { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_STYLE_ATTR_LANGUAGE },
- { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_STYLE_ATTR_COUNTRY },
- { XML_NAMESPACE_NUMBER, XML_TITLE, XML_TOK_STYLE_ATTR_TITLE },
- { XML_NAMESPACE_NUMBER, XML_AUTOMATIC_ORDER, XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER },
- { XML_NAMESPACE_NUMBER, XML_FORMAT_SOURCE, XML_TOK_STYLE_ATTR_FORMAT_SOURCE },
- { XML_NAMESPACE_NUMBER, XML_TRUNCATE_ON_OVERFLOW, XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW },
- { XML_NAMESPACE_STYLE, XML_VOLATILE, XML_TOK_STYLE_ATTR_VOLATILE },
- { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_FORMAT, XML_TOK_STYLE_ATTR_TRANSL_FORMAT },
- { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_LANGUAGE, XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE },
- { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_COUNTRY, XML_TOK_STYLE_ATTR_TRANSL_COUNTRY },
- { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_STYLE, XML_TOK_STYLE_ATTR_TRANSL_STYLE },
- XML_TOKEN_MAP_END
- };
-
- pStyleAttrTokenMap = new SvXMLTokenMap( aStyleAttrMap );
- }
- return *pStyleAttrTokenMap;
-}
-
-const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemAttrTokenMap()
-{
- if( !pStyleElemAttrTokenMap )
- {
- static SvXMLTokenMapEntry aStyleElemAttrMap[] =
- {
- // attributes for an element within a style
- { XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES, XML_TOK_ELEM_ATTR_DECIMAL_PLACES },
- { XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS, XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS },
- { XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TOK_ELEM_ATTR_GROUPING },
- { XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR },
- { XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT },
- { XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS },
- { XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS },
- { XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS },
- { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_ELEM_ATTR_LANGUAGE },
- { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_ELEM_ATTR_COUNTRY },
- { XML_NAMESPACE_NUMBER, XML_STYLE, XML_TOK_ELEM_ATTR_STYLE },
- { XML_NAMESPACE_NUMBER, XML_TEXTUAL, XML_TOK_ELEM_ATTR_TEXTUAL },
- { XML_NAMESPACE_NUMBER, XML_CALENDAR, XML_TOK_ELEM_ATTR_CALENDAR },
- XML_TOKEN_MAP_END
- };
-
- pStyleElemAttrTokenMap = new SvXMLTokenMap( aStyleElemAttrMap );
- }
- return *pStyleElemAttrTokenMap;
-}
-
-const LocaleDataWrapper& SvXMLNumImpData::GetLocaleData( LanguageType nLang )
-{
- if ( !pLocaleData )
- pLocaleData = new LocaleDataWrapper(
- (pFormatter ? pFormatter->GetServiceManager() :
- mxServiceFactory),
- MsLangId::convertLanguageToLocale( nLang ) );
- else
- pLocaleData->setLocale( MsLangId::convertLanguageToLocale( nLang ) );
- return *pLocaleData;
-}
-
-//-------------------------------------------------------------------------
-
-//
-// SvXMLNumFmtMapContext
-//
-
-SvXMLNumFmtMapContext::SvXMLNumFmtMapContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- SvXMLNumFormatContext& rParentContext,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rParent( rParentContext )
-{
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- OUString sAttrName = xAttrList->getNameByIndex( i );
- OUString sValue = xAttrList->getValueByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
- if ( nPrefix == XML_NAMESPACE_STYLE )
- {
- if ( IsXMLToken( aLocalName, XML_CONDITION) )
- sCondition = sValue;
- else if ( IsXMLToken( aLocalName, XML_APPLY_STYLE_NAME) )
- sName = sValue;
- }
- }
-}
-
-SvXMLNumFmtMapContext::~SvXMLNumFmtMapContext()
-{
-}
-
-SvXMLImportContext* SvXMLNumFmtMapContext::CreateChildContext(
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& )
-{
- // no elements supported - use default context
- return new SvXMLImportContext( GetImport(), nPrfx, rLName );
-}
-
-void SvXMLNumFmtMapContext::Characters( const rtl::OUString& )
-{
-}
-
-void SvXMLNumFmtMapContext::EndElement()
-{
- rParent.AddCondition( sCondition, sName );
-}
-
-//-------------------------------------------------------------------------
-
-//
-// SvXMLNumFmtPropContext
-//
-
-SvXMLNumFmtPropContext::SvXMLNumFmtPropContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- SvXMLNumFormatContext& rParentContext,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rParent( rParentContext ),
- bColSet( sal_False )
-{
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- OUString sAttrName = xAttrList->getNameByIndex( i );
- OUString sValue = xAttrList->getValueByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
- if ( nPrefix == XML_NAMESPACE_FO && IsXMLToken( aLocalName, XML_COLOR ) )
- bColSet = SvXMLUnitConverter::convertColor( aColor, sValue );
- }
-}
-
-SvXMLNumFmtPropContext::~SvXMLNumFmtPropContext()
-{
-}
-
-SvXMLImportContext* SvXMLNumFmtPropContext::CreateChildContext(
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& )
-{
- // no elements supported - use default context
- return new SvXMLImportContext( GetImport(), nPrfx, rLName );
-}
-
-void SvXMLNumFmtPropContext::Characters( const rtl::OUString& )
-{
-}
-
-void SvXMLNumFmtPropContext::EndElement()
-{
- if (bColSet)
- rParent.AddColor( aColor );
-}
-
-//-------------------------------------------------------------------------
-
-//
-// SvXMLNumFmtEmbeddedTextContext
-//
-
-SvXMLNumFmtEmbeddedTextContext::SvXMLNumFmtEmbeddedTextContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- SvXMLNumFmtElementContext& rParentContext,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rParent( rParentContext ),
- nTextPosition( 0 )
-{
- sal_Int32 nAttrVal;
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- OUString sAttrName = xAttrList->getNameByIndex( i );
- OUString sValue = xAttrList->getValueByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
- if ( nPrefix == XML_NAMESPACE_NUMBER && IsXMLToken( aLocalName, XML_POSITION ) )
- {
- if ( SvXMLUnitConverter::convertNumber( nAttrVal, sValue, 0 ) )
- nTextPosition = nAttrVal;
- }
- }
-}
-
-SvXMLNumFmtEmbeddedTextContext::~SvXMLNumFmtEmbeddedTextContext()
-{
-}
-
-SvXMLImportContext* SvXMLNumFmtEmbeddedTextContext::CreateChildContext(
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& )
-{
- // no elements supported - use default context
- return new SvXMLImportContext( GetImport(), nPrfx, rLName );
-}
-
-void SvXMLNumFmtEmbeddedTextContext::Characters( const rtl::OUString& rChars )
-{
- aContent.append( rChars );
-}
-
-void SvXMLNumFmtEmbeddedTextContext::EndElement()
-{
- rParent.AddEmbeddedElement( nTextPosition, aContent.makeStringAndClear() );
-}
-
-//-------------------------------------------------------------------------
-
-sal_Bool lcl_ValidChar( sal_Unicode cChar, const SvXMLNumFormatContext& rParent )
-{
- sal_uInt16 nFormatType = rParent.GetType();
-
- // Treat space equal to non-breaking space separator.
- const sal_Unicode cNBSP = 0x00A0;
- sal_Unicode cTS;
- if ( ( nFormatType == XML_TOK_STYLES_NUMBER_STYLE ||
- nFormatType == XML_TOK_STYLES_CURRENCY_STYLE ||
- nFormatType == XML_TOK_STYLES_PERCENTAGE_STYLE ) &&
- (cChar == (cTS = rParent.GetLocaleData().getNumThousandSep().GetChar(0)) ||
- (cChar == ' ' && cTS == cNBSP)) )
- {
- // #i22394# Extra occurrences of thousands separator must be quoted, so they
- // aren't mis-interpreted as display-factor.
- // This must be limited to the format types that can contain a number element,
- // because the same character can be a date separator that should not be quoted
- // in date formats.
-
- return sal_False; // force quotes
- }
-
- // see ImpSvNumberformatScan::Next_Symbol
- if ( cChar == ' ' ||
- cChar == '-' ||
- cChar == '/' ||
- cChar == '.' ||
- cChar == ',' ||
- cChar == ':' ||
- cChar == '\'' )
- return sal_True; // for all format types
-
- // percent sign must be used without quotes for percentage styles only
- if ( nFormatType == XML_TOK_STYLES_PERCENTAGE_STYLE && cChar == '%' )
- return sal_True;
-
- // don't put quotes around single parentheses (often used for negative numbers)
- if ( ( nFormatType == XML_TOK_STYLES_NUMBER_STYLE ||
- nFormatType == XML_TOK_STYLES_CURRENCY_STYLE ||
- nFormatType == XML_TOK_STYLES_PERCENTAGE_STYLE ) &&
- ( cChar == '(' || cChar == ')' ) )
- return sal_True;
-
- return sal_False;
-}
-
-void lcl_EnquoteIfNecessary( rtl::OUStringBuffer& rContent, const SvXMLNumFormatContext& rParent )
-{
- sal_Bool bQuote = sal_True;
- sal_Int32 nLength = rContent.getLength();
-
- if ( ( nLength == 1 &&
- lcl_ValidChar( rContent.charAt(0), rParent ) ) ||
- ( nLength == 2 &&
- lcl_ValidChar( rContent.charAt(0), rParent ) &&
- rContent.charAt(1) == ' ' ) )
- {
- // don't quote single separator characters like space or percent,
- // or separator characters followed by space (used in date formats)
- bQuote = sal_False;
- }
- else if ( rParent.GetType() == XML_TOK_STYLES_PERCENTAGE_STYLE && nLength > 1 )
- {
- // the percent character in percentage styles must be left out of quoting
- // (one occurrence is enough even if there are several percent characters in the string)
-
- rtl::OUString aString( rContent.getStr() );
- sal_Int32 nPos = aString.indexOf( (sal_Unicode) '%' );
- if ( nPos >= 0 )
- {
- if ( nPos + 1 < nLength )
- {
- if ( nPos + 2 == nLength && lcl_ValidChar( rContent.charAt(nPos + 1), rParent ) )
- {
- // single character that doesn't need quoting
- }
- else
- {
- // quote text behind percent character
- rContent.insert( nPos + 1, (sal_Unicode) '"' );
- rContent.append( (sal_Unicode) '"' );
- }
- }
- if ( nPos > 0 )
- {
- if ( nPos == 1 && lcl_ValidChar( rContent.charAt(0), rParent ) )
- {
- // single character that doesn't need quoting
- }
- else
- {
- // quote text before percent character
- rContent.insert( nPos, (sal_Unicode) '"' );
- rContent.insert( 0, (sal_Unicode) '"' );
- }
- }
- bQuote = sal_False;
- }
- // else: normal quoting (below)
- }
-
- if ( bQuote )
- {
- // #i55469# quotes in the string itself have to be escaped
- rtl::OUString aString( rContent.getStr() );
- bool bEscape = ( aString.indexOf( (sal_Unicode) '"' ) >= 0 );
- if ( bEscape )
- {
- // A quote is turned into "\"" - a quote to end quoted text, an escaped quote,
- // and a quote to resume quoting.
- rtl::OUString aInsert( RTL_CONSTASCII_USTRINGPARAM( "\"\\\"" ) );
-
- sal_Int32 nPos = 0;
- while ( nPos < rContent.getLength() )
- {
- if ( rContent.charAt( nPos ) == (sal_Unicode) '"' )
- {
- rContent.insert( nPos, aInsert );
- nPos += aInsert.getLength();
- }
- ++nPos;
- }
- }
-
- // quote string literals
- rContent.insert( 0, (sal_Unicode) '"' );
- rContent.append( (sal_Unicode) '"' );
-
- // remove redundant double quotes at start or end
- if ( bEscape )
- {
- if ( rContent.getLength() > 2 &&
- rContent.charAt(0) == (sal_Unicode) '"' &&
- rContent.charAt(1) == (sal_Unicode) '"' )
- {
- String aTrimmed( rContent.makeStringAndClear().copy(2) );
- rContent = rtl::OUStringBuffer( aTrimmed );
- }
-
- sal_Int32 nLen = rContent.getLength();
- if ( nLen > 2 &&
- rContent.charAt(nLen-1) == (sal_Unicode) '"' &&
- rContent.charAt(nLen-2) == (sal_Unicode) '"' )
- {
- String aTrimmed( rContent.makeStringAndClear().copy( 0, nLen - 2 ) );
- rContent = rtl::OUStringBuffer( aTrimmed );
- }
- }
- }
-}
-
-//
-// SvXMLNumFmtElementContext
-//
-
-SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- SvXMLNumFormatContext& rParentContext, sal_uInt16 nNewType,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rParent( rParentContext ),
- nType( nNewType ),
- nElementLang( LANGUAGE_SYSTEM ),
- bLong( sal_False ),
- bTextual( sal_False )
-{
- OUString sLanguage, sCountry;
- sal_Int32 nAttrVal;
- bool bAttrBool;
- sal_uInt16 nAttrEnum;
- double fAttrDouble;
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- OUString sAttrName = xAttrList->getNameByIndex( i );
- OUString sValue = xAttrList->getValueByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
-
- const SvXMLTokenMap& rTokenMap = rParent.GetData()->GetStyleElemAttrTokenMap();
- sal_uInt16 nToken = rTokenMap.Get( nPrefix, aLocalName );
-
- switch (nToken)
- {
- case XML_TOK_ELEM_ATTR_DECIMAL_PLACES:
- if ( SvXMLUnitConverter::convertNumber( nAttrVal, sValue, 0 ) )
- aNumInfo.nDecimals = nAttrVal;
- break;
- case XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS:
- if ( SvXMLUnitConverter::convertNumber( nAttrVal, sValue, 0 ) )
- aNumInfo.nInteger = nAttrVal;
- break;
- case XML_TOK_ELEM_ATTR_GROUPING:
- if ( SvXMLUnitConverter::convertBool( bAttrBool, sValue ) )
- aNumInfo.bGrouping = bAttrBool;
- break;
- case XML_TOK_ELEM_ATTR_DISPLAY_FACTOR:
- if ( SvXMLUnitConverter::convertDouble( fAttrDouble, sValue ) )
- aNumInfo.fDisplayFactor = fAttrDouble;
- break;
- case XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT:
- if ( sValue.getLength() > 0 )
- aNumInfo.bDecReplace = sal_True; // only a default string is supported
- else
- aNumInfo.bVarDecimals = sal_True; // empty replacement string: variable decimals
- break;
- case XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS:
- if ( SvXMLUnitConverter::convertNumber( nAttrVal, sValue, 0 ) )
- aNumInfo.nExpDigits = nAttrVal;
- break;
- case XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS:
- if ( SvXMLUnitConverter::convertNumber( nAttrVal, sValue, 0 ) )
- aNumInfo.nNumerDigits = nAttrVal;
- break;
- case XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS:
- if ( SvXMLUnitConverter::convertNumber( nAttrVal, sValue, 0 ) )
- aNumInfo.nDenomDigits = nAttrVal;
- break;
- case XML_TOK_ELEM_ATTR_LANGUAGE:
- sLanguage = sValue;
- break;
- case XML_TOK_ELEM_ATTR_COUNTRY:
- sCountry = sValue;
- break;
- case XML_TOK_ELEM_ATTR_STYLE:
- if ( SvXMLUnitConverter::convertEnum( nAttrEnum, sValue, aStyleValueMap ) )
- bLong = (sal_Bool) nAttrEnum;
- break;
- case XML_TOK_ELEM_ATTR_TEXTUAL:
- if ( SvXMLUnitConverter::convertBool( bAttrBool, sValue ) )
- bTextual = bAttrBool;
- break;
- case XML_TOK_ELEM_ATTR_CALENDAR:
- sCalendar = sValue;
- break;
- }
- }
-
- if ( sLanguage.getLength() || sCountry.getLength() )
- {
- nElementLang = MsLangId::convertIsoNamesToLanguage( sLanguage, sCountry );
- if ( nElementLang == LANGUAGE_DONTKNOW )
- nElementLang = LANGUAGE_SYSTEM; //! error handling for invalid locales?
- }
-}
-
-SvXMLNumFmtElementContext::~SvXMLNumFmtElementContext()
-{
-}
-
-SvXMLImportContext* SvXMLNumFmtElementContext::CreateChildContext(
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList )
-{
- // only number:number supports number:embedded-text child element
-
- if ( nType == XML_TOK_STYLE_NUMBER &&
- nPrfx == XML_NAMESPACE_NUMBER && IsXMLToken( rLName, XML_EMBEDDED_TEXT ) )
- {
- return new SvXMLNumFmtEmbeddedTextContext( GetImport(), nPrfx, rLName, *this, xAttrList );
- }
- else
- return new SvXMLImportContext( GetImport(), nPrfx, rLName );
-}
-
-void SvXMLNumFmtElementContext::Characters( const rtl::OUString& rChars )
-{
- aContent.append( rChars );
-}
-
-void SvXMLNumFmtElementContext::AddEmbeddedElement( sal_Int32 nFormatPos, const rtl::OUString& rContent )
-{
- if ( rContent.getLength() )
- {
- SvXMLEmbeddedElement* pObj = new SvXMLEmbeddedElement( nFormatPos, rContent );
- if ( !aNumInfo.aEmbeddedElements.Insert( pObj ) )
- {
- // there's already an element at this position - append text to existing element
-
- delete pObj;
- sal_uInt16 nElementCount = aNumInfo.aEmbeddedElements.Count();
- for (sal_uInt16 i=0; i<nElementCount; i++)
- {
- pObj = aNumInfo.aEmbeddedElements[i];
- if ( pObj->nFormatPos == nFormatPos )
- {
- pObj->aText += rContent;
- break;
- }
- }
- }
- }
-}
-
-void SvXMLNumFmtElementContext::EndElement()
-{
- sal_Bool bEffLong = bLong;
- switch (nType)
- {
- case XML_TOK_STYLE_TEXT:
- if ( rParent.HasLongDoW() &&
- rParent.GetLocaleData().getLongDateDayOfWeekSep() ==
- String( aContent.getStr() ) )
- {
- // skip separator constant after long day of week
- // (NF_KEY_NNNN contains the separator)
-
- if ( rParent.ReplaceNfKeyword( NF_KEY_NNN, NF_KEY_NNNN ) )
- {
- aContent = OUStringBuffer();
- }
-
- rParent.SetHasLongDoW( sal_False ); // only once
- }
- if ( aContent.getLength() )
- {
- lcl_EnquoteIfNecessary( aContent, rParent );
- rParent.AddToCode( aContent.makeStringAndClear() );
- }
- break;
-
- case XML_TOK_STYLE_NUMBER:
- rParent.AddNumber( aNumInfo );
- break;
-
- case XML_TOK_STYLE_CURRENCY_SYMBOL:
- rParent.AddCurrency( aContent.makeStringAndClear(), nElementLang );
- break;
-
- case XML_TOK_STYLE_TEXT_CONTENT:
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'@') );
- break;
- case XML_TOK_STYLE_BOOLEAN:
- // ignored - only default boolean format is supported
- break;
-
- case XML_TOK_STYLE_DAY:
- rParent.UpdateCalendar( sCalendar );
-//! I18N doesn't provide SYSTEM or extended date information yet
-
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_DD : NF_KEY_D ) );
- break;
- case XML_TOK_STYLE_MONTH:
- rParent.UpdateCalendar( sCalendar );
-//! I18N doesn't provide SYSTEM or extended date information yet
-
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bTextual
- ? ( bEffLong ? NF_KEY_MMMM : NF_KEY_MMM )
- : ( bEffLong ? NF_KEY_MM : NF_KEY_M ) ) );
- break;
- case XML_TOK_STYLE_YEAR:
- rParent.UpdateCalendar( sCalendar );
-//! I18N doesn't provide SYSTEM or extended date information yet
- // Y after G (era) is replaced by E
- if ( rParent.HasEra() )
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_EEC : NF_KEY_EC ) );
- else
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_YYYY : NF_KEY_YY ) );
- break;
- case XML_TOK_STYLE_ERA:
- rParent.UpdateCalendar( sCalendar );
-//! I18N doesn't provide SYSTEM or extended date information yet
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_GGG : NF_KEY_G ) );
- // HasEra flag is set
- break;
- case XML_TOK_STYLE_DAY_OF_WEEK:
- rParent.UpdateCalendar( sCalendar );
-//! I18N doesn't provide SYSTEM or extended date information yet
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_NNNN : NF_KEY_NN ) );
- break;
- case XML_TOK_STYLE_WEEK_OF_YEAR:
- rParent.UpdateCalendar( sCalendar );
- rParent.AddNfKeyword( NF_KEY_WW );
- break;
- case XML_TOK_STYLE_QUARTER:
- rParent.UpdateCalendar( sCalendar );
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_QQ : NF_KEY_Q ) );
- break;
- case XML_TOK_STYLE_HOURS:
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_HH : NF_KEY_H ) );
- break;
- case XML_TOK_STYLE_AM_PM:
- //! short/long?
- rParent.AddNfKeyword( NF_KEY_AMPM );
- break;
- case XML_TOK_STYLE_MINUTES:
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_MMI : NF_KEY_MI ) );
- break;
- case XML_TOK_STYLE_SECONDS:
- rParent.AddNfKeyword(
- sal::static_int_cast< sal_uInt16 >(
- bEffLong ? NF_KEY_SS : NF_KEY_S ) );
- if ( aNumInfo.nDecimals > 0 )
- {
- // manually add the decimal places
- const String& rSep = rParent.GetLocaleData().getNumDecimalSep();
- for ( xub_StrLen j=0; j<rSep.Len(); j++ )
- {
- rParent.AddToCode( OUString::valueOf( rSep.GetChar(j) ) );
- }
- for (sal_Int32 i=0; i<aNumInfo.nDecimals; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'0') );
- }
- break;
-
- case XML_TOK_STYLE_FRACTION:
- {
- if ( aNumInfo.nInteger >= 0 )
- {
- // add integer part only if min-integer-digits attribute is there
- aNumInfo.nDecimals = 0;
- rParent.AddNumber( aNumInfo ); // number without decimals
- rParent.AddToCode( OUString::valueOf((sal_Unicode)' ') );
- }
-
- //! build string and add at once
-
- sal_Int32 i;
- for (i=0; i<aNumInfo.nNumerDigits; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') );
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'/') );
- for (i=0; i<aNumInfo.nDenomDigits; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') );
- }
- break;
-
- case XML_TOK_STYLE_SCIENTIFIC_NUMBER:
- {
- rParent.AddNumber( aNumInfo ); // simple number
-
- rParent.AddToCode( OUString(RTL_CONSTASCII_USTRINGPARAM("E+")) );
- for (sal_Int32 i=0; i<aNumInfo.nExpDigits; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'0') );
- }
- break;
-
- default:
- OSL_FAIL("invalid element ID");
- }
-}
-
-//-------------------------------------------------------------------------
-
-sal_uInt16 SvXMLNumFmtDefaults::GetDefaultDateFormat( SvXMLDateElementAttributes eDOW,
- SvXMLDateElementAttributes eDay, SvXMLDateElementAttributes eMonth,
- SvXMLDateElementAttributes eYear, SvXMLDateElementAttributes eHours,
- SvXMLDateElementAttributes eMins, SvXMLDateElementAttributes eSecs,
- sal_Bool bSystem )
-{
- const sal_uInt16 nCount = sizeof(aDefaultDateFormats) / sizeof(SvXMLDefaultDateFormat);
- for (sal_uInt16 nPos=0; nPos<nCount; nPos++)
- {
- const SvXMLDefaultDateFormat& rEntry = aDefaultDateFormats[nPos];
- if ( bSystem == rEntry.bSystem &&
- ( eDOW == rEntry.eDOW || ( rEntry.eDOW == XML_DEA_ANY && eDOW != XML_DEA_NONE ) ) &&
- ( eDay == rEntry.eDay || ( rEntry.eDay == XML_DEA_ANY && eDay != XML_DEA_NONE ) ) &&
- ( eMonth == rEntry.eMonth || ( rEntry.eMonth == XML_DEA_ANY && eMonth != XML_DEA_NONE ) ) &&
- ( eYear == rEntry.eYear || ( rEntry.eYear == XML_DEA_ANY && eYear != XML_DEA_NONE ) ) &&
- ( eHours == rEntry.eHours || ( rEntry.eHours == XML_DEA_ANY && eHours != XML_DEA_NONE ) ) &&
- ( eMins == rEntry.eMins || ( rEntry.eMins == XML_DEA_ANY && eMins != XML_DEA_NONE ) ) &&
- ( eSecs == rEntry.eSecs || ( rEntry.eSecs == XML_DEA_ANY && eSecs != XML_DEA_NONE ) ) )
- {
- return sal::static_int_cast< sal_uInt16 >(rEntry.eFormat);
- }
- }
-
- return NF_INDEX_TABLE_ENTRIES; // invalid
-}
-
-//-------------------------------------------------------------------------
-
-//
-// SvXMLNumFormatContext
-//
-
-SvXMLNumFormatContext::SvXMLNumFormatContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- SvXMLNumImpData* pNewData, sal_uInt16 nNewType,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList,
- SvXMLStylesContext& rStyles ) :
- SvXMLStyleContext( rImport, nPrfx, rLName, xAttrList ),
- pData( pNewData ),
- pStyles( &rStyles ),
- aMyConditions(),
- nType( nNewType ),
- nKey(-1),
- nFormatLang( LANGUAGE_SYSTEM ),
- bAutoOrder( sal_False ),
- bFromSystem( sal_False ),
- bTruncate( sal_True ),
- bAutoDec( sal_False ),
- bAutoInt( sal_False ),
- bHasExtraText( sal_False ),
- bHasLongDoW( sal_False ),
- bHasEra( sal_False ),
- bHasDateTime( sal_False ),
- bRemoveAfterUse( sal_False ),
- eDateDOW( XML_DEA_NONE ),
- eDateDay( XML_DEA_NONE ),
- eDateMonth( XML_DEA_NONE ),
- eDateYear( XML_DEA_NONE ),
- eDateHours( XML_DEA_NONE ),
- eDateMins( XML_DEA_NONE ),
- eDateSecs( XML_DEA_NONE ),
- bDateNoDefault( sal_False )
-{
- OUString sLanguage, sCountry;
- ::com::sun::star::i18n::NativeNumberXmlAttributes aNatNumAttr;
- bool bAttrBool;
- sal_uInt16 nAttrEnum;
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- OUString sAttrName = xAttrList->getNameByIndex( i );
- OUString sValue = xAttrList->getValueByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName );
-
- const SvXMLTokenMap& rTokenMap = pData->GetStyleAttrTokenMap();
- sal_uInt16 nToken = rTokenMap.Get( nPrefix, aLocalName );
- switch (nToken)
- {
- case XML_TOK_STYLE_ATTR_NAME:
- break;
- case XML_TOK_STYLE_ATTR_LANGUAGE:
- sLanguage = sValue;
- break;
- case XML_TOK_STYLE_ATTR_COUNTRY:
- sCountry = sValue;
- break;
- case XML_TOK_STYLE_ATTR_TITLE:
- sFormatTitle = sValue;
- break;
- case XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER:
- if ( SvXMLUnitConverter::convertBool( bAttrBool, sValue ) )
- bAutoOrder = bAttrBool;
- break;
- case XML_TOK_STYLE_ATTR_FORMAT_SOURCE:
- if ( SvXMLUnitConverter::convertEnum( nAttrEnum, sValue, aFormatSourceMap ) )
- bFromSystem = (sal_Bool) nAttrEnum;
- break;
- case XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW:
- if ( SvXMLUnitConverter::convertBool( bAttrBool, sValue ) )
- bTruncate = bAttrBool;
- break;
- case XML_TOK_STYLE_ATTR_VOLATILE:
- // volatile formats can be removed after importing
- // if not used in other styles
- if ( SvXMLUnitConverter::convertBool( bAttrBool, sValue ) )
- bRemoveAfterUse = bAttrBool;
- break;
- case XML_TOK_STYLE_ATTR_TRANSL_FORMAT:
- aNatNumAttr.Format = sValue;
- break;
- case XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE:
- aNatNumAttr.Locale.Language = sValue;
- break;
- case XML_TOK_STYLE_ATTR_TRANSL_COUNTRY:
- aNatNumAttr.Locale.Country = sValue;
- break;
- case XML_TOK_STYLE_ATTR_TRANSL_STYLE:
- aNatNumAttr.Style = sValue;
- break;
- }
- }
-
- if ( sLanguage.getLength() || sCountry.getLength() )
- {
- nFormatLang = MsLangId::convertIsoNamesToLanguage( sLanguage, sCountry );
- if ( nFormatLang == LANGUAGE_DONTKNOW )
- nFormatLang = LANGUAGE_SYSTEM; //! error handling for invalid locales?
- }
-
- if ( aNatNumAttr.Format.getLength() )
- {
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- if ( pFormatter )
- {
- sal_Int32 nNatNum = pFormatter->GetNatNum()->convertFromXmlAttributes( aNatNumAttr );
- aFormatCode.appendAscii( RTL_CONSTASCII_STRINGPARAM( "[NatNum" ) );
- aFormatCode.append( nNatNum, 10 );
-
- LanguageType eLang = MsLangId::convertLocaleToLanguage( aNatNumAttr.Locale );
- if ( eLang == LANGUAGE_DONTKNOW )
- eLang = LANGUAGE_SYSTEM; //! error handling for invalid locales?
- if ( eLang != nFormatLang && eLang != LANGUAGE_SYSTEM )
- {
- aFormatCode.appendAscii( RTL_CONSTASCII_STRINGPARAM( "][$-" ) );
- // language code in upper hex:
- aFormatCode.append( String::CreateFromInt32( sal_Int32( eLang ), 16 ).ToUpperAscii() );
- }
- aFormatCode.append( sal_Unicode(']') );
- }
- }
-}
-
-SvXMLNumFormatContext::SvXMLNumFormatContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList,
- const sal_Int32 nTempKey,
- SvXMLStylesContext& rStyles ) :
- SvXMLStyleContext( rImport, nPrfx, rLName, xAttrList, XML_STYLE_FAMILY_DATA_STYLE ),
- pData( NULL ),
- pStyles( &rStyles ),
- aMyConditions(),
- nType( 0 ),
- nKey(nTempKey),
- nFormatLang( LANGUAGE_SYSTEM ),
- bAutoOrder( sal_False ),
- bFromSystem( sal_False ),
- bTruncate( sal_True ),
- bAutoDec( sal_False ),
- bAutoInt( sal_False ),
- bHasExtraText( sal_False ),
- bHasLongDoW( sal_False ),
- bHasEra( sal_False ),
- bHasDateTime( sal_False ),
- bRemoveAfterUse( sal_False ),
- eDateDOW( XML_DEA_NONE ),
- eDateDay( XML_DEA_NONE ),
- eDateMonth( XML_DEA_NONE ),
- eDateYear( XML_DEA_NONE ),
- eDateHours( XML_DEA_NONE ),
- eDateMins( XML_DEA_NONE ),
- eDateSecs( XML_DEA_NONE ),
- bDateNoDefault( sal_False )
-{
- SetAttribute(XML_NAMESPACE_STYLE, GetXMLToken(XML_NAME), rLName);
-}
-
-SvXMLNumFormatContext::~SvXMLNumFormatContext()
-{
-}
-
-SvXMLImportContext* SvXMLNumFormatContext::CreateChildContext(
- sal_uInt16 nPrfx, const rtl::OUString& rLName,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList )
-{
- SvXMLImportContext* pContext = NULL;
-
- const SvXMLTokenMap& rTokenMap = pData->GetStyleElemTokenMap();
- sal_uInt16 nToken = rTokenMap.Get( nPrfx, rLName );
- switch (nToken)
- {
- case XML_TOK_STYLE_TEXT:
- case XML_TOK_STYLE_NUMBER:
- case XML_TOK_STYLE_SCIENTIFIC_NUMBER:
- case XML_TOK_STYLE_FRACTION:
- case XML_TOK_STYLE_CURRENCY_SYMBOL:
- case XML_TOK_STYLE_DAY:
- case XML_TOK_STYLE_MONTH:
- case XML_TOK_STYLE_YEAR:
- case XML_TOK_STYLE_ERA:
- case XML_TOK_STYLE_DAY_OF_WEEK:
- case XML_TOK_STYLE_WEEK_OF_YEAR:
- case XML_TOK_STYLE_QUARTER:
- case XML_TOK_STYLE_HOURS:
- case XML_TOK_STYLE_AM_PM:
- case XML_TOK_STYLE_MINUTES:
- case XML_TOK_STYLE_SECONDS:
- case XML_TOK_STYLE_BOOLEAN:
- case XML_TOK_STYLE_TEXT_CONTENT:
- pContext = new SvXMLNumFmtElementContext( GetImport(), nPrfx, rLName,
- *this, nToken, xAttrList );
- break;
-
- case XML_TOK_STYLE_PROPERTIES:
- pContext = new SvXMLNumFmtPropContext( GetImport(), nPrfx, rLName,
- *this, xAttrList );
- break;
- case XML_TOK_STYLE_MAP:
- {
- // SvXMLNumFmtMapContext::EndElement adds to aMyConditions,
- // so there's no need for an extra flag
- pContext = new SvXMLNumFmtMapContext( GetImport(), nPrfx, rLName,
- *this, xAttrList );
- }
- break;
- }
-
- if( !pContext )
- pContext = new SvXMLImportContext( GetImport(), nPrfx, rLName );
- return pContext;
-}
-
-sal_Int32 SvXMLNumFormatContext::GetKey()
-{
- if (nKey > -1)
- {
- if (bRemoveAfterUse)
- {
- // format is used -> don't remove
- bRemoveAfterUse = sal_False;
- if (pData)
- pData->SetUsed(nKey);
-
- // Add to import's list of keys now - CreateAndInsert didn't add
- // the style if bRemoveAfterUse was set.
- GetImport().AddNumberStyle( nKey, GetName() );
- }
- return nKey;
- }
- else
- {
- // reset bRemoveAfterUse before CreateAndInsert, so AddKey is called without bRemoveAfterUse set
- bRemoveAfterUse = sal_False;
- CreateAndInsert(sal_True);
- return nKey;
- }
-}
-
-sal_Int32 SvXMLNumFormatContext::PrivateGetKey()
-{
- // used for map elements in CreateAndInsert - don't reset bRemoveAfterUse flag
-
- if (nKey > -1)
- return nKey;
- else
- {
- CreateAndInsert(sal_True);
- return nKey;
- }
-}
-
-sal_Int32 SvXMLNumFormatContext::CreateAndInsert( com::sun::star::uno::Reference< com::sun::star::util::XNumberFormatsSupplier >& xFormatsSupplier )
-{
- if (nKey <= -1)
- {
- SvNumberFormatter* pFormatter = NULL;
- SvNumberFormatsSupplierObj* pObj =
- SvNumberFormatsSupplierObj::getImplementation( xFormatsSupplier );
- if (pObj)
- pFormatter = pObj->GetNumberFormatter();
-
- if ( pFormatter )
- return CreateAndInsert( pFormatter );
- else
- return -1;
- }
- else
- return nKey;
-}
-
-void SvXMLNumFormatContext::CreateAndInsert(sal_Bool /*bOverwrite*/)
-{
- if (!(nKey > -1))
- CreateAndInsert(pData->GetNumberFormatter());
-}
-
-sal_Int32 SvXMLNumFormatContext::CreateAndInsert(SvNumberFormatter* pFormatter)
-{
- if (!pFormatter)
- {
- OSL_FAIL("no number formatter");
- return -1;
- }
-
- sal_uInt32 nIndex = NUMBERFORMAT_ENTRY_NOT_FOUND;
-
- for (sal_uInt32 i = 0; i < aMyConditions.size(); i++)
- {
- SvXMLNumFormatContext* pStyle = (SvXMLNumFormatContext *)pStyles->FindStyleChildContext(
- XML_STYLE_FAMILY_DATA_STYLE, aMyConditions[i].sMapName, sal_False);
- if (pStyle)
- {
- if ((pStyle->PrivateGetKey() > -1)) // don't reset pStyle's bRemoveAfterUse flag
- AddCondition(i);
- }
- }
-
- if ( !aFormatCode.getLength() )
- {
- // insert empty format as empty string (with quotes)
- // #93901# this check has to be done before inserting the conditions
- aFormatCode.appendAscii("\"\""); // ""
- }
-
- aFormatCode.insert( 0, aConditions.makeStringAndClear() );
- OUString sFormat = aFormatCode.makeStringAndClear();
-
- // test special cases
-
- if ( bAutoDec ) // automatic decimal places
- {
- // #99391# adjust only if the format contains no text elements, no conditions
- // and no color definition (detected by the '[' at the start)
-
- if ( nType == XML_TOK_STYLES_NUMBER_STYLE && !bHasExtraText &&
- aMyConditions.size() == 0 && sFormat.toChar() != (sal_Unicode)'[' )
- nIndex = pFormatter->GetStandardIndex( nFormatLang );
- }
- if ( bAutoInt ) // automatic integer digits
- {
- //! only if two decimal places was set?
-
- if ( nType == XML_TOK_STYLES_NUMBER_STYLE && !bHasExtraText &&
- aMyConditions.size() == 0 && sFormat.toChar() != (sal_Unicode)'[' )
- nIndex = pFormatter->GetFormatIndex( NF_NUMBER_SYSTEM, nFormatLang );
- }
-
- // boolean is always the builtin boolean format
- // (no other boolean formats are implemented)
- if ( nType == XML_TOK_STYLES_BOOLEAN_STYLE )
- nIndex = pFormatter->GetFormatIndex( NF_BOOLEAN, nFormatLang );
-
- // check for default date formats
- if ( nType == XML_TOK_STYLES_DATE_STYLE && bAutoOrder && !bDateNoDefault )
- {
- NfIndexTableOffset eFormat = (NfIndexTableOffset) SvXMLNumFmtDefaults::GetDefaultDateFormat(
- eDateDOW, eDateDay, eDateMonth, eDateYear,
- eDateHours, eDateMins, eDateSecs, bFromSystem );
- if ( eFormat < NF_INDEX_TABLE_ENTRIES )
- {
- // #109651# if a date format has the automatic-order attribute and
- // contains exactly the elements of one of the default date formats,
- // use that default format, with the element order and separators
- // from the current locale settings
-
- nIndex = pFormatter->GetFormatIndex( eFormat, nFormatLang );
- }
- }
-
- if ( nIndex == NUMBERFORMAT_ENTRY_NOT_FOUND && sFormat.getLength() )
- {
- // insert by format string
-
- String aFormatStr( sFormat );
- nIndex = pFormatter->GetEntryKey( aFormatStr, nFormatLang );
- if ( nIndex == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- xub_StrLen nErrPos = 0;
- short l_nType = 0;
- sal_Bool bOk = pFormatter->PutEntry( aFormatStr, nErrPos, l_nType, nIndex, nFormatLang );
- if ( !bOk && nErrPos == 0 && aFormatStr != String(sFormat) )
- {
- // if the string was modified by PutEntry, look for an existing format
- // with the modified string
- nIndex = pFormatter->GetEntryKey( aFormatStr, nFormatLang );
- if ( nIndex != NUMBERFORMAT_ENTRY_NOT_FOUND )
- bOk = sal_True;
- }
- if (!bOk)
- nIndex = NUMBERFORMAT_ENTRY_NOT_FOUND;
- }
- }
-
-//! I18N doesn't provide SYSTEM or extended date information yet
- if ( nIndex != NUMBERFORMAT_ENTRY_NOT_FOUND && !bAutoOrder )
- {
- // use fixed-order formats instead of SYS... if bAutoOrder is false
- // (only if the format strings are equal for the locale)
-
- NfIndexTableOffset eOffset = pFormatter->GetIndexTableOffset( nIndex );
- if ( eOffset == NF_DATE_SYS_DMMMYYYY )
- {
- sal_uInt32 nNewIndex = pFormatter->GetFormatIndex( NF_DATE_DIN_DMMMYYYY, nFormatLang );
- const SvNumberformat* pOldEntry = pFormatter->GetEntry( nIndex );
- const SvNumberformat* pNewEntry = pFormatter->GetEntry( nNewIndex );
- if ( pOldEntry && pNewEntry && pOldEntry->GetFormatstring() == pNewEntry->GetFormatstring() )
- nIndex = nNewIndex;
- }
- else if ( eOffset == NF_DATE_SYS_DMMMMYYYY )
- {
- sal_uInt32 nNewIndex = pFormatter->GetFormatIndex( NF_DATE_DIN_DMMMMYYYY, nFormatLang );
- const SvNumberformat* pOldEntry = pFormatter->GetEntry( nIndex );
- const SvNumberformat* pNewEntry = pFormatter->GetEntry( nNewIndex );
- if ( pOldEntry && pNewEntry && pOldEntry->GetFormatstring() == pNewEntry->GetFormatstring() )
- nIndex = nNewIndex;
- }
- }
-
- if ((nIndex != NUMBERFORMAT_ENTRY_NOT_FOUND) && sFormatTitle.getLength())
- {
- SvNumberformat* pFormat = const_cast<SvNumberformat*>(pFormatter->GetEntry( nIndex ));
- if (pFormat)
- {
- String sTitle (sFormatTitle);
- pFormat->SetComment(sTitle);
- }
- }
-
- if ( nIndex == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- OSL_FAIL("invalid number format");
- nIndex = pFormatter->GetStandardIndex( nFormatLang );
- }
-
- pData->AddKey( nIndex, GetName(), bRemoveAfterUse );
- nKey = nIndex;
-
- // Add to import's list of keys (shared between styles and content import)
- // only if not volatile - formats are removed from NumberFormatter at the
- // end of each import (in SvXMLNumFmtHelper dtor).
- // If bRemoveAfterUse is reset later in GetKey, AddNumberStyle is called there.
-
- if (!bRemoveAfterUse)
- GetImport().AddNumberStyle( nKey, GetName() );
-
- return nKey;
-}
-
-void SvXMLNumFormatContext::Finish( sal_Bool bOverwrite )
-{
- SvXMLStyleContext::Finish( bOverwrite );
-}
-
-const LocaleDataWrapper& SvXMLNumFormatContext::GetLocaleData() const
-{
- return pData->GetLocaleData( nFormatLang );
-}
-
-void SvXMLNumFormatContext::AddToCode( const rtl::OUString& rString )
-{
- aFormatCode.append( rString );
- bHasExtraText = sal_True;
-}
-
-void SvXMLNumFormatContext::AddNumber( const SvXMLNumberInfo& rInfo )
-{
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- if (!pFormatter)
- return;
-
- // store special conditions
- bAutoDec = ( rInfo.nDecimals < 0 );
- bAutoInt = ( rInfo.nInteger < 0 );
-
- sal_uInt16 nPrec = 0;
- sal_uInt16 nLeading = 0;
- if ( rInfo.nDecimals >= 0 ) // < 0 : Default
- nPrec = (sal_uInt16) rInfo.nDecimals;
- if ( rInfo.nInteger >= 0 ) // < 0 : Default
- nLeading = (sal_uInt16) rInfo.nInteger;
-
- if ( bAutoDec )
- {
- if ( nType == XML_TOK_STYLES_CURRENCY_STYLE )
- {
- // for currency formats, "automatic decimals" is used for the automatic
- // currency format with (fixed) decimals from the locale settings
-
- const LocaleDataWrapper& rLoc = pData->GetLocaleData( nFormatLang );
- nPrec = rLoc.getCurrDigits();
- }
- else
- {
- // for other types, "automatic decimals" means dynamic determination of
- // decimals, as achieved with the "general" keyword
-
- aFormatCode.append( pFormatter->GetStandardName( nFormatLang ) );
- return;
- }
- }
- if ( bAutoInt )
- {
- //!...
- }
-
- sal_uInt16 nGenPrec = nPrec;
- if ( rInfo.bDecReplace || rInfo.bVarDecimals )
- nGenPrec = 0; // generate format without decimals...
-
- sal_Bool bGrouping = rInfo.bGrouping;
- sal_uInt16 nEmbeddedCount = rInfo.aEmbeddedElements.Count();
- if ( nEmbeddedCount )
- bGrouping = sal_False; // grouping and embedded characters can't be used together
-
- String aNumStr;
- sal_uInt32 nStdIndex = pFormatter->GetStandardIndex( nFormatLang );
- pFormatter->GenerateFormat( aNumStr, nStdIndex, nFormatLang,
- bGrouping, sal_False, nGenPrec, nLeading );
-
- if ( rInfo.nExpDigits >= 0 && nLeading == 0 && !bGrouping && nEmbeddedCount == 0 )
- {
- // #i43959# For scientific numbers, "#" in the integer part forces a digit,
- // so it has to be removed if nLeading is 0 (".00E+0", not "#.00E+0").
-
- aNumStr.EraseLeadingChars( (sal_Unicode)'#' );
- }
-
- if ( nEmbeddedCount )
- {
- // insert embedded strings into number string
- // only the integer part is supported
- // nZeroPos is the string position where format position 0 is inserted
-
- xub_StrLen nZeroPos = aNumStr.Search( pData->GetLocaleData( nFormatLang ).getNumDecimalSep() );
- if ( nZeroPos == STRING_NOTFOUND )
- nZeroPos = aNumStr.Len();
-
- // aEmbeddedElements is sorted - last entry has the largest position (leftmost)
- const SvXMLEmbeddedElement* pLastObj = rInfo.aEmbeddedElements[nEmbeddedCount - 1];
- sal_Int32 nLastFormatPos = pLastObj->nFormatPos;
- if ( nLastFormatPos >= nZeroPos )
- {
- // add '#' characters so all embedded texts are really embedded in digits
- // (there always has to be a digit before the leftmost embedded text)
-
- xub_StrLen nAddCount = (xub_StrLen)nLastFormatPos + 1 - nZeroPos;
- String aDigitStr;
- aDigitStr.Fill( nAddCount, (sal_Unicode)'#' );
- aNumStr.Insert( aDigitStr, 0 );
- nZeroPos = nZeroPos + nAddCount;
- }
-
- // aEmbeddedElements is sorted with ascending positions - loop is from right to left
- for (sal_uInt16 nElement = 0; nElement < nEmbeddedCount; nElement++)
- {
- const SvXMLEmbeddedElement* pObj = rInfo.aEmbeddedElements[nElement];
- sal_Int32 nFormatPos = pObj->nFormatPos;
- sal_Int32 nInsertPos = nZeroPos - nFormatPos;
- if ( nFormatPos >= 0 && nInsertPos >= 0 )
- {
- rtl::OUStringBuffer aContent( pObj->aText );
- // #107805# always quote embedded strings - even space would otherwise
- // be recognized as thousands separator in French.
- aContent.insert( 0, (sal_Unicode) '"' );
- aContent.append( (sal_Unicode) '"' );
-
- aNumStr.Insert( String( aContent.makeStringAndClear() ), (xub_StrLen)nInsertPos );
- }
- }
- }
-
- aFormatCode.append( aNumStr );
-
- if ( ( rInfo.bDecReplace || rInfo.bVarDecimals ) && nPrec ) // add decimal replacement (dashes)
- {
- // add dashes for explicit decimal replacement, # for variable decimals
- sal_Unicode cAdd = rInfo.bDecReplace ? '-' : '#';
-
- aFormatCode.append( pData->GetLocaleData( nFormatLang ).getNumDecimalSep() );
- for ( sal_uInt16 i=0; i<nPrec; i++)
- aFormatCode.append( cAdd );
- }
-
- // add extra thousands separators for display factor
-
- if ( rInfo.fDisplayFactor != 1.0 && rInfo.fDisplayFactor > 0.0 )
- {
- // test for 1.0 is just for optimization - nSepCount would be 0
-
- // one separator for each factor of 1000
- sal_Int32 nSepCount = (sal_Int32) ::rtl::math::round( log10(rInfo.fDisplayFactor) / 3.0 );
- if ( nSepCount > 0 )
- {
- OUString aSep = pData->GetLocaleData( nFormatLang ).getNumThousandSep();
- for ( sal_Int32 i=0; i<nSepCount; i++ )
- aFormatCode.append( aSep );
- }
- }
-}
-
-void SvXMLNumFormatContext::AddCurrency( const rtl::OUString& rContent, LanguageType nLang )
-{
- sal_Bool bAutomatic = sal_False;
- OUString aSymbol = rContent;
- if ( aSymbol.getLength() == 0 )
- {
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- if ( pFormatter )
- {
- pFormatter->ChangeIntl( nFormatLang );
- String sCurString, sDummy;
- pFormatter->GetCompatibilityCurrency( sCurString, sDummy );
- aSymbol = sCurString;
-
- bAutomatic = sal_True;
- }
- }
- else if ( nLang == LANGUAGE_SYSTEM && aSymbol.compareToAscii("CCC") == 0 )
- {
- // "CCC" is used for automatic long symbol
- bAutomatic = sal_True;
- }
-
- if ( bAutomatic )
- {
- // remove unnecessary quotes before automatic symbol (formats like "-(0DM)")
- // otherwise the currency symbol isn't recognized (#94048#)
-
- sal_Int32 nLength = aFormatCode.getLength();
- if ( nLength > 1 && aFormatCode.charAt( nLength-1 ) == '"' )
- {
- // find start of quoted string
- // When SvXMLNumFmtElementContext::EndElement creates escaped quotes,
- // they must be handled here, too.
-
- sal_Int32 nFirst = nLength - 2;
- while ( nFirst >= 0 && aFormatCode.charAt( nFirst ) != '"' )
- --nFirst;
- if ( nFirst >= 0 )
- {
- // remove both quotes from aFormatCode
- rtl::OUString aOld = aFormatCode.makeStringAndClear();
- if ( nFirst > 0 )
- aFormatCode.append( aOld.copy( 0, nFirst ) );
- if ( nLength > nFirst + 2 )
- aFormatCode.append( aOld.copy( nFirst + 1, nLength - nFirst - 2 ) );
- }
- }
- }
-
- if (!bAutomatic)
- aFormatCode.appendAscii( "[$" ); // intro for "new" currency symbols
-
- aFormatCode.append( aSymbol );
-
- if (!bAutomatic)
- {
- if ( nLang != LANGUAGE_SYSTEM )
- {
- // '-' sign and language code in hex:
- aFormatCode.append( (sal_Unicode) '-' );
- aFormatCode.append( String::CreateFromInt32( sal_Int32( nLang ), 16 ).ToUpperAscii() );
- }
-
- aFormatCode.append( (sal_Unicode) ']' ); // end of "new" currency symbol
- }
-}
-
-void SvXMLNumFormatContext::AddNfKeyword( sal_uInt16 nIndex )
-{
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- if (!pFormatter)
- return;
-
- if ( nIndex == NF_KEY_G || nIndex == NF_KEY_GG || nIndex == NF_KEY_GGG )
- bHasEra = sal_True;
-
- if ( nIndex == NF_KEY_NNNN )
- {
- nIndex = NF_KEY_NNN;
- bHasLongDoW = sal_True; // to remove string constant with separator
- }
-
- String sKeyword = pFormatter->GetKeyword( nFormatLang, nIndex );
-
- if ( nIndex == NF_KEY_H || nIndex == NF_KEY_HH ||
- nIndex == NF_KEY_MI || nIndex == NF_KEY_MMI ||
- nIndex == NF_KEY_S || nIndex == NF_KEY_SS )
- {
- if ( !bTruncate && !bHasDateTime )
- {
- // with truncate-on-overflow = false, add "[]" to first time part
-
- sKeyword.Insert( (sal_Unicode) '[', 0 );
- sKeyword.Append( (sal_Unicode) ']' );
- }
- bHasDateTime = sal_True;
- }
-
- aFormatCode.append( sKeyword );
-
- // collect the date elements that the format contains, to recognize default date formats
- switch ( nIndex )
- {
- case NF_KEY_NN: eDateDOW = XML_DEA_SHORT; break;
- case NF_KEY_NNN:
- case NF_KEY_NNNN: eDateDOW = XML_DEA_LONG; break;
- case NF_KEY_D: eDateDay = XML_DEA_SHORT; break;
- case NF_KEY_DD: eDateDay = XML_DEA_LONG; break;
- case NF_KEY_M: eDateMonth = XML_DEA_SHORT; break;
- case NF_KEY_MM: eDateMonth = XML_DEA_LONG; break;
- case NF_KEY_MMM: eDateMonth = XML_DEA_TEXTSHORT; break;
- case NF_KEY_MMMM: eDateMonth = XML_DEA_TEXTLONG; break;
- case NF_KEY_YY: eDateYear = XML_DEA_SHORT; break;
- case NF_KEY_YYYY: eDateYear = XML_DEA_LONG; break;
- case NF_KEY_H: eDateHours = XML_DEA_SHORT; break;
- case NF_KEY_HH: eDateHours = XML_DEA_LONG; break;
- case NF_KEY_MI: eDateMins = XML_DEA_SHORT; break;
- case NF_KEY_MMI: eDateMins = XML_DEA_LONG; break;
- case NF_KEY_S: eDateSecs = XML_DEA_SHORT; break;
- case NF_KEY_SS: eDateSecs = XML_DEA_LONG; break;
- case NF_KEY_AP:
- case NF_KEY_AMPM: break; // AM/PM may or may not be in date/time formats -> ignore by itself
- default:
- bDateNoDefault = sal_True; // any other element -> no default format
- }
-}
-
-sal_Bool lcl_IsAtEnd( rtl::OUStringBuffer& rBuffer, const String& rToken )
-{
- sal_Int32 nBufLen = rBuffer.getLength();
- xub_StrLen nTokLen = rToken.Len();
-
- if ( nTokLen > nBufLen )
- return sal_False;
-
- sal_Int32 nStartPos = nBufLen - nTokLen;
- for ( xub_StrLen nTokPos = 0; nTokPos < nTokLen; nTokPos++ )
- if ( rToken.GetChar( nTokPos ) != rBuffer.charAt( nStartPos + nTokPos ) )
- return sal_False;
-
- return sal_True;
-}
-
-sal_Bool SvXMLNumFormatContext::ReplaceNfKeyword( sal_uInt16 nOld, sal_uInt16 nNew )
-{
- // replaces one keyword with another if it is found at the end of the code
-
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- if (!pFormatter)
- return sal_False;
-
- String sOldStr = pFormatter->GetKeyword( nFormatLang, nOld );
- if ( lcl_IsAtEnd( aFormatCode, sOldStr ) )
- {
- // remove old keyword
- aFormatCode.setLength( aFormatCode.getLength() - sOldStr.Len() );
-
- // add new keyword
- String sNewStr = pFormatter->GetKeyword( nFormatLang, nNew );
- aFormatCode.append( sNewStr );
-
- return sal_True; // changed
- }
- return sal_False; // not found
-}
-
-void SvXMLNumFormatContext::AddCondition( const sal_Int32 nIndex )
-{
- rtl::OUString rApplyName = aMyConditions[nIndex].sMapName;
- rtl::OUString rCondition = aMyConditions[nIndex].sCondition;
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- sal_uInt32 l_nKey = pData->GetKeyForName( rApplyName );
- OUString sValue(RTL_CONSTASCII_USTRINGPARAM("value()")); //! define constant
- sal_Int32 nValLen = sValue.getLength();
-
- if ( pFormatter && l_nKey != NUMBERFORMAT_ENTRY_NOT_FOUND &&
- rCondition.copy( 0, nValLen ) == sValue )
- {
- //! test for valid conditions
- //! test for default conditions
-
- OUString sRealCond = rCondition.copy( nValLen, rCondition.getLength() - nValLen );
- sal_Bool bDefaultCond = sal_False;
-
- //! collect all conditions first and adjust default to >=0, >0 or <0 depending on count
- //! allow blanks in conditions
- sal_Bool bFirstCond = ( aConditions.getLength() == 0 );
- if ( bFirstCond && aMyConditions.size() == 1 && sRealCond.compareToAscii( ">=0" ) == 0 )
- bDefaultCond = sal_True;
-
- if ( nType == XML_TOK_STYLES_TEXT_STYLE && nIndex == 2 )
- {
- // The third condition in a number format with a text part can only be
- // "all other numbers", the condition string must be empty.
- bDefaultCond = sal_True;
- }
-
- if (!bDefaultCond)
- {
- sal_Int32 nPos = sRealCond.indexOf( '.' );
- if ( nPos >= 0 )
- { // #i8026# #103991# localize decimal separator
- const String& rDecSep = GetLocaleData().getNumDecimalSep();
- if ( rDecSep.Len() > 1 || rDecSep.GetChar(0) != '.' )
- sRealCond = sRealCond.replaceAt( nPos, 1, rDecSep );
- }
- aConditions.append( (sal_Unicode) '[' );
- aConditions.append( sRealCond );
- aConditions.append( (sal_Unicode) ']' );
- }
-
- const SvNumberformat* pFormat = pFormatter->GetEntry(l_nKey);
- if ( pFormat )
- aConditions.append( OUString( pFormat->GetFormatstring() ) );
-
- aConditions.append( (sal_Unicode) ';' );
- }
-}
-
-void SvXMLNumFormatContext::AddCondition( const sal_Int32 nIndex, const rtl::OUString& rFormat, const LocaleDataWrapper& rData )
-{
- rtl::OUString rCondition = aMyConditions[nIndex].sCondition;
- OUString sValue(RTL_CONSTASCII_USTRINGPARAM("value()")); //! define constant
- sal_Int32 nValLen = sValue.getLength();
-
- if ( rCondition.copy( 0, nValLen ) == sValue )
- {
- //! test for valid conditions
- //! test for default conditions
-
- OUString sRealCond = rCondition.copy( nValLen, rCondition.getLength() - nValLen );
- sal_Bool bDefaultCond = sal_False;
-
- //! collect all conditions first and adjust default to >=0, >0 or <0 depending on count
- //! allow blanks in conditions
- sal_Bool bFirstCond = ( aConditions.getLength() == 0 );
- if ( bFirstCond && aMyConditions.size() == 1 && sRealCond.compareToAscii( ">=0" ) == 0 )
- bDefaultCond = sal_True;
-
- if ( nType == XML_TOK_STYLES_TEXT_STYLE && nIndex == 2 )
- {
- // The third condition in a number format with a text part can only be
- // "all other numbers", the condition string must be empty.
- bDefaultCond = sal_True;
- }
-
- if (!bDefaultCond)
- {
- sal_Int32 nPos = sRealCond.indexOf( '.' );
- if ( nPos >= 0 )
- { // #i8026# #103991# localize decimal separator
- const String& rDecSep = rData.getNumDecimalSep();
- if ( rDecSep.Len() > 1 || rDecSep.GetChar(0) != '.' )
- sRealCond = sRealCond.replaceAt( nPos, 1, rDecSep );
- }
- aConditions.append( (sal_Unicode) '[' );
- aConditions.append( sRealCond );
- aConditions.append( (sal_Unicode) ']' );
- }
-
- aConditions.append( rFormat );
-
- aConditions.append( (sal_Unicode) ';' );
- }
-}
-
-void SvXMLNumFormatContext::AddCondition( const rtl::OUString& rCondition, const rtl::OUString& rApplyName )
-{
- MyCondition aCondition;
- aCondition.sCondition = rCondition;
- aCondition.sMapName = rApplyName;
- aMyConditions.push_back(aCondition);
-}
-
-void SvXMLNumFormatContext::AddColor( const Color& rColor )
-{
- SvNumberFormatter* pFormatter = pData->GetNumberFormatter();
- if (!pFormatter)
- return;
-
- OUStringBuffer aColName;
- for ( sal_uInt16 i=0; i<XML_NUMF_COLORCOUNT; i++ )
- if ( rColor == aNumFmtStdColors[i] )
- {
- aColName = OUString( pFormatter->GetKeyword( nFormatLang, sal::static_int_cast< sal_uInt16 >(NF_KEY_FIRSTCOLOR + i) ) );
- break;
- }
-
- if ( aColName.getLength() )
- {
- aColName.insert( 0, (sal_Unicode) '[' );
- aColName.append( (sal_Unicode) ']' );
- aFormatCode.insert( 0, aColName.makeStringAndClear() );
- }
-}
-
-void SvXMLNumFormatContext::UpdateCalendar( const rtl::OUString& rNewCalendar )
-{
- if ( rNewCalendar != sCalendar )
- {
- sCalendar = rNewCalendar;
- if ( sCalendar.getLength() )
- {
- aFormatCode.appendAscii( "[~" ); // intro for calendar code
- aFormatCode.append( sCalendar );
- aFormatCode.append( (sal_Unicode) ']' ); // end of "new" currency symbolcalendar code
- }
- }
-}
-
-sal_Bool SvXMLNumFormatContext::IsSystemLanguage()
-{
- return nFormatLang == LANGUAGE_SYSTEM;
-}
-
-//-------------------------------------------------------------------------
-
-//
-// SvXMLNumFmtHelper
-//
-
-SvXMLNumFmtHelper::SvXMLNumFmtHelper(
- const uno::Reference<util::XNumberFormatsSupplier>& rSupp,
- const uno::Reference<lang::XMultiServiceFactory>& xServiceFactory )
-: mxServiceFactory(xServiceFactory)
-{
- DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
-
- SvNumberFormatter* pFormatter = NULL;
- SvNumberFormatsSupplierObj* pObj =
- SvNumberFormatsSupplierObj::getImplementation( rSupp );
- if (pObj)
- pFormatter = pObj->GetNumberFormatter();
-
- pData = new SvXMLNumImpData( pFormatter, mxServiceFactory );
-}
-
-SvXMLNumFmtHelper::SvXMLNumFmtHelper(
- SvNumberFormatter* pNumberFormatter,
- const uno::Reference<lang::XMultiServiceFactory>& xServiceFactory )
-: mxServiceFactory(xServiceFactory)
-{
- DBG_ASSERT( mxServiceFactory.is(), "got no service manager" );
-
- pData = new SvXMLNumImpData( pNumberFormatter, mxServiceFactory );
-}
-
-SvXMLNumFmtHelper::~SvXMLNumFmtHelper()
-{
- // remove temporary (volatile) formats from NumberFormatter
- pData->RemoveVolatileFormats();
-
- delete pData;
-}
-
-SvXMLStyleContext* SvXMLNumFmtHelper::CreateChildContext( SvXMLImport& rImport,
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const uno::Reference<xml::sax::XAttributeList>& xAttrList,
- SvXMLStylesContext& rStyles )
-{
- SvXMLStyleContext* pContext = NULL;
-
- const SvXMLTokenMap& rTokenMap = pData->GetStylesElemTokenMap();
- sal_uInt16 nToken = rTokenMap.Get( nPrefix, rLocalName );
- switch (nToken)
- {
- case XML_TOK_STYLES_NUMBER_STYLE:
- case XML_TOK_STYLES_CURRENCY_STYLE:
- case XML_TOK_STYLES_PERCENTAGE_STYLE:
- case XML_TOK_STYLES_DATE_STYLE:
- case XML_TOK_STYLES_TIME_STYLE:
- case XML_TOK_STYLES_BOOLEAN_STYLE:
- case XML_TOK_STYLES_TEXT_STYLE:
- pContext = new SvXMLNumFormatContext( rImport, nPrefix, rLocalName,
- pData, nToken, xAttrList, rStyles );
- break;
- }
-
- // return NULL if not a data style, caller must handle other elements
- return pContext;
-}
-
-const SvXMLTokenMap& SvXMLNumFmtHelper::GetStylesElemTokenMap()
-{
- return pData->GetStylesElemTokenMap();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx
deleted file mode 100644
index 0b7c37ed4b..0000000000
--- a/xmloff/source/style/xmlnumi.cxx
+++ /dev/null
@@ -1,1397 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/awt/Size.hpp>
-#include <com/sun/star/awt/FontDescriptor.hpp>
-#include <com/sun/star/text/HoriOrientation.hpp>
-#include <com/sun/star/text/VertOrientation.hpp>
-#include <com/sun/star/text/PositionAndSpaceMode.hpp>
-#include <com/sun/star/text/LabelFollow.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/style/XStyle.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-
-#include <rtl/ustrbuf.hxx>
-
-#include <tools/urlobj.hxx>
-#include <tools/debug.hxx>
-#include <tools/fontenum.hxx>
-
-#include <xmloff/xmltkmap.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/XMLBase64ImportContext.hxx>
-#include <xmloff/xmltoken.hxx>
-
-#include <xmloff/i18nmap.hxx>
-#include <xmloff/xmluconv.hxx>
-#include "fonthdl.hxx"
-#include <xmloff/XMLFontStylesContext.hxx>
-#include <xmloff/families.hxx>
-#include <xmloff/maptype.hxx>
-
-#include <xmloff/xmlnumi.hxx>
-
-#define _SVSTDARR_USHORTS
-#include <svl/svstdarr.hxx>
-
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::style;
-using namespace ::com::sun::star::text;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::frame;
-using namespace ::xmloff::token;
-using namespace ::com::sun::star::io;
-
-using rtl::OUString;
-using rtl::OUStringBuffer;
-
-static sal_Char const XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE[] =
- "SymbolTextDistance";
-static sal_Char const XML_UNO_NAME_NRULE_PARENT_NUMBERING[] =
- "ParentNumbering";
-static sal_Char const XML_UNO_NAME_NRULE_CHAR_STYLE_NAME[] =
- "CharStyleName";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_CHAR[] ="BulletChar";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_RELSIZE[] = "BulletRelSize";
-static sal_Char const XML_UNO_NAME_NRULE_GRAPHIC_SIZE[] =
- "GraphicSize";
-static sal_Char const XML_UNO_NAME_NRULE_VERT_ORIENT[] ="VertOrient";
-
-static sal_Char const XML_UNO_NAME_NRULE_NUMBERINGTYPE[] = "NumberingType";
-static sal_Char const XML_UNO_NAME_NRULE_PREFIX[] = "Prefix";
-static sal_Char const XML_UNO_NAME_NRULE_SUFFIX[] = "Suffix";
-static sal_Char const XML_UNO_NAME_NRULE_ADJUST[] = "Adjust";
-static sal_Char const XML_UNO_NAME_NRULE_LEFT_MARGIN[] = "LeftMargin";
-static sal_Char const XML_UNO_NAME_NRULE_FIRST_LINE_OFFSET[] =
- "FirstLineOffset";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_FONT[] = "BulletFont";
-static sal_Char const XML_UNO_NAME_NRULE_GRAPHICURL[] = "GraphicURL";
-static sal_Char const XML_UNO_NAME_NRULE_START_WITH[] = "StartWith";
-static sal_Char const XML_UNO_NAME_NRULE_BULLET_COLOR[] = "BulletColor";
-static sal_Char const XML_UNO_NAME_NRULE_POSITION_AND_SPACE_MODE[] = "PositionAndSpaceMode";
-static sal_Char const XML_UNO_NAME_NRULE_LABEL_FOLLOWED_BY[] = "LabelFollowedBy";
-static sal_Char const XML_UNO_NAME_NRULE_LISTTAB_STOP_POSITION[] = "ListtabStopPosition";
-static sal_Char const XML_UNO_NAME_NRULE_FIRST_LINE_INDENT[] = "FirstLineIndent";
-static sal_Char const XML_UNO_NAME_NRULE_INDENT_AT[] = "IndentAt";
-
-// ---------------------------------------------------------------------
-
-class SvxXMLListLevelStyleContext_Impl;
-
-class SvxXMLListLevelStyleAttrContext_Impl : public SvXMLImportContext
-{
- SvxXMLListLevelStyleContext_Impl& rListLevel;
-
-public:
-
- SvxXMLListLevelStyleAttrContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList >& xAttrList,
- SvxXMLListLevelStyleContext_Impl& rLLevel );
- virtual ~SvxXMLListLevelStyleAttrContext_Impl();
-
- virtual SvXMLImportContext *CreateChildContext(
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList );
-};
-
-// ---------------------------------------------------------------------
-
-class SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl : public SvXMLImportContext
-{
- SvxXMLListLevelStyleContext_Impl& rListLevel;
-
-public:
-
- SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList >& xAttrList,
- SvxXMLListLevelStyleContext_Impl& rLLevel );
- virtual ~SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl();
-};
-
-// ---------------------------------------------------------------------
-
-enum SvxXMLTextListLevelStyleAttrTokens
-{
- XML_TOK_TEXT_LEVEL_ATTR_LEVEL,
- XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME,
- XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR,
- XML_TOK_TEXT_LEVEL_ATTR_HREF,
- XML_TOK_TEXT_LEVEL_ATTR_TYPE,
- XML_TOK_TEXT_LEVEL_ATTR_SHOW,
- XML_TOK_TEXT_LEVEL_ATTR_ACTUATE,
- XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT,
- XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX,
- XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX,
- XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC,
- XML_TOK_TEXT_LEVEL_ATTR_START_VALUE,
- XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS,
-
- XML_TOK_TEXT_LEVEL_ATTR_END=XML_TOK_UNKNOWN
-};
-
-const SvXMLTokenMapEntry* lcl_getLevelAttrTokenMap()
-{
- static SvXMLTokenMapEntry aLevelAttrTokenMap[] =
- {
- { XML_NAMESPACE_TEXT, XML_LEVEL, XML_TOK_TEXT_LEVEL_ATTR_LEVEL },
- { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME },
- { XML_NAMESPACE_TEXT, XML_BULLET_CHAR, XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR },
- { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_LEVEL_ATTR_HREF },
- { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TEXT_LEVEL_ATTR_TYPE },
- { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_TEXT_LEVEL_ATTR_SHOW },
- { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_TEXT_LEVEL_ATTR_ACTUATE },
-
- { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT },
- { XML_NAMESPACE_STYLE, XML_NUM_PREFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX },
- { XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX },
- { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC },
- { XML_NAMESPACE_TEXT, XML_START_VALUE, XML_TOK_TEXT_LEVEL_ATTR_START_VALUE },
- { XML_NAMESPACE_TEXT, XML_DISPLAY_LEVELS, XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS },
-
- XML_TOKEN_MAP_END
- };
- return aLevelAttrTokenMap;
-}
-
-class SvxXMLListLevelStyleContext_Impl : public SvXMLImportContext
-{
- friend class SvxXMLListLevelStyleAttrContext_Impl;
- const OUString sStarBats;
- const OUString sStarMath;
-
- OUString sPrefix;
- OUString sSuffix;
- OUString sTextStyleName;
- OUString sNumFormat;
- OUString sNumLetterSync;
- OUString sBulletFontName;
- OUString sBulletFontStyleName;
- OUString sImageURL;
-
- Reference < XOutputStream > xBase64Stream;
-
- sal_Int32 nLevel;
- sal_Int32 nSpaceBefore;
- sal_Int32 nMinLabelWidth;
- sal_Int32 nMinLabelDist;
- sal_Int32 nImageWidth;
- sal_Int32 nImageHeight;
- sal_Int16 nNumStartValue;
- sal_Int16 nNumDisplayLevels;
-
- sal_Int16 eAdjust;
- sal_Int16 eBulletFontFamily;
- sal_Int16 eBulletFontPitch;
- rtl_TextEncoding eBulletFontEncoding;
- sal_Int16 eImageVertOrient;
-
- sal_Unicode cBullet;
-
- sal_Int16 nRelSize;
- Color aColor;
-
- sal_Int16 ePosAndSpaceMode;
- sal_Int16 eLabelFollowedBy;
- sal_Int32 nListtabStopPosition;
- sal_Int32 nFirstLineIndent;
- sal_Int32 nIndentAt;
-
- sal_Bool bBullet : 1;
- sal_Bool bImage : 1;
- sal_Bool bNum : 1;
- sal_Bool bHasColor : 1;
-
- void SetRelSize( sal_Int16 nRel ) { nRelSize = nRel; }
- void SetColor( sal_Int32 _aColor ) { aColor = _aColor; bHasColor = sal_True; }
- void SetSpaceBefore( sal_Int32 nSet ) { nSpaceBefore = nSet; }
- void SetMinLabelWidth( sal_Int32 nSet ) { nMinLabelWidth = nSet; }
- void SetMinLabelDist( sal_Int32 nSet ) { nMinLabelDist = nSet; }
- void SetAdjust( sal_Int16 eSet ) { eAdjust = eSet; }
-
- void SetBulletFontName( const OUString& rSet ) { sBulletFontName = rSet; }
- void SetBulletFontStyleName( const OUString& rSet )
- { sBulletFontStyleName = rSet; }
- void SetBulletFontFamily( sal_Int16 eSet ) { eBulletFontFamily = eSet; }
- void SetBulletFontPitch( sal_Int16 eSet ) { eBulletFontPitch = eSet; }
- void SetBulletFontEncoding( rtl_TextEncoding eSet )
- { eBulletFontEncoding = eSet; }
-
- void SetImageWidth( sal_Int32 nSet ) { nImageWidth = nSet; }
- void SetImageHeight( sal_Int32 nSet ) { nImageHeight = nSet; }
- void SetImageVertOrient( sal_Int16 eSet )
- { eImageVertOrient = eSet; }
-
-public:
-
- SvxXMLListLevelStyleContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList );
- virtual ~SvxXMLListLevelStyleContext_Impl();
-
- virtual SvXMLImportContext *CreateChildContext(
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList );
-
- sal_Int32 GetLevel() const { return nLevel; }
- Sequence<beans::PropertyValue> GetProperties(
- const SvI18NMap *pI18NMap=0 );
-
- inline void SetPosAndSpaceMode( sal_Int16 eValue )
- {
- ePosAndSpaceMode = eValue;
- }
- inline void SetLabelFollowedBy( sal_Int16 eValue )
- {
- eLabelFollowedBy = eValue;
- }
- inline void SetListtabStopPosition( sal_Int32 nValue )
- {
- nListtabStopPosition = nValue;
- }
- inline void SetFirstLineIndent( sal_Int32 nValue )
- {
- nFirstLineIndent = nValue;
- }
- inline void SetIndentAt( sal_Int32 nValue )
- {
- nIndentAt = nValue;
- }
-};
-
-SvxXMLListLevelStyleContext_Impl::SvxXMLListLevelStyleContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
-
-: SvXMLImportContext( rImport, nPrfx, rLName )
-, sStarBats( RTL_CONSTASCII_USTRINGPARAM( "StarBats" ) )
-, sStarMath( RTL_CONSTASCII_USTRINGPARAM( "StarMath" ) )
-, sNumFormat( OUString(RTL_CONSTASCII_USTRINGPARAM("1")) )
-, nLevel( -1L )
-, nSpaceBefore( 0L )
-, nMinLabelWidth( 0L )
-, nMinLabelDist( 0L )
-, nImageWidth( 0L )
-, nImageHeight( 0L )
-, nNumStartValue( 1 )
-, nNumDisplayLevels( 1 )
-, eAdjust( HoriOrientation::LEFT )
-, eBulletFontFamily( FAMILY_DONTKNOW )
-, eBulletFontPitch( PITCH_DONTKNOW )
-, eBulletFontEncoding( RTL_TEXTENCODING_DONTKNOW )
-, eImageVertOrient(0)
-, cBullet( 0 )
-, nRelSize(0)
-, aColor( 0 )
-, ePosAndSpaceMode( PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION )
-, eLabelFollowedBy( LabelFollow::LISTTAB )
-, nListtabStopPosition( 0 )
-, nFirstLineIndent( 0 )
-, nIndentAt( 0 )
-, bBullet( sal_False )
-, bImage( sal_False )
-, bNum( sal_False )
-, bHasColor( sal_False )
-{
- if( IsXMLToken( rLName, XML_LIST_LEVEL_STYLE_NUMBER ) ||
- IsXMLToken( rLName, XML_OUTLINE_LEVEL_STYLE ) )
- bNum = sal_True;
- else if( IsXMLToken( rLName, XML_LIST_LEVEL_STYLE_BULLET ) )
- bBullet = sal_True;
- else if( IsXMLToken( rLName, XML_LIST_LEVEL_STYLE_IMAGE ) )
- bImage = sal_True;
-
- SvXMLTokenMap aTokenMap( lcl_getLevelAttrTokenMap() );
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- switch( aTokenMap.Get( nPrefix, aLocalName ) )
- {
- case XML_TOK_TEXT_LEVEL_ATTR_LEVEL:
- nLevel = rValue.toInt32();
- if( nLevel >= 1L )
- nLevel--;
- else
- nLevel = 0;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME:
- sTextStyleName = rValue;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR:
- cBullet = rValue[0];
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_HREF:
- if( bImage )
- sImageURL = rValue;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_TYPE:
- case XML_TOK_TEXT_LEVEL_ATTR_SHOW:
- case XML_TOK_TEXT_LEVEL_ATTR_ACTUATE:
- // This properties will be ignored
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT:
- if( bNum )
- sNumFormat = rValue;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX:
- sPrefix = rValue;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX:
- sSuffix = rValue;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC:
- if( bNum )
- sNumLetterSync = rValue;
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_START_VALUE:
- if( bNum )
- {
- sal_Int32 nTmp = rValue.toInt32();
- nNumStartValue =
- (nTmp < 0L) ? 1 : ( (nTmp>SHRT_MAX) ? SHRT_MAX
- : (sal_Int16)nTmp );
- }
- break;
- case XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS:
- if( bNum )
- {
- sal_Int32 nTmp = rValue.toInt32();
- nNumDisplayLevels =
- (nTmp < 1L) ? 1 : ( (nTmp>SHRT_MAX) ? SHRT_MAX
- : (sal_Int16)nTmp );
- }
- break;
- }
- }
-}
-
-SvxXMLListLevelStyleContext_Impl::~SvxXMLListLevelStyleContext_Impl()
-{
-}
-
-SvXMLImportContext *SvxXMLListLevelStyleContext_Impl::CreateChildContext(
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
- if( XML_NAMESPACE_STYLE == nPrefix &&
- ( IsXMLToken( rLocalName, XML_LIST_LEVEL_PROPERTIES ) ||
- IsXMLToken( rLocalName, XML_TEXT_PROPERTIES ) ) )
- {
- pContext = new SvxXMLListLevelStyleAttrContext_Impl( GetImport(),
- nPrefix,
- rLocalName,
- xAttrList,
- *this );
- }
- else if( (XML_NAMESPACE_OFFICE == nPrefix) && xmloff::token::IsXMLToken( rLocalName,
- xmloff::token::XML_BINARY_DATA ) )
- {
- if( bImage && !sImageURL.getLength() && !xBase64Stream.is() )
- {
- xBase64Stream = GetImport().GetStreamForGraphicObjectURLFromBase64();
- if( xBase64Stream.is() )
- pContext = new XMLBase64ImportContext( GetImport(), nPrefix,
- rLocalName, xAttrList,
- xBase64Stream );
- }
- }
- if( !pContext )
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-
- return pContext;
-}
-
-Sequence<beans::PropertyValue> SvxXMLListLevelStyleContext_Impl::GetProperties(
- const SvI18NMap *pI18NMap )
-{
- sal_Int16 eType;
-
- sal_Int32 nCount = 0;
- if( bBullet )
- {
- eType = NumberingType::CHAR_SPECIAL;
- nCount = cBullet ? 15 : 14;
- }
- if( bImage )
- {
- eType = NumberingType::BITMAP;
- nCount = 15;
-
- if( (sImageURL.getLength() > 0L) || xBase64Stream.is() )
- nCount++;
- }
- if( bNum )
- {
- eType = NumberingType::ARABIC;
- GetImport().GetMM100UnitConverter().convertNumFormat(
- eType, sNumFormat, sNumLetterSync, sal_True );
- nCount = 15;
- }
-
- if( ( bBullet || bNum ) && nRelSize )
- nCount++;
-
- if( !bImage && bHasColor )
- {
- nCount++;
- }
-
- if (bBullet && sSuffix.getLength())
- {
- sal_uInt16 const nVersion(GetImport().getGeneratorVersion());
- sal_Int32 nUPD;
- sal_Int32 nBuildId;
- if (GetImport().getBuildIds(nUPD, nBuildId)
- && ( (SvXMLImport::OOo_1x == nVersion)
- || (SvXMLImport::OOo_2x == nVersion)
- || (310 == nUPD) || (320 == nUPD) || (330 == nUPD)
- || ((300 == nUPD) && (nBuildId <= 9573))))
- {
- // #i93908# OOo < 3.4 wrote a bogus suffix for bullet chars
- sSuffix = ::rtl::OUString(); // clear it
- }
- }
-
- Sequence<beans::PropertyValue> aPropSeq( nCount );
- if( nCount > 0 )
- {
- beans::PropertyValue *pProps = aPropSeq.getArray();
- sal_Int32 nPos = 0;
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_NUMBERINGTYPE ));
- pProps[nPos++].Value <<= (sal_Int16)eType ;
-
- pProps[nPos].Name = OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_PREFIX ));
- pProps[nPos++].Value <<= sPrefix;
-
- pProps[nPos].Name = OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_SUFFIX ));
- pProps[nPos++].Value <<= sSuffix;
-
- pProps[nPos].Name = OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_ADJUST ));
- pProps[nPos++].Value <<= eAdjust;
-
- sal_Int32 nLeftMargin = nSpaceBefore + nMinLabelWidth;
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_LEFT_MARGIN ));
- pProps[nPos++].Value <<= (sal_Int32)nLeftMargin;
-
- sal_Int32 nFirstLineOffset = -nMinLabelWidth;
-
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_FIRST_LINE_OFFSET ));
- pProps[nPos++].Value <<= (sal_Int32)nFirstLineOffset;
-
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_SYMBOL_TEXT_DISTANCE));
- pProps[nPos++].Value <<= (sal_Int16)nMinLabelDist;
-
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_POSITION_AND_SPACE_MODE));
- pProps[nPos++].Value <<= (sal_Int16)ePosAndSpaceMode;
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_LABEL_FOLLOWED_BY));
- pProps[nPos++].Value <<= (sal_Int16)eLabelFollowedBy;
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_LISTTAB_STOP_POSITION));
- pProps[nPos++].Value <<= (sal_Int32)nListtabStopPosition;
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_FIRST_LINE_INDENT));
- pProps[nPos++].Value <<= (sal_Int32)nFirstLineIndent;
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_INDENT_AT));
- pProps[nPos++].Value <<= (sal_Int32)nIndentAt;
-
- OUString sDisplayTextStyleName = GetImport().GetStyleDisplayName(
- XML_STYLE_FAMILY_TEXT_TEXT, sTextStyleName );
- OUString sStyleName = sDisplayTextStyleName;
- if( sStyleName.getLength() && pI18NMap )
- sStyleName = pI18NMap->Get( SFX_STYLE_FAMILY_CHAR, sStyleName );
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_CHAR_STYLE_NAME ));
- pProps[nPos++].Value <<= sDisplayTextStyleName;
-
- if( bBullet )
- {
- awt::FontDescriptor aFDesc;
- aFDesc.Name = sBulletFontName;
- if( sBulletFontName.getLength() )
- {
- aFDesc.StyleName = sBulletFontStyleName;
- aFDesc.Family = eBulletFontFamily;
- aFDesc.Pitch = eBulletFontPitch;
- aFDesc.CharSet = eBulletFontEncoding;
- aFDesc.Weight = WEIGHT_DONTKNOW;
- sal_Bool bStarSymbol = sal_False;
- if( aFDesc.Name.equalsIgnoreAsciiCase( sStarBats ) )
- {
- cBullet = GetImport().ConvStarBatsCharToStarSymbol( cBullet );
- bStarSymbol = sal_True;
- }
- else if( aFDesc.Name.equalsIgnoreAsciiCase( sStarMath ) )
- {
- cBullet = GetImport().ConvStarMathCharToStarSymbol( cBullet );
- bStarSymbol = sal_True;
- }
- if( bStarSymbol )
- aFDesc.Name =
- OUString( RTL_CONSTASCII_USTRINGPARAM("StarSymbol" ) );
- }
-
- if( cBullet )
- {
- OUStringBuffer sTmp(1);
- sTmp.append( cBullet );
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_BULLET_CHAR ));
- pProps[nPos++].Value <<= sTmp.makeStringAndClear();
- }
-
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_BULLET_FONT ));
- pProps[nPos++].Value <<= aFDesc;
-
- }
-
- if( bImage )
- {
- OUString sStr( sImageURL );
- if( sImageURL.getLength() )
- {
- sStr = GetImport().ResolveGraphicObjectURL( sImageURL,
- sal_False );
- }
- else if( xBase64Stream.is() )
- {
- sStr = GetImport().ResolveGraphicObjectURLFromBase64( xBase64Stream );
- }
-
- if( sStr.getLength() )
- {
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_GRAPHICURL ));
- pProps[nPos++].Value <<= sStr;
- }
-
- awt::Size aSize( nImageWidth, nImageHeight );
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_GRAPHIC_SIZE ));
- pProps[nPos++].Value <<= aSize;
-
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_VERT_ORIENT ));
- pProps[nPos++].Value <<= (sal_Int16)eImageVertOrient;
- }
-
- if( bNum )
- {
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_START_WITH ));
- pProps[nPos++].Value <<= (sal_Int16)nNumStartValue;
-
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM(XML_UNO_NAME_NRULE_PARENT_NUMBERING));
- pProps[nPos++].Value <<= (sal_Int16)nNumDisplayLevels;
- }
-
- if( ( bNum || bBullet ) && nRelSize )
- {
- pProps[nPos].Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_BULLET_RELSIZE ));
- pProps[nPos++].Value <<= nRelSize;
- }
-
- if( !bImage && bHasColor )
- {
- pProps[nPos].Name = OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_BULLET_COLOR ));
- pProps[nPos++].Value <<= (sal_Int32)aColor.GetColor();
- }
-
- DBG_ASSERT( nPos == nCount, "array under/overflow" );
- }
-
- return aPropSeq;
-}
-
-// ---------------------------------------------------------------------
-
-enum SvxXMLStyleAttributesAttrTokens
-{
- XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_END=XML_TOK_UNKNOWN
-};
-const SvXMLTokenMapEntry* lcl_getStyleAttributesAttrTokenMap()
-{
- static SvXMLTokenMapEntry aStyleAttributesAttrTokenMap[] =
- {
- { XML_NAMESPACE_TEXT, XML_SPACE_BEFORE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE },
- { XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH },
- { XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST },
- { XML_NAMESPACE_FO, XML_TEXT_ALIGN,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN },
- { XML_NAMESPACE_STYLE, XML_FONT_NAME,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME },
- { XML_NAMESPACE_FO, XML_FONT_FAMILY,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY },
- { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC },
- { XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME },
- { XML_NAMESPACE_STYLE, XML_FONT_PITCH,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH },
- { XML_NAMESPACE_STYLE, XML_FONT_CHARSET,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET },
- { XML_NAMESPACE_STYLE, XML_VERTICAL_POS,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS },
- { XML_NAMESPACE_STYLE, XML_VERTICAL_REL,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL },
- { XML_NAMESPACE_FO, XML_WIDTH,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH },
- { XML_NAMESPACE_FO, XML_HEIGHT,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT },
- { XML_NAMESPACE_FO, XML_COLOR,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR },
- { XML_NAMESPACE_STYLE, XML_USE_WINDOW_FONT_COLOR,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR },
- { XML_NAMESPACE_FO, XML_FONT_SIZE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE },
- { XML_NAMESPACE_TEXT, XML_LIST_LEVEL_POSITION_AND_SPACE_MODE,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE },
- XML_TOKEN_MAP_END
- };
- return aStyleAttributesAttrTokenMap;
-}
-SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
- SvxXMLListLevelStyleContext_Impl& rLLevel ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rListLevel( rLLevel )
-{
- SvXMLTokenMap aTokenMap( lcl_getStyleAttributesAttrTokenMap() );
- SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter();
-
- OUString sFontName, sFontFamily, sFontStyleName, sFontFamilyGeneric,
- sFontPitch, sFontCharset;
- OUString sVerticalPos, sVerticalRel;
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- sal_Int32 nVal;
- switch( aTokenMap.Get( nPrefix, aLocalName ) )
- {
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE:
- if( rUnitConv.convertMeasure( nVal, rValue, SHRT_MIN, SHRT_MAX ) )
- rListLevel.SetSpaceBefore( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH:
- if( rUnitConv.convertMeasure( nVal, rValue, 0, SHRT_MAX ) )
- rListLevel.SetMinLabelWidth( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST:
- if( rUnitConv.convertMeasure( nVal, rValue, 0, USHRT_MAX ) )
- rListLevel.SetMinLabelDist( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN:
- if( rValue.getLength() )
- {
- sal_Int16 eAdjust = HoriOrientation::LEFT;
- if( IsXMLToken( rValue, XML_CENTER ) )
- eAdjust = HoriOrientation::CENTER;
- else if( IsXMLToken( rValue, XML_END ) )
- eAdjust = HoriOrientation::RIGHT;
- rListLevel.SetAdjust( eAdjust );
- }
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME:
- sFontName = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY:
- sFontFamily = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC:
- sFontFamilyGeneric = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME:
- sFontStyleName = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH:
- sFontPitch = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET:
- sFontCharset = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS:
- sVerticalPos = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL:
- sVerticalRel = rValue;
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH:
- if( rUnitConv.convertMeasure( nVal, rValue, 0, SAL_MAX_INT32) )
- rListLevel.SetImageWidth( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT:
- if( rUnitConv.convertMeasure( nVal, rValue, 0, SAL_MAX_INT32) )
- rListLevel.SetImageHeight( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR:
- {
- Color aColor;
- if( SvXMLUnitConverter::convertColor( aColor, rValue ) )
- rListLevel.SetColor( (sal_Int32)aColor.GetColor() );
- }
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR:
- {
- if( IsXMLToken( rValue, XML_TRUE ) )
- rListLevel.SetColor( (sal_Int32)0xffffffff );
- }
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE:
- if(SvXMLUnitConverter::convertPercent( nVal, rValue ) )
- rListLevel.SetRelSize( (sal_Int16)nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE:
- {
- sal_Int16 ePosAndSpaceMode = PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION;
- if( IsXMLToken( rValue, XML_LABEL_ALIGNMENT ) )
- ePosAndSpaceMode = PositionAndSpaceMode::LABEL_ALIGNMENT;
- rListLevel.SetPosAndSpaceMode( ePosAndSpaceMode );
- }
- break;
- }
- }
-
- if( sFontName.getLength() )
- {
- const XMLFontStylesContext *pFontDecls =
- GetImport().GetTextImport()->GetFontDecls();
- if( pFontDecls )
- {
- ::std::vector < XMLPropertyState > aProps;
- if( pFontDecls->FillProperties( sFontName, aProps, 0, 1, 2, 3, 4 ) )
- {
- OUString sTmp;
- sal_Int16 nTmp = 0;
- ::std::vector< XMLPropertyState >::iterator i;
- for( i = aProps.begin(); i != aProps.end(); ++i )
- {
- switch( i->mnIndex )
- {
- case 0:
- i->maValue >>= sTmp;
- rListLevel.SetBulletFontName( sTmp);
- break;
- case 1:
- i->maValue >>= sTmp;
- rListLevel.SetBulletFontStyleName( sTmp );
- break;
- case 2:
- i->maValue >>= nTmp;
- rListLevel.SetBulletFontFamily( nTmp );
- break;
- case 3:
- i->maValue >>= nTmp;
- rListLevel.SetBulletFontPitch( nTmp );
- break;
- case 4:
- i->maValue >>= nTmp;
- rListLevel.SetBulletFontEncoding( nTmp );
- break;
- }
- }
- }
- }
- }
- if( sFontFamily.getLength() )
- {
- String sEmpty;
- Any aAny;
-
- XMLFontFamilyNamePropHdl aFamilyNameHdl;
- if( aFamilyNameHdl.importXML( sFontFamily, aAny, rUnitConv ) )
- {
- OUString sTmp;
- aAny >>= sTmp;
- rListLevel.SetBulletFontName( sTmp);
- }
-
- XMLFontFamilyPropHdl aFamilyHdl;
- if( sFontFamilyGeneric.getLength() &&
- aFamilyHdl.importXML( sFontFamilyGeneric, aAny, rUnitConv ) )
- {
- sal_Int16 nTmp = 0;
- aAny >>= nTmp;
- rListLevel.SetBulletFontFamily( nTmp );
- }
-
- if( sFontStyleName.getLength() )
- rListLevel.SetBulletFontStyleName( sFontStyleName );
-
- XMLFontPitchPropHdl aPitchHdl;
- if( sFontPitch.getLength() &&
- aPitchHdl.importXML( sFontPitch, aAny, rUnitConv ) )
- {
- sal_Int16 nTmp = 0;
- aAny >>= nTmp;
- rListLevel.SetBulletFontPitch( nTmp );
- }
-
- XMLFontEncodingPropHdl aEncHdl;
- if( sFontCharset.getLength() &&
- aEncHdl.importXML( sFontCharset, aAny, rUnitConv ) )
- {
- sal_Int16 nTmp = 0;
- aAny >>= nTmp;
- rListLevel.SetBulletFontEncoding( nTmp );
- }
- }
-
- sal_Int16 eVertOrient = VertOrientation::LINE_CENTER;
- if( sVerticalPos.getLength() )
- {
- if( IsXMLToken( sVerticalPos, XML_TOP ) )
- eVertOrient = VertOrientation::LINE_TOP;
- else if( IsXMLToken( sVerticalPos, XML_BOTTOM ) )
- eVertOrient = VertOrientation::LINE_BOTTOM;
- }
- if( sVerticalRel.getLength() )
- {
- if( IsXMLToken( sVerticalRel, XML_BASELINE ) )
- {
- // TOP and BOTTOM are exchanged for a baseline relation
- switch( eVertOrient )
- {
- case VertOrientation::LINE_TOP:
- eVertOrient = VertOrientation::BOTTOM;
- break;
- case VertOrientation::LINE_CENTER:
- eVertOrient = VertOrientation::CENTER;
- break;
- case VertOrientation::LINE_BOTTOM:
- eVertOrient = VertOrientation::TOP;
- break;
- }
- }
- else if( IsXMLToken( sVerticalRel, XML_CHAR ) )
- {
- switch( eVertOrient )
- {
- case VertOrientation::LINE_TOP:
- eVertOrient = VertOrientation::CHAR_TOP;
- break;
- case VertOrientation::LINE_CENTER:
- eVertOrient = VertOrientation::CHAR_CENTER;
- break;
- case VertOrientation::LINE_BOTTOM:
- eVertOrient = VertOrientation::CHAR_BOTTOM;
- break;
- }
- }
- }
- rListLevel.SetImageVertOrient( eVertOrient );
-}
-
-SvxXMLListLevelStyleAttrContext_Impl::~SvxXMLListLevelStyleAttrContext_Impl()
-{
-}
-
-SvXMLImportContext* SvxXMLListLevelStyleAttrContext_Impl::CreateChildContext(
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
- if ( XML_NAMESPACE_STYLE == nPrefix &&
- IsXMLToken( rLocalName, XML_LIST_LEVEL_LABEL_ALIGNMENT ) )
- {
- pContext = new SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl( GetImport(),
- nPrefix,
- rLocalName,
- xAttrList,
- rListLevel );
- }
- if( !pContext )
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-
- return pContext;
-}
-
-// ---------------------------------------------------------------------
-
-enum SvxXMLStyleAttributesLabelAlignmentAttrTokens
-{
- XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT,
-
- XML_TOK_STYLE_ATTRIBUTES_LABEL_ALIGNMENT_ATTR_END=XML_TOK_UNKNOWN
-};
-const SvXMLTokenMapEntry* lcl_getStyleAlignmentAttributesAttrTokenMap()
-{
- static SvXMLTokenMapEntry aStyleAlignmentAttributesAttrTokenMap[] =
- {
- { XML_NAMESPACE_TEXT, XML_LABEL_FOLLOWED_BY,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY },
- { XML_NAMESPACE_TEXT, XML_LIST_TAB_STOP_POSITION,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION },
- { XML_NAMESPACE_FO, XML_TEXT_INDENT,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT },
- { XML_NAMESPACE_FO, XML_MARGIN_LEFT,
- XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT },
-
- XML_TOKEN_MAP_END
- };
- return aStyleAlignmentAttributesAttrTokenMap;
-}
-SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
- SvxXMLListLevelStyleContext_Impl& rLLevel ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- rListLevel( rLLevel )
-{
- SvXMLTokenMap aTokenMap( lcl_getStyleAlignmentAttributesAttrTokenMap() );
- SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter();
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- sal_Int32 nVal;
- switch( aTokenMap.Get( nPrefix, aLocalName ) )
- {
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY:
- {
- sal_Int16 eLabelFollowedBy = LabelFollow::LISTTAB;
- if( IsXMLToken( rValue, XML_SPACE ) )
- eLabelFollowedBy = LabelFollow::SPACE;
- else if( IsXMLToken( rValue, XML_NOTHING ) )
- eLabelFollowedBy = LabelFollow::NOTHING;
- rListLevel.SetLabelFollowedBy( eLabelFollowedBy );
- }
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION:
- if( rUnitConv.convertMeasure( nVal, rValue, 0, SHRT_MAX ) )
- rListLevel.SetListtabStopPosition( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT:
- if( rUnitConv.convertMeasure( nVal, rValue, SHRT_MIN, SHRT_MAX ) )
- rListLevel.SetFirstLineIndent( nVal );
- break;
- case XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT:
- if( rUnitConv.convertMeasure( nVal, rValue, SHRT_MIN, SHRT_MAX ) )
- rListLevel.SetIndentAt( nVal );
- break;
- }
- }
-}
-
-SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::~SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl()
-{
-}
-
-// ---------------------------------------------------------------------
-
-typedef SvxXMLListLevelStyleContext_Impl *SvxXMLListLevelStyleContext_ImplPtr;
-SV_DECL_PTRARR( SvxXMLListStyle_Impl, SvxXMLListLevelStyleContext_ImplPtr,
- 10, 5 )
-
-void SvxXMLListStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
- const OUString& rLocalName,
- const OUString& rValue )
-{
- if( XML_NAMESPACE_TEXT == nPrefixKey &&
- IsXMLToken( rLocalName, XML_CONSECUTIVE_NUMBERING ) )
- {
- bConsecutive = IsXMLToken( rValue, XML_TRUE );
- }
- else
- {
- SvXMLStyleContext::SetAttribute( nPrefixKey, rLocalName, rValue );
- }
-}
-
-
-SvxXMLListStyleContext::SvxXMLListStyleContext( SvXMLImport& rImport,
- sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
- sal_Bool bOutl )
-: SvXMLStyleContext( rImport, nPrfx, rLName, xAttrList, bOutl ? XML_STYLE_FAMILY_TEXT_OUTLINE : XML_STYLE_FAMILY_TEXT_LIST )
-, sIsPhysical( RTL_CONSTASCII_USTRINGPARAM( "IsPhysical" ) )
-, sNumberingRules( RTL_CONSTASCII_USTRINGPARAM( "NumberingRules" ) )
-, sName( RTL_CONSTASCII_USTRINGPARAM( "Name" ) )
-, sIsContinuousNumbering( RTL_CONSTASCII_USTRINGPARAM( "IsContinuousNumbering" ) )
-, pLevelStyles( 0 )
-, nLevels( 0 )
-, bConsecutive( sal_False )
-, bOutline( bOutl )
-{
-}
-
-SvxXMLListStyleContext::~SvxXMLListStyleContext()
-{
- if( pLevelStyles )
- {
- while( pLevelStyles->Count() )
- {
- sal_uInt16 n = pLevelStyles->Count() - 1;
- SvxXMLListLevelStyleContext_Impl *pStyle = (*pLevelStyles)[n];
- pLevelStyles->Remove( n, 1 );
- pStyle->ReleaseRef();
- }
- }
-
- delete pLevelStyles;
-}
-
-TYPEINIT1( SvxXMLListStyleContext, SvXMLStyleContext );
-
-SvXMLImportContext *SvxXMLListStyleContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
-
- if( XML_NAMESPACE_TEXT == nPrefix &&
- ( bOutline
- ? IsXMLToken( rLocalName, XML_OUTLINE_LEVEL_STYLE )
- : ( IsXMLToken( rLocalName, XML_LIST_LEVEL_STYLE_NUMBER ) ||
- IsXMLToken( rLocalName, XML_LIST_LEVEL_STYLE_BULLET ) ||
- IsXMLToken( rLocalName, XML_LIST_LEVEL_STYLE_IMAGE ) ) ) )
- {
- SvxXMLListLevelStyleContext_Impl *pLevelStyle =
- new SvxXMLListLevelStyleContext_Impl( GetImport(), nPrefix,
- rLocalName, xAttrList );
- if( !pLevelStyles )
- pLevelStyles = new SvxXMLListStyle_Impl;
- pLevelStyles->Insert( pLevelStyle, pLevelStyles->Count() );
- pLevelStyle->AddRef();
-
- pContext = pLevelStyle;
- }
- else
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-
- return pContext;
-}
-
-void SvxXMLListStyleContext::FillUnoNumRule(
- const Reference< container::XIndexReplace > & rNumRule,
- const SvI18NMap *pI18NMap ) const
-{
- try
- {
- if( pLevelStyles && rNumRule.is() )
- {
- sal_uInt16 nCount = pLevelStyles->Count();
- sal_Int32 l_nLevels = rNumRule->getCount();
- for( sal_uInt16 i=0; i < nCount; i++ )
- {
- SvxXMLListLevelStyleContext_Impl *pLevelStyle =
- (*pLevelStyles)[i];
- sal_Int32 nLevel = pLevelStyle->GetLevel();
- if( nLevel >= 0 && nLevel < l_nLevels )
- {
- Sequence<beans::PropertyValue> aProps =
- pLevelStyle->GetProperties( pI18NMap );
- Any aAny;
- aAny <<= aProps;
- rNumRule->replaceByIndex( nLevel, aAny );
- }
- }
- }
-
- Reference < XPropertySet > xPropSet( rNumRule, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo;
- if (xPropSet.is())
- xPropSetInfo = xPropSet->getPropertySetInfo();
- if( xPropSetInfo.is() &&
- xPropSetInfo->hasPropertyByName( sIsContinuousNumbering ) )
- {
- Any aAny;
- sal_Bool bTmp = bConsecutive;
- aAny.setValue( &bTmp, ::getBooleanCppuType() );
- xPropSet->setPropertyValue( sIsContinuousNumbering, aAny );
- }
- }
- catch( Exception& )
- {
- OSL_FAIL( "SvxXMLListStyleContext::FillUnoNumRule - Exception catched" );
- }
-}
-
-void SvxXMLListStyleContext::CreateAndInsertLate( sal_Bool bOverwrite )
-{
- if( bOutline )
- {
- if( bOverwrite )
- {
- const Reference< XIndexReplace >& rNumRule =
- GetImport().GetTextImport()->GetChapterNumbering();
- // We don't set xNumberingRules here, to avoid using them
- // as numbering rules.
- if( rNumRule.is() )
- FillUnoNumRule( rNumRule, 0 );
- }
- }
- else
- {
- Reference < XStyle > xStyle;
- const OUString& rName = GetDisplayName();
- if( 0 == rName.getLength() )
- {
- SetValid( sal_False );
- return;
- }
-
- const Reference < XNameContainer >& rNumStyles =
- GetImport().GetTextImport()->GetNumberingStyles();
- if( !rNumStyles.is() )
- {
- SetValid( sal_False );
- return;
- }
-
- sal_Bool bNew = sal_False;
- if( rNumStyles->hasByName( rName ) )
- {
- Any aAny = rNumStyles->getByName( rName );
- aAny >>= xStyle;
- }
- else
- {
- Reference< XMultiServiceFactory > xFactory( GetImport().GetModel(),
- UNO_QUERY );
- DBG_ASSERT( xFactory.is(), "no factory" );
- if( !xFactory.is() )
- return;
-
- Reference < XInterface > xIfc = xFactory->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.style.NumberingStyle")) );
- if( !xIfc.is() )
- return;
- Reference < XStyle > xTmp( xIfc, UNO_QUERY );
- xStyle = xTmp;
- if( !xStyle.is() )
- return;
-
- Any aAny;
- aAny <<= xStyle;
- rNumStyles->insertByName( rName, aAny );
- bNew = sal_True;
- }
-
- Reference < XPropertySet > xPropSet( xStyle, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo =
- xPropSet->getPropertySetInfo();
- if( !bNew && xPropSetInfo->hasPropertyByName( sIsPhysical ) )
- {
- Any aAny = xPropSet->getPropertyValue( sIsPhysical );
- bNew = !*(sal_Bool *)aAny.getValue();
- }
- if( rName != GetName() )
- GetImport().AddStyleDisplayName( XML_STYLE_FAMILY_TEXT_LIST,
- GetName(), rName );
-
- Any aAny = xPropSet->getPropertyValue( sNumberingRules );
- aAny >>= xNumRules;
- nLevels = xNumRules->getCount();
- if( bOverwrite || bNew )
- {
- FillUnoNumRule( xNumRules, 0 );
- aAny <<= xNumRules;
- xPropSet->setPropertyValue( sNumberingRules, aAny );
- }
- else
- {
- SetValid( sal_False );
- }
-
- SetNew( bNew );
- }
-}
-
-void SvxXMLListStyleContext::CreateAndInsertAuto() const
-{
- DBG_ASSERT( !bOutline, "Outlines cannot be inserted here" );
- DBG_ASSERT( !xNumRules.is(), "Numbering Rule is existing already" );
-
- const OUString& rName = GetName();
- if( bOutline || xNumRules.is() || 0 == rName.getLength() )
- {
- ((SvxXMLListStyleContext *)this)->SetValid( sal_False );
- return;
- }
-
- ((SvxXMLListStyleContext *)this)->xNumRules = CreateNumRule(
- GetImport().GetModel() );
- ((SvxXMLListStyleContext *)this)->nLevels = xNumRules->getCount();
-
- FillUnoNumRule( xNumRules, 0 );
-}
-
-Reference < XIndexReplace > SvxXMLListStyleContext::CreateNumRule(
- const Reference < XModel > & rModel )
-{
- Reference<XIndexReplace> xNumRule;
-
- Reference< XMultiServiceFactory > xFactory( rModel, UNO_QUERY );
- DBG_ASSERT( xFactory.is(), "no factory" );
- if( !xFactory.is() )
- return xNumRule;
-
- Reference < XInterface > xIfc = xFactory->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.text.NumberingRules")) );
- if( !xIfc.is() )
- return xNumRule;
-
- xNumRule = Reference<XIndexReplace>( xIfc, UNO_QUERY );
- DBG_ASSERT( xNumRule.is(), "go no numbering rule" );
-
- return xNumRule;
-}
-
-void SvxXMLListStyleContext::SetDefaultStyle(
- const Reference < XIndexReplace > & rNumRule,
- sal_Int16 nLevel,
- sal_Bool bOrdered )
-{
- Sequence<beans::PropertyValue> aPropSeq( bOrdered ? 1 : 4 );
- beans::PropertyValue *pProps = aPropSeq.getArray();
-
- pProps->Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_NUMBERINGTYPE ));
- (pProps++)->Value <<= (sal_Int16)(bOrdered ? NumberingType::ARABIC
- : NumberingType::CHAR_SPECIAL );
- if( !bOrdered )
- {
- // TODO: Bullet-Font
- awt::FontDescriptor aFDesc;
- aFDesc.Name = OUString(
-#if defined UNX
- RTL_CONSTASCII_USTRINGPARAM( "starbats" )
-#else
- RTL_CONSTASCII_USTRINGPARAM( "StarBats" )
-#endif
- );
- aFDesc.Family = FAMILY_DONTKNOW ;
- aFDesc.Pitch = PITCH_DONTKNOW ;
- aFDesc.CharSet = RTL_TEXTENCODING_SYMBOL ;
- aFDesc.Weight = WEIGHT_DONTKNOW;
- pProps->Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_BULLET_FONT ));
- (pProps++)->Value <<= aFDesc;
-
- OUStringBuffer sTmp(1);
- sTmp.append( (sal_Unicode)(0xF000 + 149) );
- pProps->Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_BULLET_CHAR ));
- (pProps++)->Value <<= sTmp.makeStringAndClear();
- pProps->Name =
- OUString(RTL_CONSTASCII_USTRINGPARAM( XML_UNO_NAME_NRULE_CHAR_STYLE_NAME ));
- (pProps++)->Value <<=
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Numbering Symbols" ) );
- }
-
- Any aAny;
- aAny <<= aPropSeq;
- rNumRule->replaceByIndex( nLevel, aAny );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlprcon.cxx b/xmloff/source/style/xmlprcon.cxx
deleted file mode 100644
index c5941c1f76..0000000000
--- a/xmloff/source/style/xmlprcon.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/xmlimp.hxx>
-
-
-#include <xmloff/xmlprcon.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::std;
-
-SvXMLPropertySetContext::SvXMLPropertySetContext(
- SvXMLImport& rImp, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList,
- sal_uInt32 nFam,
- vector< XMLPropertyState > &rProps,
- const UniReference < SvXMLImportPropertyMapper > &rMap,
- sal_Int32 nSIdx, sal_Int32 nEIdx )
-: SvXMLImportContext( rImp, nPrfx, rLName )
-, mnStartIdx( nSIdx )
-, mnEndIdx( nEIdx )
-, mnFamily( nFam )
-, mrProperties( rProps )
-, mxMapper( rMap )
-{
- mxMapper->importXML( mrProperties, xAttrList,
- GetImport().GetMM100UnitConverter(),
- GetImport().GetNamespaceMap(), mnFamily,
- mnStartIdx, mnEndIdx );
-}
-
-SvXMLPropertySetContext::~SvXMLPropertySetContext()
-{
-}
-
-SvXMLImportContext *SvXMLPropertySetContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList >& xAttrList )
-{
- UniReference< XMLPropertySetMapper > aSetMapper(
- mxMapper->getPropertySetMapper() );
- sal_Int32 nEntryIndex = aSetMapper->GetEntryIndex( nPrefix, rLocalName,
- mnFamily, mnStartIdx );
-
- if( ( nEntryIndex != -1 ) && (-1 == mnEndIdx || nEntryIndex < mnEndIdx ) &&
- ( 0 != ( aSetMapper->GetEntryFlags( nEntryIndex )
- & MID_FLAG_ELEMENT_ITEM_IMPORT ) ) )
- {
- XMLPropertyState aProp( nEntryIndex );
- return CreateChildContext( nPrefix, rLocalName, xAttrList,
- mrProperties, aProp );
- }
- else
- {
- return new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-}
-
-/** This method is called from this instance implementation of
- CreateChildContext if the element matches an entry in the
- SvXMLImportItemMapper with the mid flag MID_FLAG_ELEMENT
-*/
-SvXMLImportContext *SvXMLPropertySetContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const rtl::OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList >&,
- ::std::vector< XMLPropertyState > &,
- const XMLPropertyState& )
-{
- return new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlprhdl.cxx b/xmloff/source/style/xmlprhdl.cxx
deleted file mode 100644
index e8cf1844ca..0000000000
--- a/xmloff/source/style/xmlprhdl.cxx
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <xmloff/xmlprhdl.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-XMLPropertyHandler::~XMLPropertyHandler()
-{
- // does nothing
-}
-
-bool XMLPropertyHandler::equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const
-{
- return (r1 == r2);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlprmap.cxx b/xmloff/source/style/xmlprmap.cxx
deleted file mode 100644
index ad823f683b..0000000000
--- a/xmloff/source/style/xmlprmap.cxx
+++ /dev/null
@@ -1,255 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <tools/debug.hxx>
-#include <xmloff/xmlprhdl.hxx>
-#include "xmlbahdl.hxx"
-#include <xmloff/xmlprmap.hxx>
-#include <xmloff/xmltypes.hxx>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <xmloff/xmltoken.hxx>
-
-
-using namespace ::std;
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using ::xmloff::token::GetXMLToken;
-
-XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
- const XMLPropertyMapEntry& rMapEntry,
- const UniReference< XMLPropertyHandlerFactory >& rFactory ) :
- sXMLAttributeName( GetXMLToken(rMapEntry.meXMLName) ),
- sAPIPropertyName( OUString(rMapEntry.msApiName, rMapEntry.nApiNameLength,
- RTL_TEXTENCODING_ASCII_US ) ),
- nXMLNameSpace( rMapEntry.mnNameSpace ),
- nType( rMapEntry.mnType ),
- nContextId( rMapEntry.mnContextId ),
- nEarliestODFVersionForExport( rMapEntry.mnEarliestODFVersionForExport ),
- pHdl( rFactory->GetPropertyHandler( rMapEntry.mnType & MID_FLAG_MASK ) )
-{
-}
-
-XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
- const XMLPropertySetMapperEntry_Impl& rEntry ) :
- sXMLAttributeName( rEntry.sXMLAttributeName),
- sAPIPropertyName( rEntry.sAPIPropertyName),
- nXMLNameSpace( rEntry.nXMLNameSpace),
- nType( rEntry.nType),
- nContextId( rEntry.nContextId),
- nEarliestODFVersionForExport( rEntry.nEarliestODFVersionForExport ),
- pHdl( rEntry.pHdl)
-{
- DBG_ASSERT( pHdl, "Unknown XML property type handler!" );
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Ctor
-//
-XMLPropertySetMapper::XMLPropertySetMapper(
- const XMLPropertyMapEntry* pEntries,
- const UniReference< XMLPropertyHandlerFactory >& rFactory )
-{
- aHdlFactories.push_back( rFactory );
- if( pEntries )
- {
- const XMLPropertyMapEntry* pIter = pEntries;
-
- // count entries
- while( pIter->msApiName )
- {
- XMLPropertySetMapperEntry_Impl aEntry( *pIter, rFactory );
- aMapEntries.push_back( aEntry );
- pIter++;
- }
- }
-}
-
-XMLPropertySetMapper::~XMLPropertySetMapper()
-{
-}
-
-void XMLPropertySetMapper::AddMapperEntry(
- const UniReference < XMLPropertySetMapper >& rMapper )
-{
- for( vector < UniReference < XMLPropertyHandlerFactory > >::iterator
- aFIter = rMapper->aHdlFactories.begin();
- aFIter != rMapper->aHdlFactories.end();
- ++aFIter )
- {
- aHdlFactories.push_back( *aFIter );
- }
-
- for( vector < XMLPropertySetMapperEntry_Impl >::iterator
- aEIter = rMapper->aMapEntries.begin();
- aEIter != rMapper->aMapEntries.end();
- ++aEIter )
- {
- aMapEntries.push_back( *aEIter );
- }
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Export a Property
-//
-sal_Bool XMLPropertySetMapper::exportXML(
- OUString& rStrExpValue,
- const XMLPropertyState& rProperty,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
-
- const XMLPropertyHandler* pHdl = GetPropertyHandler( rProperty.mnIndex );
-
- DBG_ASSERT( pHdl, "Unknown XML Type!" );
- if( pHdl )
- bRet = pHdl->exportXML( rStrExpValue, rProperty.maValue,
- rUnitConverter );
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Import a Property
-//
-sal_Bool XMLPropertySetMapper::importXML(
- const OUString& rStrImpValue,
- XMLPropertyState& rProperty,
- const SvXMLUnitConverter& rUnitConverter ) const
-{
- sal_Bool bRet = sal_False;
-
- const XMLPropertyHandler* pHdl = GetPropertyHandler( rProperty.mnIndex );
-
- if( pHdl )
- bRet = pHdl->importXML( rStrImpValue, rProperty.maValue,
- rUnitConverter );
-
- return bRet;
-}
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Search for the given name and the namespace in the list and return
-// the index of the entry
-// If there is no matching entry the method returns -1
-//
-sal_Int32 XMLPropertySetMapper::GetEntryIndex(
- sal_uInt16 nNamespace,
- const OUString& rStrName,
- sal_uInt32 nPropType,
- sal_Int32 nStartAt /* = -1 */ ) const
-{
- sal_Int32 nEntries = GetEntryCount();
- sal_Int32 nIndex= nStartAt == - 1? 0 : nStartAt+1;
-
- if ( nEntries )
- {
- do
- {
- const XMLPropertySetMapperEntry_Impl& rEntry = aMapEntries[nIndex];
- if( (!nPropType || nPropType == rEntry.GetPropType()) &&
- rEntry.nXMLNameSpace == nNamespace &&
- rStrName == rEntry.sXMLAttributeName )
- return nIndex;
- else
- nIndex++;
-
- } while( nIndex<nEntries );
- }
-
- return -1;
-}
-
-
-/** searches for an entry that matches the given api name, namespace and local name or -1 if nothing found */
-sal_Int32 XMLPropertySetMapper::FindEntryIndex(
- const sal_Char* sApiName,
- sal_uInt16 nNameSpace,
- const OUString& sXMLName ) const
-{
- sal_Int32 nIndex = 0;
- sal_Int32 nEntries = GetEntryCount();
-
- do
- {
- const XMLPropertySetMapperEntry_Impl& rEntry = aMapEntries[nIndex];
- if( rEntry.nXMLNameSpace == nNameSpace &&
- rEntry.sXMLAttributeName.equals( sXMLName ) &&
- 0 == rEntry.sAPIPropertyName.compareToAscii( sApiName ) )
- return nIndex;
- else
- nIndex++;
-
- } while( nIndex < nEntries );
-
- return -1;
-}
-
-sal_Int32 XMLPropertySetMapper::FindEntryIndex( const sal_Int16 nContextId ) const
-{
- const sal_Int32 nEntries = GetEntryCount();
-
- if ( nEntries )
- {
- sal_Int32 nIndex = 0;
- do
- {
- const XMLPropertySetMapperEntry_Impl& rEntry = aMapEntries[nIndex];
- if( rEntry.nContextId == nContextId )
- return nIndex;
- else
- nIndex++;
-
- } while( nIndex < nEntries );
- }
-
- return -1;
-}
-
-void XMLPropertySetMapper::RemoveEntry( sal_Int32 nIndex )
-{
- const sal_Int32 nEntries = GetEntryCount();
- if( nIndex>=nEntries || nIndex<0 )
- return;
- vector < XMLPropertySetMapperEntry_Impl >::iterator aEIter = aMapEntries.begin();
- for( sal_Int32 nN=0; nN<nIndex; nN++ )
- ++aEIter;
- aMapEntries.erase( aEIter );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx
deleted file mode 100644
index f8f36ae84c..0000000000
--- a/xmloff/source/style/xmlstyle.cxx
+++ /dev/null
@@ -1,954 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/xml/sax/SAXParseException.hpp>
-#include <com/sun/star/xml/sax/XExtendedDocumentHandler.hpp>
-#include <com/sun/star/xml/sax/SAXException.hpp>
-#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
-#include <com/sun/star/xml/sax/XAttributeList.hpp>
-#include <com/sun/star/xml/sax/XLocator.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
-#include <com/sun/star/style/XAutoStylesSupplier.hpp>
-#include <com/sun/star/style/XAutoStyleFamily.hpp>
-#include "PageMasterPropMapper.hxx"
-#include <tools/debug.hxx>
-#include <svl/cntnrsrt.hxx>
-#include <svl/itemset.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-
-#include <xmloff/families.hxx>
-#include <xmloff/xmlimp.hxx>
-#include <xmloff/xmlnumi.hxx>
-#include <xmloff/xmlimppr.hxx>
-#include <xmloff/xmlstyle.hxx>
-#include <xmloff/txtstyli.hxx>
-#include <xmloff/txtprmap.hxx>
-#include <xmloff/xmlnumfi.hxx>
-#include "XMLChartStyleContext.hxx"
-#include "XMLChartPropertySetMapper.hxx"
-#include <xmloff/XMLShapeStyleContext.hxx>
-#include "FillStyleContext.hxx"
-#include "XMLFootnoteConfigurationImportContext.hxx"
-#include "XMLIndexBibliographyConfigurationContext.hxx"
-#include "XMLLineNumberingImportContext.hxx"
-#include "PageMasterImportContext.hxx"
-#include "PageMasterImportPropMapper.hxx"
-
-#include <vector>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-using ::std::vector;
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::style;
-using namespace ::xmloff::token;
-
-// ---------------------------------------------------------------------
-
-static SvXMLTokenMapEntry aStyleStylesElemTokenMap[] =
-{
- { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLE_STYLE },
- { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLE_PAGE_MASTER },
- { XML_NAMESPACE_TEXT, XML_LIST_STYLE, XML_TOK_TEXT_LIST_STYLE },
- { XML_NAMESPACE_TEXT, XML_OUTLINE_STYLE, XML_TOK_TEXT_OUTLINE },
- { XML_NAMESPACE_STYLE, XML_DEFAULT_STYLE, XML_TOK_STYLE_DEFAULT_STYLE },
- { XML_NAMESPACE_DRAW, XML_GRADIENT, XML_TOK_STYLES_GRADIENTSTYLES },
- { XML_NAMESPACE_DRAW, XML_HATCH, XML_TOK_STYLES_HATCHSTYLES },
- { XML_NAMESPACE_DRAW, XML_FILL_IMAGE, XML_TOK_STYLES_BITMAPSTYLES },
- { XML_NAMESPACE_DRAW, XML_OPACITY, XML_TOK_STYLES_TRANSGRADIENTSTYLES },
- { XML_NAMESPACE_DRAW, XML_MARKER, XML_TOK_STYLES_MARKERSTYLES },
- { XML_NAMESPACE_DRAW, XML_STROKE_DASH, XML_TOK_STYLES_DASHSTYLES },
- { XML_NAMESPACE_TEXT, XML_NOTES_CONFIGURATION, XML_TOK_TEXT_NOTE_CONFIG },
- { XML_NAMESPACE_TEXT, XML_BIBLIOGRAPHY_CONFIGURATION, XML_TOK_TEXT_BIBLIOGRAPHY_CONFIG },
- { XML_NAMESPACE_TEXT, XML_LINENUMBERING_CONFIGURATION,XML_TOK_TEXT_LINENUMBERING_CONFIG },
- { XML_NAMESPACE_STYLE, XML_DEFAULT_PAGE_LAYOUT, XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT },
- XML_TOKEN_MAP_END
-};
-
-const SvXMLTokenMap& SvXMLStylesContext::GetStyleStylesElemTokenMap()
-{
- if( !mpStyleStylesElemTokenMap )
- mpStyleStylesElemTokenMap =
- new SvXMLTokenMap( aStyleStylesElemTokenMap );
-
- return *mpStyleStylesElemTokenMap;
-}
-
-// ---------------------------------------------------------------------
-
-void SvXMLStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
- const OUString& rLocalName,
- const OUString& rValue )
-{
- // TODO: use a map here
- if( XML_NAMESPACE_STYLE == nPrefixKey )
- {
- if( IsXMLToken( rLocalName, XML_FAMILY ) )
- {
- if( IsXMLToken( rValue, XML_PARAGRAPH ) )
- mnFamily = (sal_uInt16)SFX_STYLE_FAMILY_PARA;
- else if( IsXMLToken( rValue, XML_TEXT ) )
- mnFamily = (sal_uInt16)SFX_STYLE_FAMILY_CHAR;
- }
- else if( IsXMLToken( rLocalName, XML_NAME ) )
- {
- maName = rValue;
- }
- else if( IsXMLToken( rLocalName, XML_DISPLAY_NAME ) )
- {
- maDisplayName = rValue;
- }
- else if( IsXMLToken( rLocalName, XML_PARENT_STYLE_NAME ) )
- {
- maParentName = rValue;
- }
- else if( IsXMLToken( rLocalName, XML_NEXT_STYLE_NAME ) )
- {
- maFollow = rValue;
- }
- else if( IsXMLToken( rLocalName, XML_HELP_FILE_NAME ) )
- {
- maHelpFile = rValue;
- }
- else if( IsXMLToken( rLocalName, XML_HELP_ID ) )
- {
- sal_Int32 nTmp = rValue.toInt32();
- mnHelpId =
- (nTmp < 0L) ? 0U : ( (nTmp > USHRT_MAX) ? USHRT_MAX
- : (sal_uInt16)nTmp );
- }
- }
-}
-
-TYPEINIT1( SvXMLStyleContext, SvXMLImportContext );
-
-SvXMLStyleContext::SvXMLStyleContext(
- SvXMLImport& rImp, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList >&,
- sal_uInt16 nFam, sal_Bool bDefault ) :
- SvXMLImportContext( rImp, nPrfx, rLName ),
- mnHelpId( UCHAR_MAX ),
- mnFamily( nFam ),
- mbValid( sal_True ),
- mbNew( sal_True ),
- mbDefaultStyle( bDefault )
-{
-}
-
-SvXMLStyleContext::~SvXMLStyleContext()
-{
-}
-
-SvXMLImportContext *SvXMLStyleContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & )
-{
- return new SvXMLImportContext( GetImport(), nPrefix, rLocalName );;
-}
-
-void SvXMLStyleContext::StartElement( const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-{
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName, &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- SetAttribute( nPrefix, aLocalName, rValue );
- }
-}
-
-void SvXMLStyleContext::SetDefaults()
-{
-}
-
-void SvXMLStyleContext::CreateAndInsert( sal_Bool /*bOverwrite*/ )
-{
-}
-
-void SvXMLStyleContext::CreateAndInsertLate( sal_Bool /*bOverwrite*/ )
-{
-}
-
-void SvXMLStyleContext::Finish( sal_Bool /*bOverwrite*/ )
-{
-}
-
-sal_Bool SvXMLStyleContext::IsTransient() const
-{
- return sal_False;
-}
-
-// ---------------------------------------------------------------------
-
-class SvXMLStyleIndex_Impl
-{
- OUString sName;
- sal_uInt16 nFamily;
- const SvXMLStyleContext *pStyle;
-
-public:
-
- SvXMLStyleIndex_Impl( sal_uInt16 nFam, const OUString& rName ) :
- sName( rName ),
- nFamily( nFam ),
- pStyle ( 0 )
- {
- }
-
- SvXMLStyleIndex_Impl( const SvXMLStyleContext *pStl ) :
- sName( pStl->GetName() ),
- nFamily( pStl->GetFamily() ),
- pStyle ( pStl )
- {
- }
-
- const OUString& GetName() const { return sName; }
- sal_uInt16 GetFamily() const { return nFamily; }
- const SvXMLStyleContext *GetStyle() const { return pStyle; }
-};
-
-int SvXMLStyleIndexCmp_Impl( const SvXMLStyleIndex_Impl& r1,
- const SvXMLStyleIndex_Impl& r2 )
-{
- int nRet;
- if( (sal_uInt16)r1.GetFamily() < (sal_uInt16)r2.GetFamily() )
- nRet = -1;
- else if( (sal_uInt16)r1.GetFamily() > (sal_uInt16)r2.GetFamily() )
- nRet = 1;
- else
- nRet = (int)r1.GetName().compareTo( r2.GetName() );
-
- return nRet;
-}
-
-// ---------------------------------------------------------------------
-
-typedef SvXMLStyleContext *SvXMLStyleContextPtr;
-typedef vector< SvXMLStyleContextPtr > SvXMLStyleContexts_Impl;
-
-DECLARE_CONTAINER_SORT_DEL( SvXMLStyleIndices_Impl, SvXMLStyleIndex_Impl )
-IMPL_CONTAINER_SORT( SvXMLStyleIndices_Impl, SvXMLStyleIndex_Impl,
- SvXMLStyleIndexCmp_Impl )
-
-
-class SvXMLStylesContext_Impl
-{
- SvXMLStyleContexts_Impl aStyles;
- SvXMLStyleIndices_Impl *pIndices;
- sal_Bool bAutomaticStyle;
-
-#ifdef DBG_UTIL
- sal_uInt32 nIndexCreated;
-#endif
-
- void FlushIndex() { delete pIndices; pIndices = 0; }
-
-public:
- SvXMLStylesContext_Impl( sal_Bool bAuto );
- ~SvXMLStylesContext_Impl();
-
- size_t GetStyleCount() const { return aStyles.size(); }
-
- const SvXMLStyleContext *GetStyle( size_t i ) const
- {
- return i < aStyles.size() ? aStyles[ i ] : 0;
- }
-
- SvXMLStyleContext *GetStyle( size_t i )
- {
- return i < aStyles.size() ? aStyles[ i ] : 0;
- }
-
- inline void AddStyle( SvXMLStyleContext *pStyle );
- void Clear();
-
- const SvXMLStyleContext *FindStyleChildContext( sal_uInt16 nFamily,
- const OUString& rName, sal_Bool bCreateIndex ) const;
- sal_Bool IsAutomaticStyle() const { return bAutomaticStyle; }
-};
-
-SvXMLStylesContext_Impl::SvXMLStylesContext_Impl( sal_Bool bAuto ) :
- pIndices( 0 ),
- bAutomaticStyle( bAuto )
-#ifdef DBG_UTIL
-, nIndexCreated( 0 )
-#endif
-{}
-
-SvXMLStylesContext_Impl::~SvXMLStylesContext_Impl()
-{
- delete pIndices;
-
- for ( size_t i = 0, n = aStyles.size(); i < n; ++i )
- {
- SvXMLStyleContext *pStyle = aStyles[ i ];
- pStyle->ReleaseRef();
- }
- aStyles.clear();
-}
-
-inline void SvXMLStylesContext_Impl::AddStyle( SvXMLStyleContext *pStyle )
-{
- aStyles.push_back( pStyle );
- pStyle->AddRef();
-
- FlushIndex();
-}
-
-void SvXMLStylesContext_Impl::Clear()
-{
- FlushIndex();
-
- for ( size_t i = 0, n = aStyles.size(); i < n; ++i )
- {
- SvXMLStyleContext *pStyle = aStyles[ i ];
- pStyle->ReleaseRef();
- }
- aStyles.clear();
-}
-
-const SvXMLStyleContext *SvXMLStylesContext_Impl::FindStyleChildContext(
- sal_uInt16 nFamily,
- const OUString& rName,
- sal_Bool bCreateIndex ) const
-{
- const SvXMLStyleContext *pStyle = 0;
-
- if( !pIndices && bCreateIndex && !aStyles.empty() )
- {
-#ifdef DBG_UTIL
- DBG_ASSERT( 0==nIndexCreated,
- "Performance warning: sdbcx::Index created multiple times" );
-#endif
- ((SvXMLStylesContext_Impl *)this)->pIndices =
- new SvXMLStyleIndices_Impl(
- sal::static_int_cast< sal_uInt16 >( aStyles.size() ), 5 );
- for( size_t i = 0; i < aStyles.size(); i++ )
- {
- SvXMLStyleIndex_Impl* pStyleIndex = new SvXMLStyleIndex_Impl( aStyles[ i ] );
- if (!pIndices->Insert( pStyleIndex ))
- {
- OSL_FAIL("Here is a double Style");
- delete pStyleIndex;
- }
- }
-#ifdef DBG_UTIL
- ((SvXMLStylesContext_Impl *)this)->nIndexCreated++;
-#endif
- }
-
- if( pIndices )
- {
- SvXMLStyleIndex_Impl aIndex( nFamily, rName );
- sal_uLong nPos = 0;
- if( pIndices->Seek_Entry( &aIndex, &nPos ) )
- pStyle = pIndices->GetObject( nPos )->GetStyle();
- }
- else
- {
- for( size_t i = 0; !pStyle && i < aStyles.size(); i++ )
- {
- const SvXMLStyleContext *pS = aStyles[ i ];
- if( pS->GetFamily() == nFamily &&
- pS->GetName() == rName )
- pStyle = pS;
- }
- }
- return pStyle;
-}
-
-// ---------------------------------------------------------------------
-
-TYPEINIT1( SvXMLStylesContext, SvXMLImportContext );
-
-sal_uInt32 SvXMLStylesContext::GetStyleCount() const
-{
- return mpImpl->GetStyleCount();
-}
-
-SvXMLStyleContext *SvXMLStylesContext::GetStyle( sal_uInt32 i )
-{
- return mpImpl->GetStyle( i );
-}
-
-const SvXMLStyleContext *SvXMLStylesContext::GetStyle( sal_uInt32 i ) const
-{
- return mpImpl->GetStyle( i );
-}
-
-sal_Bool SvXMLStylesContext::IsAutomaticStyle() const
-{
- return mpImpl->IsAutomaticStyle();
-}
-
-SvXMLStyleContext *SvXMLStylesContext::CreateStyleChildContext(
- sal_uInt16 p_nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLStyleContext *pStyle = NULL;
-
- if(GetImport().GetDataStylesImport())
- {
- pStyle = GetImport().GetDataStylesImport()->CreateChildContext(GetImport(), p_nPrefix,
- rLocalName, xAttrList, *this);
- }
-
- if (!pStyle)
- {
- const SvXMLTokenMap& rTokenMap = GetStyleStylesElemTokenMap();
- sal_uInt16 nToken = rTokenMap.Get( p_nPrefix, rLocalName );
- switch( nToken )
- {
- case XML_TOK_STYLE_STYLE:
- case XML_TOK_STYLE_DEFAULT_STYLE:
- {
- sal_uInt16 nFamily = 0;
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- if( XML_NAMESPACE_STYLE == nPrefix &&
- IsXMLToken( aLocalName, XML_FAMILY ) )
- {
- const OUString& rValue = xAttrList->getValueByIndex( i );
- nFamily = GetFamily( rValue );
- break;
- }
- }
- pStyle = XML_TOK_STYLE_STYLE==nToken
- ? CreateStyleStyleChildContext( nFamily, p_nPrefix,
- rLocalName, xAttrList )
- : CreateDefaultStyleStyleChildContext( nFamily, p_nPrefix,
- rLocalName, xAttrList );
- }
- break;
- case XML_TOK_STYLE_PAGE_MASTER:
- case XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT:
- {
- //there is not page family in odf now, so I specify one for it
- sal_Bool bDefaultStyle = XML_TOK_STYLE_DEFAULT_PAGE_LAYOUT == nToken
- ? sal_True: sal_False;
- pStyle = new PageStyleContext( GetImport(), p_nPrefix,
- rLocalName, xAttrList, *this, bDefaultStyle );
- }
- break;
- case XML_TOK_TEXT_LIST_STYLE:
- pStyle = new SvxXMLListStyleContext( GetImport(), p_nPrefix,
- rLocalName, xAttrList );
- break;
- case XML_TOK_TEXT_OUTLINE:
- pStyle = new SvxXMLListStyleContext( GetImport(), p_nPrefix,
- rLocalName, xAttrList, sal_True );
- break;
- case XML_TOK_TEXT_NOTE_CONFIG:
- pStyle = new XMLFootnoteConfigurationImportContext(GetImport(),
- p_nPrefix,
- rLocalName,
- xAttrList);
- break;
-
- case XML_TOK_TEXT_BIBLIOGRAPHY_CONFIG:
- pStyle = new XMLIndexBibliographyConfigurationContext(
- GetImport(), p_nPrefix, rLocalName, xAttrList);
- break;
-
- case XML_TOK_TEXT_LINENUMBERING_CONFIG:
- pStyle = new XMLLineNumberingImportContext(
- GetImport(), p_nPrefix, rLocalName, xAttrList);
- break;
-
- //
- // FillStyles
- //
- case XML_TOK_STYLES_GRADIENTSTYLES:
- {
- pStyle = new XMLGradientStyleContext( GetImport(), p_nPrefix, rLocalName, xAttrList );
- break;
- }
- case XML_TOK_STYLES_HATCHSTYLES:
- {
- pStyle = new XMLHatchStyleContext( GetImport(), p_nPrefix, rLocalName, xAttrList );
- break;
- }
- case XML_TOK_STYLES_BITMAPSTYLES:
- {
- pStyle = new XMLBitmapStyleContext( GetImport(), p_nPrefix, rLocalName, xAttrList );
- break;
- }
- case XML_TOK_STYLES_TRANSGRADIENTSTYLES:
- {
- pStyle = new XMLTransGradientStyleContext( GetImport(), p_nPrefix, rLocalName, xAttrList );
- break;
- }
- case XML_TOK_STYLES_MARKERSTYLES:
- {
- pStyle = new XMLMarkerStyleContext( GetImport(), p_nPrefix, rLocalName, xAttrList );
- break;
- }
- case XML_TOK_STYLES_DASHSTYLES:
- {
- pStyle = new XMLDashStyleContext( GetImport(), p_nPrefix, rLocalName, xAttrList );
- break;
- }
- }
- }
-
- return pStyle;
-}
-
-SvXMLStyleContext *SvXMLStylesContext::CreateStyleStyleChildContext(
- sal_uInt16 nFamily, sal_uInt16 nPrefix, const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLStyleContext *pStyle = 0;
-
- switch( nFamily )
- {
- case XML_STYLE_FAMILY_TEXT_PARAGRAPH:
- case XML_STYLE_FAMILY_TEXT_TEXT:
- case XML_STYLE_FAMILY_TEXT_SECTION:
- pStyle = new XMLTextStyleContext( GetImport(), nPrefix, rLocalName,
- xAttrList, *this, nFamily );
- break;
-
- case XML_STYLE_FAMILY_TEXT_RUBY:
- pStyle = new XMLPropStyleContext( GetImport(), nPrefix, rLocalName,
- xAttrList, *this, nFamily );
- break;
- case XML_STYLE_FAMILY_SCH_CHART_ID:
- pStyle = new XMLChartStyleContext( GetImport(), nPrefix, rLocalName,
- xAttrList, *this, nFamily );
- break;
-
- case XML_STYLE_FAMILY_SD_GRAPHICS_ID:
- case XML_STYLE_FAMILY_SD_PRESENTATION_ID:
- case XML_STYLE_FAMILY_SD_POOL_ID:
- pStyle = new XMLShapeStyleContext( GetImport(), nPrefix, rLocalName,
- xAttrList, *this, nFamily );
- }
-
- return pStyle;
-}
-
-SvXMLStyleContext *SvXMLStylesContext::CreateDefaultStyleStyleChildContext(
- sal_uInt16 /*nFamily*/, sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/,
- const uno::Reference< xml::sax::XAttributeList > & )
-{
- return 0;
-}
-
-
-sal_Bool SvXMLStylesContext::InsertStyleFamily( sal_uInt16 ) const
-{
- return sal_True;
-}
-
-sal_uInt16 SvXMLStylesContext::GetFamily(
- const ::rtl::OUString& rValue ) const
-{
- sal_uInt16 nFamily = 0U;
- if( IsXMLToken( rValue, XML_PARAGRAPH ) )
- {
- nFamily = XML_STYLE_FAMILY_TEXT_PARAGRAPH;
- }
- else if( IsXMLToken( rValue, XML_TEXT ) )
- {
- nFamily = XML_STYLE_FAMILY_TEXT_TEXT;
- }
- else if( IsXMLToken( rValue, XML_DATA_STYLE ) )
- {
- nFamily = XML_STYLE_FAMILY_DATA_STYLE;
- }
- else if ( IsXMLToken( rValue, XML_SECTION ) )
- {
- nFamily = XML_STYLE_FAMILY_TEXT_SECTION;
- }
- else if( IsXMLToken( rValue, XML_TABLE ) )
- {
- nFamily = XML_STYLE_FAMILY_TABLE_TABLE;
- }
- else if( IsXMLToken( rValue, XML_TABLE_COLUMN ) )
- nFamily = XML_STYLE_FAMILY_TABLE_COLUMN;
- else if( IsXMLToken( rValue, XML_TABLE_ROW ) )
- nFamily = XML_STYLE_FAMILY_TABLE_ROW;
- else if( IsXMLToken( rValue, XML_TABLE_CELL ) )
- nFamily = XML_STYLE_FAMILY_TABLE_CELL;
- else if( rValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(XML_STYLE_FAMILY_SD_GRAPHICS_NAME)))
- {
- nFamily = XML_STYLE_FAMILY_SD_GRAPHICS_ID;
- }
- else if( rValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(XML_STYLE_FAMILY_SD_PRESENTATION_NAME)))
- {
- nFamily = XML_STYLE_FAMILY_SD_PRESENTATION_ID;
- }
- else if( rValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(XML_STYLE_FAMILY_SD_POOL_NAME)))
- {
- nFamily = XML_STYLE_FAMILY_SD_POOL_ID;
- }
- else if( rValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(XML_STYLE_FAMILY_SD_DRAWINGPAGE_NAME)))
- {
- nFamily = XML_STYLE_FAMILY_SD_DRAWINGPAGE_ID;
- }
- else if( rValue.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( XML_STYLE_FAMILY_SCH_CHART_NAME )))
- {
- nFamily = XML_STYLE_FAMILY_SCH_CHART_ID;
- }
- else if ( IsXMLToken( rValue, XML_RUBY ) )
- {
- nFamily = XML_STYLE_FAMILY_TEXT_RUBY;
- }
-
- return nFamily;
-}
-
-UniReference < SvXMLImportPropertyMapper > SvXMLStylesContext::GetImportPropertyMapper(
- sal_uInt16 nFamily ) const
-{
- UniReference < SvXMLImportPropertyMapper > xMapper;
-
- switch( nFamily )
- {
- case XML_STYLE_FAMILY_TEXT_PARAGRAPH:
- if( !mxParaImpPropMapper.is() )
- {
- SvXMLStylesContext * pThis = (SvXMLStylesContext *)this;
- pThis->mxParaImpPropMapper =
- pThis->GetImport().GetTextImport()
- ->GetParaImportPropertySetMapper();
- }
- xMapper = mxParaImpPropMapper;
- break;
- case XML_STYLE_FAMILY_TEXT_TEXT:
- if( !mxTextImpPropMapper.is() )
- {
- SvXMLStylesContext * pThis = (SvXMLStylesContext *)this;
- pThis->mxTextImpPropMapper =
- pThis->GetImport().GetTextImport()
- ->GetTextImportPropertySetMapper();
- }
- xMapper = mxTextImpPropMapper;
- break;
-
- case XML_STYLE_FAMILY_TEXT_SECTION:
- // don't cache section mapper, as it's rarely used
- // *sigh*, cast to non-const, because this is a const method,
- // but SvXMLImport::GetTextImport() isn't.
- xMapper = ((SvXMLStylesContext*)this)->GetImport().GetTextImport()->
- GetSectionImportPropertySetMapper();
- break;
-
- case XML_STYLE_FAMILY_TEXT_RUBY:
- // don't cache section mapper, as it's rarely used
- // *sigh*, cast to non-const, because this is a const method,
- // but SvXMLImport::GetTextImport() isn't.
- xMapper = ((SvXMLStylesContext*)this)->GetImport().GetTextImport()->
- GetRubyImportPropertySetMapper();
- break;
-
- case XML_STYLE_FAMILY_SD_GRAPHICS_ID:
- case XML_STYLE_FAMILY_SD_PRESENTATION_ID:
- case XML_STYLE_FAMILY_SD_POOL_ID:
- if(!mxShapeImpPropMapper.is())
- {
- UniReference< XMLShapeImportHelper > aImpHelper = ((SvXMLImport&)GetImport()).GetShapeImport();
- ((SvXMLStylesContext*)this)->mxShapeImpPropMapper =
- aImpHelper->GetPropertySetMapper();
- }
- xMapper = mxShapeImpPropMapper;
- break;
- case XML_STYLE_FAMILY_SCH_CHART_ID:
- if( ! mxChartImpPropMapper.is() )
- {
- XMLPropertySetMapper *pPropMapper = new XMLChartPropertySetMapper();
- mxChartImpPropMapper = new XMLChartImportPropertyMapper( pPropMapper, GetImport() );
- }
- xMapper = mxChartImpPropMapper;
- break;
- case XML_STYLE_FAMILY_PAGE_MASTER:
- if( ! mxPageImpPropMapper.is() )
- {
- XMLPropertySetMapper *pPropMapper =
- new XMLPageMasterPropSetMapper();
- mxPageImpPropMapper =
- new PageMasterImportPropertyMapper( pPropMapper,
- ((SvXMLStylesContext*)this)->GetImport() );
- }
- xMapper = mxPageImpPropMapper;
- break;
- }
-
- return xMapper;
-}
-
-Reference < XAutoStyleFamily > SvXMLStylesContext::GetAutoStyles( sal_uInt16 nFamily ) const
-{
- Reference < XAutoStyleFamily > xAutoStyles;
- if( XML_STYLE_FAMILY_TEXT_TEXT == nFamily || XML_STYLE_FAMILY_TEXT_PARAGRAPH == nFamily)
- {
- bool bPara = XML_STYLE_FAMILY_TEXT_PARAGRAPH == nFamily;
- OUString sName;
- if( !bPara && mxTextAutoStyles.is() )
- xAutoStyles = mxTextAutoStyles;
- else if( bPara && mxParaAutoStyles.is() )
- xAutoStyles = mxParaAutoStyles;
- else
- {
- sName = bPara ?
- OUString( RTL_CONSTASCII_USTRINGPARAM( "ParagraphStyles" ) ):
- OUString( RTL_CONSTASCII_USTRINGPARAM( "CharacterStyles" ) );
- Reference< XAutoStylesSupplier > xAutoStylesSupp( GetImport().GetModel(), UNO_QUERY );
- Reference< XAutoStyles > xAutoStyleFamilies = xAutoStylesSupp->getAutoStyles();
- if (xAutoStyleFamilies->hasByName(sName))
- {
- Any aAny = xAutoStyleFamilies->getByName( sName );
- xAutoStyles = *(Reference<XAutoStyleFamily>*)aAny.getValue();
- if( bPara )
- ((SvXMLStylesContext *)this)->mxParaAutoStyles = xAutoStyles;
- else
- ((SvXMLStylesContext *)this)->mxTextAutoStyles = xAutoStyles;
- }
- }
- }
- return xAutoStyles;
-}
-
-Reference < XNameContainer > SvXMLStylesContext::GetStylesContainer(
- sal_uInt16 nFamily ) const
-{
- Reference < XNameContainer > xStyles;
- OUString sName;
- switch( nFamily )
- {
- case XML_STYLE_FAMILY_TEXT_PARAGRAPH:
- if( mxParaStyles.is() )
- xStyles = mxParaStyles;
- else
- sName =
- OUString( RTL_CONSTASCII_USTRINGPARAM( "ParagraphStyles" ) );
- break;
-
- case XML_STYLE_FAMILY_TEXT_TEXT:
- if( mxTextStyles.is() )
- xStyles = mxTextStyles;
- else
- sName =
- OUString( RTL_CONSTASCII_USTRINGPARAM( "CharacterStyles" ) );
- break;
- }
- if( !xStyles.is() && sName.getLength() )
- {
- Reference< XStyleFamiliesSupplier > xFamiliesSupp(
- GetImport().GetModel(), UNO_QUERY );
- if ( xFamiliesSupp.is() )
- {
- Reference< XNameAccess > xFamilies = xFamiliesSupp->getStyleFamilies();
- if (xFamilies->hasByName(sName))
- {
- xStyles.set(xFamilies->getByName( sName ),uno::UNO_QUERY);
-
- switch( nFamily )
- {
- case XML_STYLE_FAMILY_TEXT_PARAGRAPH:
- ((SvXMLStylesContext *)this)->mxParaStyles = xStyles;
- break;
-
- case XML_STYLE_FAMILY_TEXT_TEXT:
- ((SvXMLStylesContext *)this)->mxTextStyles = xStyles;
- break;
- }
- }
- }
- }
-
- return xStyles;
-}
-
-OUString SvXMLStylesContext::GetServiceName( sal_uInt16 nFamily ) const
-{
- String sServiceName;
- switch( nFamily )
- {
- case XML_STYLE_FAMILY_TEXT_PARAGRAPH:
- sServiceName = msParaStyleServiceName;
- break;
- case XML_STYLE_FAMILY_TEXT_TEXT:
- sServiceName = msTextStyleServiceName;
- break;
- }
-
- return sServiceName;
-}
-
-
-SvXMLStylesContext::SvXMLStylesContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList > &, sal_Bool bAuto ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
- msParaStyleServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.style.ParagraphStyle" ) ),
- msTextStyleServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.style.CharacterStyle" ) ),
- mpImpl( new SvXMLStylesContext_Impl( bAuto ) ),
- mpStyleStylesElemTokenMap( 0 )
-{
-}
-
-
-SvXMLStylesContext::~SvXMLStylesContext()
-{
- delete mpStyleStylesElemTokenMap;
- delete mpImpl;
-}
-
-SvXMLImportContext *SvXMLStylesContext::CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
-
- SvXMLStyleContext *pStyle =
- CreateStyleChildContext( nPrefix, rLocalName, xAttrList );
- if( pStyle )
- {
- if( !pStyle->IsTransient() )
- mpImpl->AddStyle( pStyle );
- pContext = pStyle;
- }
- else
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix,
- rLocalName );
- }
-
- return pContext;
-}
-
-void SvXMLStylesContext::EndElement()
-{
-}
-
-void SvXMLStylesContext::AddStyle(SvXMLStyleContext& rNew)
-{
- mpImpl->AddStyle( &rNew );
-}
-
-void SvXMLStylesContext::Clear()
-{
- mpImpl->Clear();
-}
-
-void SvXMLStylesContext::CopyAutoStylesToDoc()
-{
- sal_uInt32 nCount = GetStyleCount();
- sal_uInt32 i;
- for( i = 0; i < nCount; i++ )
- {
- SvXMLStyleContext *pStyle = GetStyle( i );
- if( !pStyle || ( pStyle->GetFamily() != XML_STYLE_FAMILY_TEXT_TEXT &&
- pStyle->GetFamily() != XML_STYLE_FAMILY_TEXT_PARAGRAPH &&
- pStyle->GetFamily() != XML_STYLE_FAMILY_TABLE_CELL ) )
- continue;
- pStyle->CreateAndInsert( sal_False );
- }
-}
-
-void SvXMLStylesContext::CopyStylesToDoc( sal_Bool bOverwrite,
- sal_Bool bFinish )
-{
- // pass 1: create text, paragraph and frame styles
- sal_uInt32 nCount = GetStyleCount();
- sal_uInt32 i;
-
- for( i = 0; i < nCount; i++ )
- {
- SvXMLStyleContext *pStyle = GetStyle( i );
- if( !pStyle )
- continue;
-
- if (pStyle->IsDefaultStyle())
- pStyle->SetDefaults();
- else if( InsertStyleFamily( pStyle->GetFamily() ) )
- pStyle->CreateAndInsert( bOverwrite );
- }
-
- // pass 2: create list styles (they require char styles)
- for( i=0; i<nCount; i++ )
- {
- SvXMLStyleContext *pStyle = GetStyle( i );
- if( !pStyle || pStyle->IsDefaultStyle())
- continue;
-
- if( InsertStyleFamily( pStyle->GetFamily() ) )
- pStyle->CreateAndInsertLate( bOverwrite );
- }
-
- // pass3: finish creation of styles
- if( bFinish )
- FinishStyles( bOverwrite );
-}
-
-void SvXMLStylesContext::FinishStyles( sal_Bool bOverwrite )
-{
- sal_uInt32 nCount = GetStyleCount();
- for( sal_uInt32 i=0; i<nCount; i++ )
- {
- SvXMLStyleContext *pStyle = GetStyle( i );
- if( !pStyle || !pStyle->IsValid() || pStyle->IsDefaultStyle() )
- continue;
-
- if( InsertStyleFamily( pStyle->GetFamily() ) )
- pStyle->Finish( bOverwrite );
- }
-}
-
-
-const SvXMLStyleContext *SvXMLStylesContext::FindStyleChildContext(
- sal_uInt16 nFamily,
- const OUString& rName,
- sal_Bool bCreateIndex ) const
-{
- return mpImpl->FindStyleChildContext( nFamily, rName, bCreateIndex );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmltabe.cxx b/xmloff/source/style/xmltabe.cxx
deleted file mode 100644
index 30f5c5fcd3..0000000000
--- a/xmloff/source/style/xmltabe.cxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-
-#include <tools/debug.hxx>
-#include <com/sun/star/style/TabStop.hpp>
-#include <com/sun/star/style/TabAlign.hpp>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmltoken.hxx>
-#include <xmloff/xmluconv.hxx>
-#include <xmloff/xmlexp.hxx>
-#include "xmloff/xmltabe.hxx"
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-SvXMLEnumMapEntry pXML_tabstop_style[] =
-{
- { XML_LEFT, style::TabAlign_LEFT },
- { XML_CENTER, style::TabAlign_CENTER },
- { XML_RIGHT, style::TabAlign_RIGHT },
- { XML_CHAR, style::TabAlign_DECIMAL },
- { XML_DEFAULT, style::TabAlign_DEFAULT }, // ?????????????????????????????????????
- { XML_TOKEN_INVALID, 0 }
-};
-
-void SvxXMLTabStopExport::exportTabStop( const ::com::sun::star::style::TabStop* pTabStop )
-{
- SvXMLUnitConverter& rUnitConv = rExport.GetMM100UnitConverter();
-
- // text:level
- OUStringBuffer sBuffer;
-
- // position attribute
- rUnitConv.convertMeasure( sBuffer, pTabStop->Position );
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_POSITION,
- sBuffer.makeStringAndClear() );
-
- // type attribute
- if( style::TabAlign_LEFT != pTabStop->Alignment )
- {
- rUnitConv.convertEnum( sBuffer, pTabStop->Alignment,
- pXML_tabstop_style );
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_TYPE,
- sBuffer.makeStringAndClear() );
- }
-
- // char
- if( style::TabAlign_DECIMAL == pTabStop->Alignment &&
- pTabStop->DecimalChar != 0 )
- {
- sBuffer.append( pTabStop->DecimalChar );
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_CHAR,
- sBuffer.makeStringAndClear() );
- }
-
- // leader-char
- if( ' ' != pTabStop->FillChar && 0 != pTabStop->FillChar )
- {
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_LEADER_STYLE,
- GetXMLToken('.' == pTabStop->FillChar ? XML_DOTTED
- : XML_SOLID) );
-
- sBuffer.append( pTabStop->FillChar );
- rExport.AddAttribute( XML_NAMESPACE_STYLE, XML_LEADER_TEXT,
- sBuffer.makeStringAndClear() );
- }
-
- SvXMLElementExport rElem( rExport, XML_NAMESPACE_STYLE, XML_TAB_STOP,
- sal_True, sal_True );
-}
-
-
-SvxXMLTabStopExport::SvxXMLTabStopExport(
- SvXMLExport& rExp)
- : rExport( rExp )
-{
-}
-
-SvxXMLTabStopExport::~SvxXMLTabStopExport()
-{
-}
-
-void SvxXMLTabStopExport::Export( const uno::Any& rAny )
-{
- uno::Sequence< ::com::sun::star::style::TabStop> aSeq;
- if(!(rAny >>= aSeq))
- {
- OSL_FAIL( "SvxXMLTabStopExport needs a Sequence ::com::sun::star::style::TabStop>" );
- }
- else
- {
- const ::com::sun::star::style::TabStop* pTabs = aSeq.getConstArray();
- const sal_Int32 nTabs = aSeq.getLength();
-
- SvXMLElementExport rElem( rExport, XML_NAMESPACE_STYLE, XML_TAB_STOPS,
- sal_True, sal_True );
-
- for( sal_Int32 nIndex = 0; nIndex < nTabs; nIndex++ )
- {
- if( style::TabAlign_DEFAULT != pTabs[nIndex].Alignment )
- exportTabStop( &(pTabs[nIndex]) );
- }
- }
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/xmltabi.cxx b/xmloff/source/style/xmltabi.cxx
deleted file mode 100644
index 4bfe96384a..0000000000
--- a/xmloff/source/style/xmltabi.cxx
+++ /dev/null
@@ -1,295 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmloff.hxx"
-#include <com/sun/star/style/TabAlign.hpp>
-#include <rtl/ustrbuf.hxx>
-#include <xmloff/xmltkmap.hxx>
-#include <xmloff/nmspmap.hxx>
-#include "xmloff/xmlnmspe.hxx"
-#include <xmloff/xmlimp.hxx>
-#include <com/sun/star/style/TabStop.hpp>
-#include <xmloff/xmltoken.hxx>
-#include "xmloff/i18nmap.hxx"
-#include <xmloff/xmluconv.hxx>
-
-#include "xmltabi.hxx"
-
-#define _SVSTDARR_USHORTS
-#include <svl/svstdarr.hxx>
-
-using ::rtl::OUString;
-using ::rtl::OUStringBuffer;
-
-using namespace ::com::sun::star;
-using namespace ::xmloff::token;
-
-// ---
-
-enum SvXMLTokenMapAttrs
-{
- XML_TOK_TABSTOP_POSITION,
- XML_TOK_TABSTOP_TYPE,
- XML_TOK_TABSTOP_CHAR,
- XML_TOK_TABSTOP_LEADER_STYLE,
- XML_TOK_TABSTOP_LEADER_TEXT,
- XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN
-};
-
-static SvXMLTokenMapEntry aTabsAttributesAttrTokenMap[] =
-{
- { XML_NAMESPACE_STYLE, XML_POSITION, XML_TOK_TABSTOP_POSITION },
- { XML_NAMESPACE_STYLE, XML_TYPE, XML_TOK_TABSTOP_TYPE },
- { XML_NAMESPACE_STYLE, XML_CHAR, XML_TOK_TABSTOP_CHAR },
- { XML_NAMESPACE_STYLE, XML_LEADER_TEXT, XML_TOK_TABSTOP_LEADER_TEXT },
- { XML_NAMESPACE_STYLE, XML_LEADER_STYLE, XML_TOK_TABSTOP_LEADER_STYLE },
- XML_TOKEN_MAP_END
-};
-
-// ---
-
-class SvxXMLTabStopContext_Impl : public SvXMLImportContext
-{
-private:
- style::TabStop aTabStop;
-
-public:
- TYPEINFO();
-
- SvxXMLTabStopContext_Impl( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList );
-
- virtual ~SvxXMLTabStopContext_Impl();
-
- virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList );
-
- const style::TabStop& getTabStop() const { return aTabStop; }
-};
-
-TYPEINIT1( SvxXMLTabStopContext_Impl, SvXMLImportContext );
-
-SvxXMLTabStopContext_Impl::SvxXMLTabStopContext_Impl(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-: SvXMLImportContext( rImport, nPrfx, rLName )
-{
- aTabStop.Position = 0;
- aTabStop.Alignment = style::TabAlign_LEFT;
- aTabStop.DecimalChar = sal_Unicode( ',' );
- aTabStop.FillChar = sal_Unicode( ' ' );
- sal_Unicode cTextFillChar = 0;
-
- SvXMLTokenMap aTokenMap( aTabsAttributesAttrTokenMap );
-
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
- {
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
- OUString aLocalName;
- sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
-
- sal_Int32 nVal;
- switch( aTokenMap.Get( nPrefix, aLocalName ) )
- {
- case XML_TOK_TABSTOP_POSITION:
- if( GetImport().GetMM100UnitConverter().convertMeasure( nVal,
- rValue ) )
- aTabStop.Position = nVal;
- break;
- case XML_TOK_TABSTOP_TYPE:
- if( IsXMLToken( rValue, XML_LEFT ) )
- {
- aTabStop.Alignment = style::TabAlign_LEFT;
- }
- else if( IsXMLToken( rValue, XML_RIGHT ) )
- {
- aTabStop.Alignment = style::TabAlign_RIGHT;
- }
- else if( IsXMLToken( rValue, XML_CENTER ) )
- {
- aTabStop.Alignment = style::TabAlign_CENTER;
- }
- else if( IsXMLToken( rValue, XML_CHAR ) )
- {
- aTabStop.Alignment = style::TabAlign_DECIMAL;
- }
- else if( IsXMLToken( rValue, XML_DEFAULT ) )
- {
- aTabStop.Alignment = style::TabAlign_DEFAULT;
- }
- break;
- case XML_TOK_TABSTOP_CHAR:
- if( 0 != rValue.getLength() )
- aTabStop.DecimalChar = rValue[0];
- break;
- case XML_TOK_TABSTOP_LEADER_STYLE:
- if( IsXMLToken( rValue, XML_NONE ) )
- aTabStop.FillChar = ' ';
- else if( IsXMLToken( rValue, XML_DOTTED ) )
- aTabStop.FillChar = '.';
- else
- aTabStop.FillChar = '_';
- break;
- case XML_TOK_TABSTOP_LEADER_TEXT:
- if( 0 != rValue.getLength() )
- cTextFillChar = rValue[0];
- break;
- }
- }
-
- if( cTextFillChar != 0 && aTabStop.FillChar != ' ' )
- aTabStop.FillChar = cTextFillChar;
-}
-
-SvxXMLTabStopContext_Impl::~SvxXMLTabStopContext_Impl()
-{
-}
-
-SvXMLImportContext *SvxXMLTabStopContext_Impl::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & )
-{
- return new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
-}
-
-
-
-
-typedef SvxXMLTabStopContext_Impl *SvxXMLTabStopContext_Impl_ImplPtr;
-SV_DECL_PTRARR( SvxXMLTabStopArray_Impl, SvxXMLTabStopContext_Impl_ImplPtr, 20, 5 )
-
-
-// ---
-
-TYPEINIT1( SvxXMLTabStopImportContext, XMLElementPropertyContext );
-
-SvxXMLTabStopImportContext::SvxXMLTabStopImportContext(
- SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const XMLPropertyState& rProp,
- ::std::vector< XMLPropertyState > &rProps )
-: XMLElementPropertyContext( rImport, nPrfx, rLName, rProp, rProps ),
- mpTabStops( NULL )
-{
-}
-
-SvxXMLTabStopImportContext::~SvxXMLTabStopImportContext()
-{
- if( mpTabStops )
- {
- sal_uInt16 nCount = mpTabStops->Count();
- while( nCount )
- {
- nCount--;
- SvxXMLTabStopContext_Impl *pTabStop = (*mpTabStops)[nCount];
- mpTabStops->Remove( nCount, 1 );
- pTabStop->ReleaseRef();
- }
- }
-
- delete mpTabStops;
-}
-
-SvXMLImportContext *SvxXMLTabStopImportContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const uno::Reference< xml::sax::XAttributeList > & xAttrList )
-{
- SvXMLImportContext *pContext = 0;
-
- if( XML_NAMESPACE_STYLE == nPrefix && IsXMLToken( rLocalName, XML_TAB_STOP ) )
- {
- // create new tabstop import context
- SvxXMLTabStopContext_Impl *pTabStopContext =
- new SvxXMLTabStopContext_Impl( GetImport(), nPrefix, rLocalName,
- xAttrList );
-
- // add new tabstop to array of tabstops
- if( !mpTabStops )
- mpTabStops = new SvxXMLTabStopArray_Impl;
-
- mpTabStops->Insert( pTabStopContext, mpTabStops->Count() );
- pTabStopContext->AddRef();
-
- pContext = pTabStopContext;
- }
- else
- {
- pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName );
- }
-
- return pContext;
-}
-
-void SvxXMLTabStopImportContext::EndElement( )
-{
- sal_uInt16 nCount = mpTabStops ? mpTabStops->Count() : 0;
- uno::Sequence< style::TabStop> aSeq( nCount );
-
- if( mpTabStops )
- {
- sal_uInt16 nNewCount = 0;
-
- style::TabStop* pTabStops = aSeq.getArray();
- for( sal_uInt16 i=0; i < nCount; i++ )
- {
- SvxXMLTabStopContext_Impl *pTabStopContext = (*mpTabStops)[i];
- const style::TabStop& rTabStop = pTabStopContext->getTabStop();
- sal_Bool bDflt = style::TabAlign_DEFAULT == rTabStop.Alignment;
- if( !bDflt || 0==i )
- {
- *pTabStops++ = pTabStopContext->getTabStop();
- nNewCount++;
- }
- if( bDflt && 0==i )
- break;
- }
-
- if( nCount != nNewCount )
- aSeq.realloc( nNewCount );
- }
- aProp.maValue <<= aSeq;
-
- SetInsert( sal_True );
- XMLElementPropertyContext::EndElement();
-
-}
-
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */