52 : maSetLayer(rSetLayer), mnInlines(0), mpDrawPg(pDrawPg),
53 mpShapeOrders(pShapeOrders)
56 OSL_ENSURE(
mpDrawPg,
"Missing draw page impossible!");
72 const bool _bInHeaderFooter )
81 [nIdx](
const EscherShape& rShape) {
return rShape.mnEscherShapeOrder == nIdx; });
89 for (sal_uInt16 nShapePos=0; nShapePos < nShapeCount; nShapePos++)
103 const bool _bInHeaderFooter )
120 if ( !_bInHeaderFooter )
122 while ( aIter != aEnd )
124 if ( !aIter->mbInHeaderFooter )
128 nRet += aIter->mnNoInlines + 1;
132 while (aIter != aEnd)
136 if ( _bInHeaderFooter && !aIter->mbInHeaderFooter )
140 if ( aIter->mnEscherShapeOrder > nFound )
142 nRet += aIter->mnNoInlines+1;
154 if (nWwHeight & 0x2000)
180 OSL_ENSURE(aEnd !=
maEscherLayer.end(),
"Something very wrong here");
184 nInsertPos += aEnd->mnNoInlines;
201 auto aIter = std::find_if(
203 [nWwHeight](
short aHeight){
return (aHeight & 0x1fff) > (nWwHeight & 0x1fff); });
238 if (!rFileName.isEmpty())
243 return !rFileName.isEmpty();
261 rpGraphic.reset(
new Graphic(aWMF));
273 rpGraphic.reset(
new Graphic());
290 : nCL(rPic.dxaCropLeft),
291 nCR(rPic.dxaCropRight),
292 nCT(rPic.dyaCropTop),
293 nCB(rPic.dyaCropBottom)
306 nWidth = nCurrentWidth * rPic.
mx / 1000;
307 nHeight = nCurrentHeight * rPic.
my / 1000;
316 SdrObjList* pObjectList = pGroupObject->GetSubList();
327 OSL_ENSURE(
false,
"Impossible!");
337 sal_uInt32 nWidth = rPD.
nWidth;
338 sal_uInt32 nHeight = rPD.
nHeight;
341 sal_Int32 nNetHeight = nHeight + rPD.
nCT + rPD.
nCB;
350 aFlySet.Put(aAnchor);
356 *
m_pPaM, rFileName, OUString(), pGraph,
357 &aFlySet, &rGrfSet,
nullptr);
378 pFlyFormat =
ImportOle(pGraph, &aFlySet, &rGrfSet);
384 *
m_pPaM, rFileName, OUString(), pGraph, &aFlySet,
404 std::unique_ptr<Graphic> pGraph;
405 bool bOk =
ReadGrafFile(aFileName, pGraph, rPic, pSt, nFilePos, &bInDoc);
418 aGrfSet.Put( aCrop );
433 pDataStream->
ReadBytes( &aPicS,
sizeof( aPicS ) );
436 pDataStream->
ReadBytes(&i, bVer67 ? 2 : 4);
500 if (RndStdIds::FLY_AS_CHAR ==
510 else if((0x64 == aPic.
MFP.
mm) || (0x66 == aPic.
MFP.
mm))
529 if (0x66 == aPic.
MFP.
mm)
547 ? aData.
begin()->get() :
nullptr;
557 int relativeWidth = pRecord->relativeHorizontalWidth;
558 if( relativeWidth == -1 )
559 relativeWidth = pRecord->isHorizontalRule ? 1000 : 0;
560 if( relativeWidth != 0 )
584 aFlySet.Put(aAnchor);
586 aAttrSet.Put(aFlySet);
593 aAttrSet.Put(aFlySet);
599 pRecord->eLineStyle, pRecord->eLineDashing,
600 pRecord->eShapeType, aInnerDist );
634 bool bTextObjWasGrouped =
false;
636 bTextObjWasGrouped =
true;
638 if (bTextObjWasGrouped)
645 pRet =
InsertOle(*static_cast<SdrOle2Obj*>(pObject), aAttrSet, &aGrSet);
649 if (
SdrGrafObj* pGraphObject = dynamic_cast<SdrGrafObj*>( pObject) )
652 const Graphic& rGraph = pGraphObject->GetGraphic();
660 *
m_pPaM, OUString(), OUString(),
661 &rGraph, &aAttrSet, &aGrSet,
nullptr );
675 OUString aObjectName(pObject->
GetName());
685 if (pOurNewObject != pObject)
708 else if (aPic.
lcb >= 58)
724 pPic->
lcb = SVBT32ToUInt32( pPicS->
lcb );
726 pPic->
MFP.
mm = SVBT16ToUInt16( pPicS->
MFP.
mm );
730 for( sal_uInt16
i = 0;
i < 14 ;
i++ )
734 pPic->
mx = SVBT16ToUInt16( pPicS->
mx );
735 pPic->
my = SVBT16ToUInt16( pPicS->
my );
750 pFSPA->
nSpId = SVBT32ToUInt32( pFSPAS->
nSpId );
756 sal_uInt16 nBits = SVBT16ToUInt16( pFSPAS->
aBits1 );
758 pFSPA->
bHdr = sal_uInt16(0 != ( nBits & 0x0001 ));
759 pFSPA->
nbx = ( nBits & 0x0006 ) >> 1;
760 pFSPA->
nby = ( nBits & 0x0018 ) >> 3;
761 pFSPA->
nwr = ( nBits & 0x01E0 ) >> 5;
762 pFSPA->
nwrk = ( nBits & 0x1E00 ) >> 9;
763 pFSPA->
bRcaSimple = sal_uInt16(0 != ( nBits & 0x2000 ));
764 pFSPA->
bBelowText = sal_uInt16(0 != ( nBits & 0x4000 ));
765 pFSPA->
bAnchorLock = sal_uInt16(0 != ( nBits & 0x8000 ));
766 pFSPA->
nTxbx = SVBT32ToUInt32( pFSPAS->
nTxbx );
const SwEndNode * EndOfSectionNode() const
SwFrameFormat * ImportGraf1(WW8_PIC const &rPic, SvStream *pSt, sal_uLong nFilePos)
SvStream & ReadInt16(sal_Int16 &rInt16)
sal_uInt32 GetPageLeft() const
static constexpr RndStdIds eAnchor
rtl_TextEncoding m_eStructCharSet
virtual const tools::Rectangle & GetCurrentBoundRect() const
ErrCode ImportGraphic(Graphic &rGraphic, const INetURLObject &rPath, sal_uInt16 nFormat=GRFILTER_FORMAT_DONTKNOW, sal_uInt16 *pDeterminedFormat=nullptr, GraphicFilterImportFlags nImportFlags=GraphicFilterImportFlags::NONE)
SwFlyFrameFormat * m_pFlyFormatOfJustInsertedGraphic
const SvxMSDffShapeOrders * mpShapeOrders
virtual SwFlyFrameFormat * InsertGraphic(const SwPaM &rRg, const OUString &rGrfName, const OUString &rFltName, const Graphic *pGraphic, const SfxItemSet *pFlyAttrSet, const SfxItemSet *pGrfAttrSet, SwFrameFormat *)=0
Insert graphic or formula.
bool ReadWindowMetafile(SvStream &rStream, GDIMetaFile &rMTF)
void MatchSdrItemsIntoFlySet(SdrObject const *pSdrObj, SfxItemSet &aFlySet, MSO_LineStyle eLineStyle, MSO_LineDashing eDashing, MSO_SPT eShapeType, tools::Rectangle &rInnerDist)
void InsertTextLayerObject(SdrObject *pObject)
wwFrameNamer m_aGrfNameGenerator
void SetAttributesAtGrfNode(SvxMSDffImportRec const *pRecord, SwFrameFormat const *pFlyFormat, WW8_FSPA const *pF)
size_t GetObjCount() const
std::unique_ptr< WW8FlyPara > m_xWFlyPara
std::shared_ptr< WW8Fib > m_xWwFib
std::vector< std::unique_ptr< SvxMSDffShapeOrder > > SvxMSDffShapeOrders
std::vector< EscherShape >::iterator myeiter
sal_uInt64 Seek(sal_uInt64 nPos)
void WW8FSPAShadowToReal(WW8_FSPA_SHADOW const *pFSPAS, WW8_FSPA *pFSPA)
std::vector< short > maDrawHeight
std::unique_ptr< SwMSDffManager > m_xMSDffManager
static void Free(SdrObject *&_rpObject)
virtual SdrObjKind GetObjIdentifier() const
IDocumentContentOperations const & getIDocumentContentOperations() const
virtual void InsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
sal_uInt16 GetEscherObjectIdx(sal_uLong nSpId)
EmbeddedObjectRef * pObject
SwFrameFormat * ImportOle(const Graphic *=nullptr, const SfxItemSet *pFlySet=nullptr, const SfxItemSet *pGrfSet=nullptr, const tools::Rectangle &aVisArea=tools::Rectangle())
sal_uInt64 SeekRel(sal_Int64 nPos)
Make setting a drawing object's layer in a Writer document easy.
SwFlyFrameFormat * InsertOle(SdrOle2Obj &rObject, const SfxItemSet &rFlySet, const SfxItemSet *rGrfSet)
myeiter MapEscherIdxToIter(sal_uLong nIdx)
SwNodeType GetNodeType() const
SdrPage * getSdrPageFromSdrObject() const
MSDffImportRecords::const_iterator begin() const
Ret msword_cast(Param in)
A static_cast style cast for conversion of writer types to word's.
sal_uLong GetEscherObjectPos(sal_uLong nSpId, const bool _bInHeaderFooter)
static bool GetPictGrafFromStream(Graphic &rGraphic, SvStream &rSrc)
const tools::Rectangle & GetBLIPSizeRectangle() const
constexpr OUStringLiteral aData
void SendObjectToHeaven(SdrObject &rObject) const
Make Object lives in the top layer.
std::unique_ptr< wwZOrderer > m_xWWZOrder
virtual void SetLayer(SdrLayerID nLayer)
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
const SwFlyFrameFormat * FindFlyByName(const OUString &rName, SwNodeType nNdTyp=SwNodeType::NONE) const
void InsertObject(SdrObject *pObject, sal_uLong nPos)
bool checkSeek(SvStream &rSt, sal_uInt64 nOffset)
void SetUniqueGraphName(SwFrameFormat *pFrameFormat, std::u16string_view rFixedPart)
wwSectionManager m_aSectionManager
OUString read_uInt8_PascalString(SvStream &rStrm, rtl_TextEncoding eEnc)
const SwPosition * GetPoint() const
SVL_DLLPUBLIC Link< OUString *, bool > const & GetMaybeFileHdl()
void InsertEscherObject(SdrObject *pObject, sal_uLong nSpId, const bool _bInHeaderFooter)
SwFrameFormat * AddAutoAnchor(SwFrameFormat *pFormat)
wwZOrderer(const sw::util::SetLayer &rSetLayer, SdrPage *pDrawPg, const SvxMSDffShapeOrders *pShapeOrders)
void MatchEscherMirrorIntoFlySet(const SvxMSDffImportRec &rRecord, SfxItemSet &rFlySet)
void InsertDrawingObject(SdrObject *pObj, short nWwHeight)
sal_uInt32 GetOrdNum() const
std::set< sal_uLong > m_aGrafPosSet
virtual void SetLogicRect(const tools::Rectangle &rRect)
Marks a node in the document model.
constexpr sal_uInt16 RES_GRFATR_END(148)
SvStream & ReadUChar(unsigned char &rChar)
sw::util::SetLayer maSetLayer
virtual SdrObject * RemoveObject(size_t nObjNum)
sal_uLong GetDrawingObjectPos(short nWwHeight)
SwFlyFrameFormat * MakeGrafNotInContent(const WW8PicDesc &rPD, const Graphic *pGraph, const OUString &rFileName, const SfxItemSet &rGrfSet)
Frame cannot be moved in Var-direction.
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
sal_uInt32 GetPageRight() const
virtual SdrLayerID GetLayer() const
const SwNodeIndex * GetContentIdx() const
std::size_t ReadBytes(void *pData, std::size_t nSize)
constexpr sal_uInt16 RES_FRMATR_END(131)
virtual SwDrawFrameFormat * InsertDrawObj(const SwPaM &rRg, SdrObject &rDrawObj, const SfxItemSet &rFlyAttrSet)=0
Insert a DrawObject.
virtual SdrObject * ReplaceObject(SdrObject *pNewObj, size_t nObjNum)
friend class SwMSDffManager
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
void InsideEscher(sal_uLong nIndex)
constexpr sal_uInt16 RES_GRFATR_BEGIN(RES_FRMATR_END)
static void PicRead(SvStream *pDataStream, WW8_PIC *pPic, bool bVer67)
void SetProgressState(tools::Long nPosition, SwDocShell const *pDocShell)
SdrObject * CreateContactObject(SwFrameFormat *pFlyFormat)
sal_uLong mnNoInitialObjects
std::stack< sal_uInt16 > maIndexes
SwFrameFormat * ImportGraf(SdrTextObj const *pTextObj=nullptr, SwFrameFormat const *pFlyFormat=nullptr)
SdrObject * getParentSdrObjectFromSdrObject() const
virtual void SetSnapRect(const tools::Rectangle &rRect)
static GraphicFilter & GetGraphicFilter()
sal_uInt32 GetPageWidth() const
std::unique_ptr< WW8SwFlyPara > m_xSFlyPara
void SendObjectToHell(SdrObject &rObject) const
Make Object live in the bottom drawing layer.
static void WW8PicShadowToReal(WW8_PIC_SHADOW const *pPicS, WW8_PIC *pPic)
SwFrameFormat * MakeGrafInContent(const WW8_PIC &rPic, const WW8PicDesc &rPD, const Graphic *pGraph, const OUString &rFileName, const SfxItemSet &rGrfSet)
bool ReadGrafFile(OUString &rFileName, std::unique_ptr< Graphic > &rpGraphic, const WW8_PIC &rPic, SvStream *pSt, sal_uLong nFilePos, bool *pDelIt)
static void ReplaceObj(const SdrObject &rReplaceTextObj, SdrObject &rSubObj)
std::vector< EscherShape > maEscherLayer
constexpr sal_uInt16 RES_FRMATR_BEGIN(RES_PARATR_LIST_END)
WW8PicDesc(const WW8_PIC &rPic)
constexpr TypedWhichId< SwFormatAnchor > RES_ANCHOR(104)
const SwAttrPool & GetAttrPool() const
struct WW8_PIC_SHADOW::@17 MFP
SVL_DLLPUBLIC OUString SmartRel2Abs(INetURLObject const &rTheBaseURIRef, OUString const &rTheRelURIRef, Link< OUString *, bool > const &rMaybeFileHdl=Link< OUString *, bool >(), bool bCheckFileExists=true, bool bIgnoreFragment=false, INetURLObject::EncodeMechanism eEncodeMechanism=INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
Base class of the Writer document model elements.