1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #include <tools/debug.hxx>
30 #include "PagePropertySetContext.hxx"
31 #include "XMLBackgroundImageContext.hxx"
32 #include "XMLTextColumnsContext.hxx"
33 #include <xmloff/PageMasterStyleMap.hxx>
34 #include "XMLFootnoteSeparatorImport.hxx"
36 using ::rtl::OUString
;
38 using namespace ::com::sun::star::uno
;
39 using namespace ::com::sun::star
;
41 PagePropertySetContext::PagePropertySetContext(
42 SvXMLImport
& rImport
, sal_uInt16 nPrfx
,
43 const OUString
& rLName
,
44 const Reference
< xml::sax::XAttributeList
> & xAttrList
,
46 ::std::vector
< XMLPropertyState
> &rProps
,
47 const UniReference
< SvXMLImportPropertyMapper
> &rMap
,
48 sal_Int32 nStartIndex
, sal_Int32 nEndIndex
,
49 const PageContextType aTempType
) :
50 SvXMLPropertySetContext( rImport
, nPrfx
, rLName
, xAttrList
, nFam
,
51 rProps
, rMap
, nStartIndex
, nEndIndex
)
56 PagePropertySetContext::~PagePropertySetContext()
60 SvXMLImportContext
*PagePropertySetContext::CreateChildContext(
62 const OUString
& rLocalName
,
63 const Reference
< xml::sax::XAttributeList
> & xAttrList
,
64 ::std::vector
< XMLPropertyState
> &rProperties
,
65 const XMLPropertyState
& rProp
)
67 sal_Int32 nPos
= CTF_PM_GRAPHICPOSITION
;
68 sal_Int32 nFil
= CTF_PM_GRAPHICFILTER
;
73 nPos
= CTF_PM_HEADERGRAPHICPOSITION
;
74 nFil
= CTF_PM_HEADERGRAPHICFILTER
;
79 nPos
= CTF_PM_FOOTERGRAPHICPOSITION
;
80 nFil
= CTF_PM_FOOTERGRAPHICFILTER
;
86 SvXMLImportContext
*pContext
= 0;
88 switch( mxMapper
->getPropertySetMapper()
89 ->GetEntryContextId( rProp
.mnIndex
) )
91 case CTF_PM_GRAPHICURL
:
92 case CTF_PM_HEADERGRAPHICURL
:
93 case CTF_PM_FOOTERGRAPHICURL
:
94 DBG_ASSERT( rProp
.mnIndex
>= 2 &&
95 nPos
== mxMapper
->getPropertySetMapper()
96 ->GetEntryContextId( rProp
.mnIndex
-2 ) &&
97 nFil
== mxMapper
->getPropertySetMapper()
98 ->GetEntryContextId( rProp
.mnIndex
-1 ),
99 "invalid property map!");
103 new XMLBackgroundImageContext( GetImport(), nPrefix
,
104 rLocalName
, xAttrList
,
112 case CTF_PM_TEXTCOLUMNS
:
113 pContext
= new XMLTextColumnsContext( GetImport(), nPrefix
,
114 rLocalName
, xAttrList
, rProp
,
118 case CTF_PM_FTN_LINE_WEIGTH
:
119 pContext
= new XMLFootnoteSeparatorImport(
120 GetImport(), nPrefix
, rLocalName
, rProperties
,
121 mxMapper
->getPropertySetMapper(), rProp
.mnIndex
);
126 pContext
= SvXMLPropertySetContext::CreateChildContext( nPrefix
, rLocalName
,
128 rProperties
, rProp
);
134 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */