/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: PagePropertySetContext.cxx,v $ * * $Revision: 1.10 $ * * last change: $Author: rt $ $Date: 2005-09-09 14:29:13 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 by Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, CA 94303, USA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License version 2.1, as published by the Free Software Foundation. * * This library 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 for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * ************************************************************************/ #ifndef _TOOLS_DEBUG_HXX #include #endif #ifndef _XMLOFF_PAGEPROPERTYSETCONTEXT_HXX #include "PagePropertySetContext.hxx" #endif #ifndef _XMLBACKGROUNDIMAGECONTEXT_HXX #include "XMLBackgroundImageContext.hxx" #endif #ifndef _XMLTEXTCOLUMNSCONTEXT_HXX #include "XMLTextColumnsContext.hxx" #endif #ifndef _XMLOFF_PAGEMASTERSTYLEMAP_HXX #include "PageMasterStyleMap.hxx" #endif #ifndef _XMLOFF_XMLFOOTNOTESEPARATORIMPORT_HXX #include "XMLFootnoteSeparatorImport.hxx" #endif using namespace ::rtl; 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; } SvXMLImportContext *pContext = 0; switch( xMapper->getPropertySetMapper() ->GetEntryContextId( rProp.mnIndex ) ) { case CTF_PM_GRAPHICURL: case CTF_PM_HEADERGRAPHICURL: case CTF_PM_FOOTERGRAPHICURL: DBG_ASSERT( rProp.mnIndex >= 2 && nPos == xMapper->getPropertySetMapper() ->GetEntryContextId( rProp.mnIndex-2 ) && nFil == xMapper->getPropertySetMapper() ->GetEntryContextId( rProp.mnIndex-1 ), "invalid property map!"); pContext = new XMLBackgroundImageContext( GetImport(), nPrefix, rLocalName, xAttrList, rProp, rProp.mnIndex-2, rProp.mnIndex-1, -1, rProperties ); break; case CTF_PM_TEXTCOLUMNS: #ifndef SVX_LIGHT pContext = new XMLTextColumnsContext( GetImport(), nPrefix, rLocalName, xAttrList, rProp, rProperties ); #else // create default context to skip content pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName ); #endif // #ifndef SVX_LIGHT break; case CTF_PM_FTN_LINE_WEIGTH: #ifndef SVX_LIGHT pContext = new XMLFootnoteSeparatorImport( GetImport(), nPrefix, rLocalName, rProperties, xMapper->getPropertySetMapper(), rProp.mnIndex); #else // create default context to skip content pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName); #endif // #ifndef SVX_LIGHT break; } if( !pContext ) pContext = SvXMLPropertySetContext::CreateChildContext( nPrefix, rLocalName, xAttrList, rProperties, rProp ); return pContext; }