1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
25 #include "writerhelper.hxx"
29 sal_uLong mnEscherShapeOrder
;
30 sal_uLong mnNoInlines
;
31 // new member <mbInHeaderFooter>
32 bool mbInHeaderFooter
;
33 EscherShape( sal_uLong nEscherShapeOrder
,
34 bool _bInHeaderFooter
)
35 : mnEscherShapeOrder(nEscherShapeOrder
),
37 mbInHeaderFooter( _bInHeaderFooter
)
44 // consider that objects in page header/footer
45 // are always behind objects in page body. Thus, assure, that in vector
46 // <maEscherLayer> objects in page header|footer are inserted before
47 // objects in page body - see method <GetEscherObjectPos(..)>.
48 //No of objects in doc before starting (always 0 unless using file->insert
49 //and probably 0 then as well
50 std::vector
<EscherShape
> maEscherLayer
;
51 typedef std::vector
<EscherShape
>::iterator myeiter
;
53 std::vector
<short> maDrawHeight
;
54 typedef std::vector
<short>::iterator myditer
;
56 std::stack
<sal_uInt16
> maIndexes
;
58 sw::util::SetLayer maSetLayer
;
60 sal_uLong mnNoInitialObjects
;
63 const SvxMSDffShapeOrders
*mpShapeOrders
;
65 sal_uInt16
GetEscherObjectIdx(sal_uLong nSpId
);
66 myeiter
MapEscherIdxToIter(sal_uLong nIdx
);
67 // new parameter <_bInHeaderFooter>, indicating
68 // that object is in header or footer
69 sal_uLong
GetEscherObjectPos( sal_uLong nSpId
,
70 const bool _bInHeaderFooter
);
71 sal_uLong
GetDrawingObjectPos(short nWwHeight
);
72 bool InsertObject(SdrObject
*pObject
, sal_uLong nPos
);
74 wwZOrderer(const sw::util::SetLayer
&rSetLayer
, SdrPage
* pDrawPg
,
75 const SvxMSDffShapeOrders
*pShapeOrders
);
76 void InsertTextLayerObject(SdrObject
* pObject
);
78 cmc: We should have have separate ZOrder classes for 95- and 97+ and
79 instantiate the appropriate one at run time.
81 void InsertDrawingObject(SdrObject
* pObj
, short nWwHeight
);
82 // new parameter <_bInHeaderFooter>, indicating that object is in header or footer
83 void InsertEscherObject( SdrObject
* pObject
,
85 const bool _bInHeaderFooter
);
86 void InsideEscher(sal_uLong nIndex
);
90 void WW8FSPAShadowToReal( WW8_FSPA_SHADOW
* pFSPAS
, WW8_FSPA
* pPic
);
93 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */